|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。0 ~+ s; D2 H" R
目标:AUDIO_LINE_OUT播放声音。ad采集声音。 k2 D! F& L8 P
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
+ Y" ^7 z3 F/ h/ Q5 {详细程序如下:
6 N- z; H w6 v0 M' kDSP侧 main_dsp.c6 d# M# U4 f3 V s
extern int lineOutmain(void);
6 B1 E" l, n! Z% E, KInt main(Int argc, Char* argv[]) {
2 s8 {) K1 s C: [ LOG_INIT();
+ ^; Z2 o; i& \ Error_Block eb;
; i$ w7 M7 o2 M Task_Params taskParams;& W( [: M5 z0 g/ Y$ h% u
& q* Y0 T9 O4 M( }. L& z. O LOG_INFO("--> main:");& M s/ g( N. j. D8 e$ T3 f4 H7 R7 K
/ H* h% e% R0 n! Z: ~
Error_init(&eb);
& \- Q8 O `0 _: @" U* }
) j: e7 F3 C2 O. j, t Task_Params_init(&taskParams);0 o1 g- a( u5 p! ~* X
taskParams.instance->name = "message_loop_fun";8 ?! \7 P8 w% p* W
taskParams.arg0 = (UArg)argc;
! M$ a& P u) F( D3 e taskParams.arg1 = (UArg)argv;
/ B6 z3 u a* c& W# m, [- A* t taskParams.stackSize = 0x1000;
5 q" H! C4 U9 N: X3 v7 C( R Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
C0 _, M% b* I4 U' a4 |
( O$ ?3 P7 M5 \) W6 {" } if (Error_check(&eb))
, h9 B4 R1 Y/ E3 c5 B3 ^" J! ] LOG_FATAL("failed to create application startup thread");
/ X; K% {8 Y; ~ - L l/ f0 t* s2 G5 i3 V
lineOutmain();
2 q5 E3 Z4 [ y) j BIOS_start();
$ ? \0 f# v7 j8 a2 y LOG_INFO("<-- main:");5 [2 ~0 `2 ?' w5 @- y
return (0);
- X& j2 }! E+ G0 [! I( c3 [( {}; u% y( d$ ?1 V( P
其中lineOutmain();是启动lineOut例程1 Y& W% |! U! C
int lineOutmain(void)( x4 F) i8 u5 m+ B. w
{! G; ~# E; Q5 h7 I; w, n" |
unsigned int i;% I4 o$ }8 u) C( t% D; K
/ s% H, i5 W. z. c$ D3 U, h0 g PeripheralsSetUp();
- z6 |4 p; @: A3 V+ b* K' |; r: `# m# h
LOG_INFO("\r\n ============Test Start===========.\r\n");
) Z5 {7 O" X, T& K LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
6 r c' i) s) M% f9 H# t) q. `0 H LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");5 F& T) { ]4 L( I# v1 ^$ P8 F
5 w% G, I. _! |( r4 ?6 K
for(i=0;i<229396/2;i++)
) B) C7 C* i3 I {3 n) @! @8 c" F+ I1 v( N
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
+ c* w3 c; L1 O$ e& w& v }8 K" P( e5 e! a" R- \2 P( }# q/ Y! N
1 `& L* C- u- e2 i- E7 r
IntDSPINTCInit();8 _& \+ r$ E, ~1 d! B
0 o" y* T: R3 K$ ^1 s& l( R: i
I2C0IntRegister(C674X_MASK_INT6);+ C: k* S2 ]9 I2 ]3 {& W/ e8 L
' m( U a' j' H+ j/ l, R9 I IntEnable(C674X_MASK_INT4);
1 O1 R ]4 i, G5 @& ]3 H5 ] IntEnable(C674X_MASK_INT5);
% W8 p( `: Q) a! ], k/ l IntEnable(C674X_MASK_INT6);* J* _2 W' d/ B1 _! n& \
6 U6 P z1 p$ c& u9 y T g3 x
IntGlobalEnable();
# l. K* b5 n2 Z- u- K0 b+ [& N& U) ]; v! |8 y; y2 K
AIC31Init();: G4 m8 K3 @* q( G( O
ToneLoopInit();
4 L4 a; H- g' S Start playing the tone looply
4 u; \) Z7 e( s: v Z! P ToneLoopStart();6 Q# Y) ^9 |8 g* l% |% v6 Z: b( J# C
5 B/ T8 `$ F% @7 t
LOG_INFO("\r\n ============Test End===========.\r\n", -1);
) C* I7 G) u2 j3 S) V) n& X& R. c2 L
' P0 p& ?- u2 {9 V4 r) m}9 d2 h, X3 F c( c; k) O- X
: z* Q# ^, y# C; w从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
& b9 z; i7 z) `7 Q4 p* r0 Z. h6 J5 S: M- Z$ I* S
! c' B2 {9 d/ i D6 f, |9 C6 d
; I8 B* S( U5 C6 Y' k; e( m
4 D/ O- `6 \4 b. k1 I; F; I! P1 [0 k) `6 ~6 y5 `3 Z
- D1 H$ f1 U/ V
|
|