|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。1 w; ]7 P z @% Z6 t2 h9 i
目标:AUDIO_LINE_OUT播放声音。ad采集声音。7 {! C8 I$ i# {% b5 F- |# E
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
" u- S N: L% v& y详细程序如下:
4 e* m; S5 N* {, v/ I4 {3 zDSP侧 main_dsp.c
/ _( ~& C/ W, F! Dextern int lineOutmain(void);
- u4 @2 r! V+ R( NInt main(Int argc, Char* argv[]) {
# `: K, y) Y+ L8 S( o/ L; v+ Z% E LOG_INIT();
N% h. \- [9 |& ~3 g Error_Block eb;( x4 E" W8 ?- e+ r9 D# k
Task_Params taskParams;
8 M: Z' o' E) g1 ?0 n- V2 K( C5 z: @. g$ e' @4 _
LOG_INFO("--> main:");
0 x' G$ w2 T0 m: |7 o4 v; R
; a+ |2 K( H7 j* P2 @5 s Error_init(&eb);( b& p5 b5 |5 S9 R& v
4 K* k! _: k9 `- l: x3 @0 m
Task_Params_init(&taskParams);: E$ t: F# B2 _! r0 W. b; Z
taskParams.instance->name = "message_loop_fun";: [- M# u3 P/ v/ I* }' ?" Y& I' |
taskParams.arg0 = (UArg)argc;+ k/ @. T8 z! |% n# H p( @! Z
taskParams.arg1 = (UArg)argv;) m0 R; N1 x& d/ Z! a
taskParams.stackSize = 0x1000;
2 t* m" n+ Y4 _) }% ^ Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */# k7 ?2 y$ I( I, F- o! ] F7 Q
; m% y G2 ?6 v( r; v" b
if (Error_check(&eb))
* a3 ]) l: J" ? LOG_FATAL("failed to create application startup thread");
1 m- ~: T( H8 q5 p7 Q: w & O o7 t& f. S4 s/ ~! c* }
lineOutmain();
' n5 N: w( u+ R2 @" ?" c. w BIOS_start();
5 f6 I5 R% `3 f l6 X LOG_INFO("<-- main:");0 V9 U; a( ]+ c+ b8 k
return (0);
+ k0 }4 c; V( d" t! [# C G2 m. m}
7 T2 v5 |2 G" L其中lineOutmain();是启动lineOut例程- C% |: x6 ~+ q8 W# z
int lineOutmain(void)3 v8 [' x V8 i. \) N3 e7 B# M2 f8 {
{) V) I* `8 |, V0 f j
unsigned int i;
$ F" j: _: r8 | s. G1 r- ^
! u2 D. L w9 {+ _& } PeripheralsSetUp();6 u! E# |0 C/ Q `6 n1 k
+ V9 B3 t# k. K$ P
LOG_INFO("\r\n ============Test Start===========.\r\n");5 `9 i7 w) g" f4 Z
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");7 g2 s, c# M7 D/ m: U n5 n6 a3 o4 {
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");# R8 `9 a1 x( P& j7 T: s( I
& j% G. h9 M7 u% n
for(i=0;i<229396/2;i++)9 I7 D& m1 B+ h$ A# C$ T
{ c- H( n$ _" `6 o5 q) C+ K
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
8 W4 N$ M% T* l" d }
4 L. i. O# g9 C, [# ^1 D( ~- `& \* w0 m
IntDSPINTCInit();
! E, U N3 N; R9 l, A
/ _ s2 ~% Y4 a1 G4 r* C I2C0IntRegister(C674X_MASK_INT6);- x5 F- e9 L8 C' c+ R& {3 }
5 l1 ]: S, m/ Q% O2 o, o! W IntEnable(C674X_MASK_INT4);
1 F" I( G) \4 [* |1 C; ^ IntEnable(C674X_MASK_INT5);# A0 j5 F- p$ }: R
IntEnable(C674X_MASK_INT6);
" D9 X. m1 d( T" O! u- Q2 Y% P, \5 i3 T2 O
IntGlobalEnable();) f/ }: W# t& Y* {) |
: |) O: k* l3 ^3 t7 u. [: D AIC31Init();
6 T7 C: n- P" o) N/ z ToneLoopInit();
$ e6 Y! t$ m4 @6 Q, l! `. [& n( x8 [ Start playing the tone looply! z) M. B) R+ u) y2 U9 h7 O
ToneLoopStart();9 E0 q/ O4 Y) V+ S2 T8 m
1 M) [+ P4 d1 [8 d8 p* L' ]. |
LOG_INFO("\r\n ============Test End===========.\r\n", -1);. F7 b! i( l: j# C9 `
* R7 T! _/ T7 z6 |( R0 q# i}" R' t. H7 _ v5 o( P" r$ k
8 V+ i$ l# ~& [: ^" P2 {* ?从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。; t# Q6 F5 w- l; t8 u
6 S* z. X4 O6 T) L2 J C
9 Y! S! y& f8 x9 o
# w" e+ i, s, x$ P3 S0 c+ H# t
6 U: s. u# ]5 X' G2 Q, t# K
+ J. i" ^- ? ~5 B) b9 Z! G5 ]5 s4 M5 ~ K& _ Z
|
|