|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。0 f& g5 ?7 {( z6 X4 K* N2 @/ {: `
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
; ^' f" x# ~ J. g( V3 s+ X+ b现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
! J, I* `9 T! s% T C详细程序如下:# \; B' m7 ~% z' E
DSP侧 main_dsp.c
% v% j8 [. }8 k, o3 iextern int lineOutmain(void);
1 b0 g) V7 P) f. N6 ]) u& }Int main(Int argc, Char* argv[]) {' n- C& ?, T' N9 ]
LOG_INIT();& i: J! ]( J4 ?
Error_Block eb;
, D* U( M' p$ o2 X3 ? Task_Params taskParams;
" z6 f4 h& R" |0 w1 y8 |! U) j! l
3 k9 E g: \1 p! n9 ^4 ]9 b LOG_INFO("--> main:");. S/ a- I7 ]" R6 j0 m! X6 w, r* W
) J% D" m) |! |' p& q2 p Error_init(&eb);
8 T9 H: C# y+ z! E
. n0 R% m8 A; {4 P- Z3 @; A: s Task_Params_init(&taskParams);
. z6 T2 w9 |4 D0 A8 u taskParams.instance->name = "message_loop_fun";
7 _9 Z% Z1 V1 d7 G' o$ ~ taskParams.arg0 = (UArg)argc;
/ F4 {* }3 G, X& k6 Y. [. d taskParams.arg1 = (UArg)argv;
1 o( z0 g0 [6 O( w taskParams.stackSize = 0x1000;3 B4 N3 n2 Y( D$ Q$ Y4 Q' ^
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */: I( I3 F* [$ i( D2 Z
+ Z9 E, Z! _' S3 F; v4 ~ if (Error_check(&eb)) * Y+ e1 i0 Y N7 P- a
LOG_FATAL("failed to create application startup thread"); ( o) i, K0 ?4 g5 T/ u2 g
7 p9 H! E2 Z& Q" s lineOutmain();- G( w% a# p0 b4 {
BIOS_start();
% o( V7 A. h: {$ P F LOG_INFO("<-- main:");
, [' l+ J$ w( s: @3 A6 `" J return (0); a6 ?. D0 d' @4 s
}
% x+ j7 n. L0 N+ E$ k其中lineOutmain();是启动lineOut例程
7 ^# P; ^- c3 i X9 M. Uint lineOutmain(void)6 [; W& F0 L8 Q
{
$ `" a: ~& j( n9 q% B unsigned int i;! j4 E/ N5 P2 @
5 n, k. Z1 H% _' u9 i
PeripheralsSetUp();$ _+ j/ i# A, @
( C" w5 j! u+ k0 [* X$ L. V LOG_INFO("\r\n ============Test Start===========.\r\n");
6 @7 j: z+ w3 ?& J5 T" w LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");! j$ f1 t, i. K2 \
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
' F* Q3 Q$ L+ d1 a, d8 a2 J4 A" |/ O$ X& g2 F ^$ ]+ H
for(i=0;i<229396/2;i++)8 w6 g! p" T* s& Q: R8 b6 ^$ L
{% |2 ]7 k: G+ ~- L# y2 _/ Z6 D
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
; }, v* K% Q1 l7 @) r. u: {0 J }
7 o5 x7 n6 Y6 v* f. i* k0 ?. L% a0 C0 x$ {) }
IntDSPINTCInit();* r& \8 c2 l1 s% [: O/ y. C4 U
" n# K- \$ w8 c& }2 w8 z
I2C0IntRegister(C674X_MASK_INT6);
; U3 V- g6 o L0 R# _. ?; w" Y+ c8 P7 h/ Q# F6 J
IntEnable(C674X_MASK_INT4);9 o! ^" o( `: t
IntEnable(C674X_MASK_INT5);
- g6 A$ m7 q8 i) t, ` d IntEnable(C674X_MASK_INT6);
l+ y% I( k7 u- F& Y# [( {- @4 u9 h; q1 Q
IntGlobalEnable();
% Z- @. K5 N1 T$ l8 z! q& a/ b; `! ^
AIC31Init();
9 d7 W: u/ g- r6 L4 A; P ToneLoopInit();
$ u$ H1 f6 c8 D$ ]" @ Start playing the tone looply% S6 q. `: x/ @) P: \
ToneLoopStart();
% Z& j6 b& U+ M8 H: w" y
3 e4 L6 S0 n- k- J1 t" j( ?7 p LOG_INFO("\r\n ============Test End===========.\r\n", -1);
! \6 D6 R% y% _6 w A6 ]! s) i0 D7 m& }/ Y
}
- P6 y7 K# G' \ `( F
3 v7 k' q/ a# a c# o5 K从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
5 B X- \. i" H% |' A
' F# P9 n( x, {' y
# ]4 @* V8 H! z" o* x: F6 h% [
0 x; U: Z7 W$ @. H, G+ ]% { x: w
% k4 h8 H5 @" S% d5 S* U2 g% F% Y1 j. Y- N& \$ Q$ b+ J
|
|