|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。9 D0 y) W) Q. J L' v
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
$ _- x6 n2 A+ x现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)1 ~) C4 m0 j7 }6 a; K& _' o' c5 ~
详细程序如下:
9 D: B/ d% h6 Q9 v* \) fDSP侧 main_dsp.c
|0 o* J- q4 l5 U+ S3 xextern int lineOutmain(void);
3 s: [+ P8 |7 q! R& l: MInt main(Int argc, Char* argv[]) {! f& H. Y# _" p1 j" ]- s
LOG_INIT();
) J( u' f" j* C R: u0 k& }* ~# ^ Error_Block eb;
) @+ Y! s' \# |& L3 N Task_Params taskParams;+ }" k- J8 @, d( c% r
8 [' t0 V$ k+ K LOG_INFO("--> main:");
- I' T" \# O8 k1 {4 Y# c8 G3 [" e
Error_init(&eb);3 s8 W0 p/ ^5 f8 A& v$ ~( n
. N* I2 \* [1 s, C( {; F+ D/ r' l8 Q
Task_Params_init(&taskParams);
& V) C9 @: s/ e7 B7 K taskParams.instance->name = "message_loop_fun";1 ]3 a" s+ t2 R' I Q6 H) O
taskParams.arg0 = (UArg)argc;+ @4 Y" C! k' H
taskParams.arg1 = (UArg)argv;, Q- h& E' I4 H* ^
taskParams.stackSize = 0x1000;
. M1 P2 k" t) F& C a' h8 A* N( u Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
" O% z( z4 z) @# I8 @
) b" A% M) I+ E0 v if (Error_check(&eb)) ! K: t4 l" T$ x3 ^: }5 \6 P
LOG_FATAL("failed to create application startup thread");
" |: n" q' w! j9 o
( ?5 r$ i( T1 g, B lineOutmain();
, F( `1 |* F3 u- K0 N4 E2 v* O BIOS_start();
% X! X. d' X7 r& T7 d; d LOG_INFO("<-- main:");
; A' t* g3 u1 x4 `, t return (0);1 g$ z7 T7 O" U8 V6 m r
}
( p0 @& [& T6 {: V" D* D3 F, |其中lineOutmain();是启动lineOut例程
: l* ^& l6 g( P8 u) Dint lineOutmain(void)
* O3 Y- H* t3 l{1 A; W( Z6 i9 D2 N0 X1 U
unsigned int i;
! y) @( Y" c& b/ i, m: k% d
# R6 O$ d' b# u1 h PeripheralsSetUp();
2 w4 ]0 N8 |+ N* l. q# L, W+ W9 d7 B) P7 W% R5 Y' }$ ?5 P- [' U# K5 N
LOG_INFO("\r\n ============Test Start===========.\r\n");
3 @, V$ U, V" G% F2 ? LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");7 K* f) ~ P3 T/ v. k" i' c1 g9 G
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n"); g! t2 }5 w" S8 k6 p
8 o$ F; s/ {# d
for(i=0;i<229396/2;i++)
6 d; F& g3 Z' m$ ]7 L2 Z {
* o: l- s2 \( ]' y toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;2 M# q$ i6 \( g8 \5 O
}# i3 L/ {" z9 u
! q3 b4 }7 ?7 h' T2 f& L7 ^
IntDSPINTCInit();
0 p2 K1 U6 d$ g+ f! v, R" L3 P# V8 {1 [ t; w4 Y( t) k7 k
I2C0IntRegister(C674X_MASK_INT6);4 T/ Y$ F" f' c' _ |" o$ C
% C; C9 I! ]3 k2 K y \8 Y
IntEnable(C674X_MASK_INT4);8 L; U- Q2 \- o1 o$ }
IntEnable(C674X_MASK_INT5);
- [6 ]- e2 k4 k4 T6 }$ c( r IntEnable(C674X_MASK_INT6);
1 P9 J4 I3 h5 O1 v* E. e0 [ C' F! f9 {" R7 w# H
IntGlobalEnable();
5 R1 E/ ?' l5 T# u5 Z
* G; S6 Z B( A4 \6 E7 r! b AIC31Init();( u/ V* r& N: @/ w! A
ToneLoopInit();7 |: U: @3 o, z4 e9 M9 Y& z8 u- T
Start playing the tone looply) w$ A# O, s; p* X- j' @
ToneLoopStart();8 B2 N' y4 c9 G, ~
4 ]% \1 [! ]% o- G/ Q. Z& _6 D LOG_INFO("\r\n ============Test End===========.\r\n", -1);! o) |, Y# J3 Z- _! z& j
& N. V, z2 D# ?; Y}
# {+ W& @8 B8 p' H
3 s2 w2 n- j. P! H3 n' c# G/ e从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
+ `$ f: z: {% @2 g n4 @" l/ G+ V- u6 g8 M
0 t& z& c/ Z& G+ ]$ N7 f- T g/ b8 S7 Q; a4 V$ N
$ @' `' ~* m/ ]* t$ P J! n/ @# ~8 A; J& m! r8 u r* Y
" f4 O* K' w6 N S
|
|