|
|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
5 O) b# y9 r; {& @/ h( v目标:AUDIO_LINE_OUT播放声音。ad采集声音。
- X5 {+ p2 g- e6 R- P, `$ c3 D9 @# E现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
+ f+ y3 |" j' @* Y/ j详细程序如下:
& { v9 x; z l J. KDSP侧 main_dsp.c
7 B/ y+ I- d$ J. c0 t& q/ J1 o$ Zextern int lineOutmain(void);
+ A: c' O" [& IInt main(Int argc, Char* argv[]) {
0 ^& E" `' }3 J: L6 s5 Y+ v LOG_INIT();
/ V& x0 j& Q* ~1 m' Y& ]3 O4 T. K Error_Block eb;
- y7 c5 k$ g; c% |: m: r Task_Params taskParams;
x. W& ?- x/ n& Y' L* U; e. W6 B* U2 X
LOG_INFO("--> main:");7 w$ ^0 j! W5 C) e0 Z+ K) \
+ a5 R- U. f' u; m ^# r& c
Error_init(&eb);' f8 p$ {$ Q! U8 B( x- G4 q
( S& b6 h& \1 P* g; |, d% w Task_Params_init(&taskParams);
2 |0 U' v; D( H6 f taskParams.instance->name = "message_loop_fun";
+ S3 g1 w+ g/ B& x. D5 M. @ taskParams.arg0 = (UArg)argc;
4 s0 T$ F1 F7 Y2 r$ D1 N taskParams.arg1 = (UArg)argv;' l: H7 ?; X: I# ]# m- S5 K( T+ K
taskParams.stackSize = 0x1000;9 m/ H' q! a* L T7 ]
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */5 Z9 v% i. G* }) X8 T
u' Y* E/ ^/ \* [% G5 O if (Error_check(&eb))
2 t" `0 H0 ?1 d! _5 l! |2 J LOG_FATAL("failed to create application startup thread"); , H! X& p( F/ I8 w4 B2 [2 l' A
& ^! S, f! \+ w lineOutmain();
$ J( C# ?! t9 X BIOS_start();
2 w e _' M. \: ]; j" o# b LOG_INFO("<-- main:");
# j, q# J# H. A return (0);
( j. d/ M2 g0 u3 Y# `2 z7 ]}
4 |5 y' S6 ]- `3 P: U! m8 k5 R其中lineOutmain();是启动lineOut例程" [& ?! }" }. C$ E3 z% G G* }
int lineOutmain(void)+ ]; }6 U1 e6 F; p: H- H
{/ D& O; U" }) M1 }6 F8 K" k* T
unsigned int i;. r/ e5 G, w8 [7 @& U. s
" Y# n4 b: i) U/ m# e
PeripheralsSetUp();' k; Q! _" K6 B# s4 I
+ B! R4 c; s. y8 R7 ^
LOG_INFO("\r\n ============Test Start===========.\r\n");7 [0 ^. m. z, K: w& h! n
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
/ A+ `6 c- y4 u1 C! s! J LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
# c4 I: g2 m5 K& l" `
+ V) i* M9 S6 W) l7 f c; v" G( j' H0 m for(i=0;i<229396/2;i++)2 }; M1 d5 V7 \9 U0 U8 k
{" D( I" H! J( ?1 R& h+ h/ P
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
! R- Q8 k) r; ^5 E# W) M }" {, ^; N/ u$ Y q$ ^* z' C* W
4 c6 o- x Q& R+ \- u) h( U$ O IntDSPINTCInit();: U# D9 ]+ Q2 y0 @- }
1 G9 H+ y" I, C! B+ O' }8 C. P& _
I2C0IntRegister(C674X_MASK_INT6);4 p8 N$ `+ _8 I- {- Y9 A
4 K7 H& T& Q; O( t IntEnable(C674X_MASK_INT4);% R5 v" z" t0 C& ?4 k/ I
IntEnable(C674X_MASK_INT5);
* }5 }. W1 S: z, \- f+ F& E IntEnable(C674X_MASK_INT6);
+ ~5 Q7 h6 N. e+ H$ I6 Z$ T' p2 T: w! O
IntGlobalEnable();* t/ D, u( ~) j" o i7 I5 ]1 c
) i$ G( v& e7 k& _
AIC31Init();
3 }0 e' v& O. G7 X$ y4 ^ ToneLoopInit();; V5 A4 ~. h( u% q; \
Start playing the tone looply' ? f$ [8 Q" y4 [ c8 k9 v
ToneLoopStart();; G2 U( x! V6 i% K v" Y0 ~% m; @
+ a+ v7 b( ], ]
LOG_INFO("\r\n ============Test End===========.\r\n", -1);' P4 u. e/ M5 j/ T5 f+ v
/ U5 h- v. \ m) x: H! S
}6 g" Z9 b- H% y3 w$ C( F
: f" c; @% F; f8 l$ P @5 y% }9 ]
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
8 _6 W* `- r, `' [: s6 p" ^* E |- p5 r) h0 x7 h6 F
! k; R% P) y3 _5 U1 q
% Q: O3 V/ b3 y" H- @1 C' d
- \. x e# P8 b# a; L- b' o7 n4 A2 F% y \
. G5 @/ \* D: r5 R# v3 P; |3 X3 _
|
|