|
|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。/ f5 _9 w% i) z
目标:AUDIO_LINE_OUT播放声音。ad采集声音。# c+ {$ `$ b% j( `: d9 _) p
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
: K4 S6 F( j. d2 N2 v& M详细程序如下:( c0 O* a( B8 O/ N
DSP侧 main_dsp.c
; ^2 c( X; ~+ Q( V7 U. d6 nextern int lineOutmain(void);
+ V! ]0 F9 N, Q- }& p v3 [Int main(Int argc, Char* argv[]) {
: v5 y+ o( `8 w LOG_INIT();' f. g. v- W/ C
Error_Block eb;
# g# t L s- a% B; R. V1 V$ C Task_Params taskParams;
5 A% Q* _# X3 b1 o4 y5 e+ [2 G3 B7 `2 t9 c* ~; [8 u2 O
LOG_INFO("--> main:");9 H1 `' b0 b: n
4 A/ E4 ?% ?7 O5 e Error_init(&eb);
, _, f' D r: D+ ?: Y1 v2 t+ [
( \: {0 o; s# } N' E Task_Params_init(&taskParams);
& o. k. d7 [+ j# ]6 i2 y7 e taskParams.instance->name = "message_loop_fun";
: j% W- X; ~' X _" }. w8 ]" z$ K- d taskParams.arg0 = (UArg)argc;
8 D1 G' |/ H7 A taskParams.arg1 = (UArg)argv;) i% n# _! _" S# r) O3 J* |
taskParams.stackSize = 0x1000;
2 E0 M. a2 j3 g E* y: f) U. p Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */; \# ?" D1 W, ?/ y) ~1 G8 Y
2 X8 [, r6 F% l% c4 g. s4 }( r
if (Error_check(&eb)) 0 n4 M7 h/ ^3 @4 X9 w$ z9 l. V
LOG_FATAL("failed to create application startup thread");
g a! N* p1 ~* W2 l . N$ L; q) G; |9 y- J/ _9 f6 v
lineOutmain();: H, W3 J Q/ c7 H; G: F
BIOS_start();+ c4 X2 }2 G3 T3 x/ h, N
LOG_INFO("<-- main:");
+ w7 h4 E. t, y" k: t return (0);
8 K* v, B( l! c' t- a2 `}' u4 d( G: U) b
其中lineOutmain();是启动lineOut例程. \- F5 E9 b4 ?1 [
int lineOutmain(void)* v: F; k. c9 d8 o' U
{. Y" t n& t+ [/ w" L9 I: o3 ]
unsigned int i;
2 z% Y8 a. Q) q9 R7 p9 Z0 y5 E& O. l2 m9 @- {
PeripheralsSetUp();) N& Z) M N3 p1 }5 v
4 n I% r, d; m% ]
LOG_INFO("\r\n ============Test Start===========.\r\n");/ L2 S/ l2 V. M5 F6 r. [
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");7 M7 S' B; z4 l
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
1 N9 e; i; Q0 Y% t" @* m' N% v; B. ^& Y8 c- |1 Z
for(i=0;i<229396/2;i++)
6 Y; m" R9 }# \2 T) A+ t) k$ X6 U { A9 X! l$ D7 e. A; K; B( O# c
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;" q. C9 `- _. y' a
}4 Y l& k5 b7 }3 n
1 u" a3 K5 I3 i& c IntDSPINTCInit();
, L" v" Z, t5 [' n3 a4 C) P. O# D5 O9 \! g
I2C0IntRegister(C674X_MASK_INT6);4 q; F- d S( z" c6 |
( C. f' A! Y, ~5 c IntEnable(C674X_MASK_INT4);
4 J5 j3 F* o: c- b2 K IntEnable(C674X_MASK_INT5);
% t+ r& ]4 z+ y8 ]5 l$ i+ f) b IntEnable(C674X_MASK_INT6);$ x9 z* q% r& b8 b; U8 F* g
+ O0 w5 ~7 h- D7 q# v
IntGlobalEnable();# V# F7 H( e( \ E
( F0 {( L4 e! ^& \# b2 B4 z
AIC31Init();+ z9 J4 o! U8 I* @, O0 _2 J* j% A
ToneLoopInit();
* q7 T! |% S( I* T* A! i2 G1 R Start playing the tone looply1 t+ A; c* f3 {% {% }" M( ?: b
ToneLoopStart();
7 h+ b8 i, V: s* R! E: J2 U" V
0 r9 d$ ?9 X' r, @4 s/ u! _ LOG_INFO("\r\n ============Test End===========.\r\n", -1);& n( U1 E& c) \; T: S& T1 J
( ?1 ~8 M' m3 G7 z3 F4 Z}% j% M/ J' E/ O/ W& u, _
) v. b- L7 n9 w8 e
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。$ ?% f1 G; n! { c6 V3 E3 Q: U
0 \$ Q1 k% M+ b: W( c
) L9 L1 Z8 w! i& E8 k
# V4 i, I9 C( X8 g+ L8 D) j
9 F+ y6 T" E, o( S& U1 {3 m- H. i- X+ x$ _( G2 v( F0 [2 d
# |& S. e1 C6 s4 k8 y
|
|