|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
# ]$ G, ^0 H3 k7 i3 y' c4 V u2 M目标:AUDIO_LINE_OUT播放声音。ad采集声音。6 n6 b U# C& }! d; b
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)* A [5 H& G' R W7 [" X& c- |
详细程序如下:8 c: F9 z7 T! l) H5 u/ h
DSP侧 main_dsp.c
8 R3 A9 X3 q' [2 I9 R. Iextern int lineOutmain(void);
2 n$ n' c. G1 v" O# s* P6 DInt main(Int argc, Char* argv[]) {/ M+ K; z1 G9 ^- R v! T
LOG_INIT();) `1 C7 m2 C( Z7 D) U* [
Error_Block eb;
5 u6 t" K2 N( ], O ^, D Task_Params taskParams;$ X3 D1 c9 {+ y9 a; t/ u# o
5 O2 R4 Q' t+ m; } LOG_INFO("--> main:");& i2 l* m# k5 q: M4 w
K) v5 ~7 N* i+ p
Error_init(&eb);
Q6 M) q) {& R; c6 n# n, g; F, X
0 x8 X4 u& H: L1 d Task_Params_init(&taskParams);
! Y! E- K; f/ ~$ l taskParams.instance->name = "message_loop_fun";/ a. b, U1 I6 E/ U, V3 E0 E$ r" Y; Y
taskParams.arg0 = (UArg)argc;
8 L8 q5 W! z# i) X3 n0 j# h8 ~& n5 ] taskParams.arg1 = (UArg)argv;
9 [4 q5 Z9 U! I) `0 k+ X taskParams.stackSize = 0x1000;
6 y1 c0 E" Y( C) }7 D6 n" h Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */- I. v) A: g S, s9 }2 |
5 W( L' J" m1 K% t" j, i
if (Error_check(&eb))
& g# \8 v3 ^- `- E4 R4 F LOG_FATAL("failed to create application startup thread"); 9 p' t* H' f l( ^
+ H" w& e+ A2 E; O. S3 v: _. K. [
lineOutmain();
. w. M; j6 c3 I3 X; g% f BIOS_start();
+ | d, C& ^/ c LOG_INFO("<-- main:");
# \- g4 |. j9 E/ i, D return (0);' M: `0 a% C6 Z1 Z
}3 \* }* d. t" _) F& b. \1 {
其中lineOutmain();是启动lineOut例程
2 k- ]$ b$ C8 y3 l' Oint lineOutmain(void)
$ ?& D4 S$ y3 Y7 t{
7 O" w x" y. g% i unsigned int i;
+ I+ ^) _( ~+ c
: k/ F0 C6 q' ~4 T$ g2 v+ ~ PeripheralsSetUp();2 P1 N& B5 N' U2 T! d
X' S' @+ @- R9 _# h2 G+ K e" F
LOG_INFO("\r\n ============Test Start===========.\r\n");( ^& t# \. \" l, K& j( g
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");: A* {; |* y2 C- w
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
/ Y5 N7 j: W4 u* I
% z& }8 S& C6 n, }- \ for(i=0;i<229396/2;i++)
0 C! i7 N- u3 g' {8 V8 U. K {
( a, m8 n' ?: q7 t' p( o4 V A( n toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
; H8 m$ N" e9 N }
3 c/ G. h1 P2 @: W+ u; _) ]0 @/ k* Y/ M3 _
IntDSPINTCInit();
7 L& I6 ]9 t- R2 N# I9 D6 ?$ s" n$ ^+ w J: A
I2C0IntRegister(C674X_MASK_INT6);
6 R- U' J6 U' g8 k7 c( A- e: O. {* T# Q' J t4 t0 x
IntEnable(C674X_MASK_INT4);
! K( L$ b [. n$ B1 g IntEnable(C674X_MASK_INT5);) b6 ?' ?: c7 t8 h, V. R) P; Z8 @
IntEnable(C674X_MASK_INT6);
* g3 K2 w" m2 F' S9 e, k% N* w6 V
IntGlobalEnable();- |; V+ \ A- ~! M* C# e
" Z* f/ s @0 U Z( Z
AIC31Init();
: s9 S1 e2 |: w( L |4 o- F5 r ToneLoopInit();
; C4 `4 X$ k3 b$ V" x( k! Q4 k Start playing the tone looply/ P( B$ z2 y% \
ToneLoopStart();3 W) S, q3 w: G, w, ^3 R/ q4 F9 H
' Q6 }) w. m0 h1 x4 u: C1 U LOG_INFO("\r\n ============Test End===========.\r\n", -1);% v& e. @5 }) j: i- b
' o. l% O: o C: U5 }}
$ ?0 w& S+ X) Q+ ?" X) e$ b0 k# ?) i
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
: d2 r/ u' u! @1 R. E( W! d/ Z8 z$ z( Y1 h4 Q& X- R# r+ i! o
$ J- `4 L1 V5 X* X0 M+ Q0 H/ ~/ O* F; a" v* A8 T: T: ~, K% _/ ^3 N( G
! c9 |+ y. F5 z2 }( E8 n
( h& J6 C+ @$ Y4 t
& j* n* M* x& V$ g" p |
|