|
|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
; m& d/ S* L- V9 z& Y8 }目标:AUDIO_LINE_OUT播放声音。ad采集声音。
k* b7 z- h+ }8 Y现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)) o# v3 s1 l' i; q
详细程序如下:
6 \& T. E) X- w# H1 nDSP侧 main_dsp.c
8 e- h0 d Q+ l8 I$ Qextern int lineOutmain(void);- p3 b4 m, _# X3 L! d
Int main(Int argc, Char* argv[]) {% {; g+ j2 m8 n
LOG_INIT();8 X8 b$ ]! O, x& g0 }# a
Error_Block eb;9 I: m6 x0 A* N' q
Task_Params taskParams;) U' s" X0 ]; r( o( t! b# }& R
" d0 t6 n: S( u% w. L& s LOG_INFO("--> main:");1 Z! V, M& |0 c+ V+ H: d0 h# g
6 \$ L( |5 r: J! ]
Error_init(&eb);
6 [) e4 m0 r. N/ _3 k
|4 U! v. X7 s+ ^; s" \1 P' z Task_Params_init(&taskParams);
* L3 b* P2 H; \3 s7 ~5 x, a taskParams.instance->name = "message_loop_fun";
1 B9 G2 O3 G5 a& z% s. _ taskParams.arg0 = (UArg)argc;
/ W% `! m- A& D/ F& L taskParams.arg1 = (UArg)argv;
( W# H9 U; d! P5 ]: X. `8 L- e taskParams.stackSize = 0x1000;8 W: Y/ c [ O" @" ?; i
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ *// F- P) Z% `% l, D' ], z& W3 V4 E: ]
5 {+ o# j! L+ m' g5 c" _& n
if (Error_check(&eb)) 1 D& n; i# T5 x! T" x- ?
LOG_FATAL("failed to create application startup thread"); + E! s! l/ }1 m. C% ~1 V8 Y& z
. i! [1 R6 L% o! X4 D/ \
lineOutmain();
; g: x! l9 D! Z" e" ? BIOS_start();
# @/ g P2 J8 w& s LOG_INFO("<-- main:");( M& u0 V6 q! ~# }) ~1 ^) Q
return (0);' ]5 u6 z1 p) D! I
}
$ {9 A$ p7 s* z# y其中lineOutmain();是启动lineOut例程
3 }" D) j7 j2 Lint lineOutmain(void)1 ^# s4 e% R1 K! d( u) W
{$ R& ]. b, C9 O0 G0 D8 V
unsigned int i;) R2 ?0 X$ u( D) \7 k
( \; A$ M) {: q( U [ PeripheralsSetUp();
" h A. z) p$ Q* z0 J& P( I0 Z, i) K3 g O4 Y1 d7 {0 C
LOG_INFO("\r\n ============Test Start===========.\r\n");: Y1 _6 P7 H% r9 b6 D1 y
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");/ h3 `: V7 m- u Y2 {& i
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");' i3 t+ O! B: ~& B- E$ I
/ Q6 M/ j; |/ B& J for(i=0;i<229396/2;i++)
" n. _, ]* U/ i. b4 k8 ^ {
( { n3 [1 H5 v toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
( [- X/ @$ j7 L$ I+ b- L; ~ }# y H& n( h2 V Q, U
6 I2 p& [% l; L1 n IntDSPINTCInit();
% d( K( o0 g j2 z, ^' Z7 C& ? H; i% |3 z4 I
I2C0IntRegister(C674X_MASK_INT6);
" U* o' X/ Z/ w Z- W a2 A$ d' q) [5 R( W& |0 _% `& t4 w6 B c8 t
IntEnable(C674X_MASK_INT4);! X* w8 g; H5 I& ?, g \
IntEnable(C674X_MASK_INT5);
8 T% U) q) r& H ^: g$ \( n1 Y IntEnable(C674X_MASK_INT6); w( T b% }: ?; |1 J
0 o& ?; U) O# y
IntGlobalEnable();: Z4 g% H. }/ i, k: o
% L, a6 v" Z; @# |6 M" j. [
AIC31Init();$ }' l8 W" Y3 }. G0 K( i
ToneLoopInit();
3 c6 C$ {/ Z" r% K2 E Start playing the tone looply
2 T3 t( ]/ x& ]8 b. h ToneLoopStart();
0 \1 P) b% o) _) m: U/ g2 B: A$ W6 S F% O) k
LOG_INFO("\r\n ============Test End===========.\r\n", -1);( ^6 C, s' X7 s6 I
( x* L# l8 N* x}' Z1 u3 f7 w! P( Q7 a
5 K3 O6 e; [% r8 ], s; ]* L6 W
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
8 S9 `+ K! r7 J$ p
6 l7 s' Z3 S3 N; I3 G! F8 A# d- s) ~. \
) _ S7 t' N, N/ I* W6 H. O) l
3 G t9 u+ W5 |) z5 k
' L/ C) i, g; ~2 e2 S. I
" T; E" L u% Y0 g |
|