|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。 F9 R ?" r7 U8 c$ A' X; {
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
8 m/ y7 f% X0 e现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
0 Q; g! ^2 m( b1 @7 ]6 [% v详细程序如下:/ O7 `, ^' E5 e- |/ D
DSP侧 main_dsp.c7 t$ K& }3 Y9 ?2 {* n
extern int lineOutmain(void);
0 s8 x( X2 R: X3 c4 U+ PInt main(Int argc, Char* argv[]) {/ h: Y0 \- k; I! ~/ z1 q% B" M
LOG_INIT();
9 L1 T$ {( M+ C0 S2 }' b1 [, C Error_Block eb;) i- m: k# k1 F$ x7 Z V
Task_Params taskParams;
w. A) ^$ Y1 L" Q
o+ E5 ]. i8 n7 X0 p+ i; U0 @, u LOG_INFO("--> main:");7 P4 D: O: I0 ^' x9 M9 M, W- `
" ?: y* A1 H/ r, J2 X; o9 P3 F6 H Error_init(&eb);
* p. d: C+ Q0 I9 n: ]
, m3 ?, L' Z$ A. L3 r+ y4 ? Task_Params_init(&taskParams);& x: D. O4 _ R0 T+ Q
taskParams.instance->name = "message_loop_fun";) p/ c* \6 I2 _5 _8 w7 M: l/ y
taskParams.arg0 = (UArg)argc;4 E! |/ \& ]# O0 r4 U0 J+ F
taskParams.arg1 = (UArg)argv;
1 R2 u) b3 b: l4 M taskParams.stackSize = 0x1000;
, F: N) O4 g$ `% i8 A: W) ]# z8 G Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
2 U: ?+ ?8 T& j3 h
% X# l4 F- ^8 H+ ^* ~: q4 v1 ] if (Error_check(&eb))
" X: R6 j8 R& E) [9 r" t LOG_FATAL("failed to create application startup thread");
0 p% g5 ?) ?, c& I ) ]5 S- \5 w2 |# c+ R
lineOutmain();3 G8 G) X5 C6 y# I% L
BIOS_start();" k& c8 T8 g" g4 Q+ B2 w
LOG_INFO("<-- main:");! P6 @% t9 O! ^- F a3 p: f
return (0);
+ O- a5 Z- R7 \( L3 i: {7 j}. ~0 E+ C4 a5 p. ^; N# h9 w8 h
其中lineOutmain();是启动lineOut例程, L: W6 d7 w" }% Q# t* B3 V# b7 Z
int lineOutmain(void)
5 m8 V5 I: l# n{/ p/ {0 Y4 ]8 G, c
unsigned int i;
$ v7 T2 D4 F9 G8 i+ _* i, y1 X, @# J6 d; U# j o
PeripheralsSetUp(); `) e9 U: N5 Y- H4 M5 i% `0 _
8 Z9 ?. ~7 z" ^5 n% G" b: ?
LOG_INFO("\r\n ============Test Start===========.\r\n");
7 r3 O+ y* p/ M, P LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
- s, J: V9 _; B& B7 Q) n LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
4 c$ u3 M# r: D4 ~" K$ s
- d1 U% u2 K1 ]2 t for(i=0;i<229396/2;i++)
0 t% F- z: E5 j5 G" x5 f {0 d* [$ n x' G
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;& k: w( z0 g) H& S3 _! Q
}8 C$ P1 G5 r! U' O, v
6 {9 \, E, a3 j$ b4 J
IntDSPINTCInit();- E& b- b$ H8 J! `( y
+ w1 q+ i: ?; o! z I2C0IntRegister(C674X_MASK_INT6);! v* l6 @* Q' i" ?! ~
+ w# z% O1 d1 p% e7 z0 E5 q
IntEnable(C674X_MASK_INT4);
: y G3 m, C& R2 q IntEnable(C674X_MASK_INT5);
, J0 {1 p( t! v; ` IntEnable(C674X_MASK_INT6); ?8 Q) I8 O+ p" h9 \2 e
' |6 ? v n) }" ]+ P9 O IntGlobalEnable();$ b- ?# j& u" e, _5 g" R
8 F+ e; L+ y1 |7 M+ L
AIC31Init();
5 U/ F) _/ k4 t+ k ToneLoopInit();! W) e P, V* X: I# M* D
Start playing the tone looply
# `0 r- I: j6 c( f ToneLoopStart();6 s5 p8 \! Y; K
1 h2 ~( F$ ^/ v% p3 y% d
LOG_INFO("\r\n ============Test End===========.\r\n", -1);! K9 s( ?4 I5 d( D% {
/ O1 l* F4 @3 k5 ]
}
8 |/ v0 @' w* u7 c t. L7 F% V& w2 k5 @
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。" a w0 y. l! d: K, i5 a2 f
- G+ u' f0 e/ J7 C7 n; k
6 p# n# U# x; s: }9 l
! v0 b% t% i `9 h* H9 o9 q
! M3 E4 X$ M) A8 ~* W' L8 ~. R; x. t7 b. p2 p/ n& J8 f; L: U
9 x$ b+ J: }$ W! h% i |
|