|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
; `, f7 {9 b/ a2 J目标:AUDIO_LINE_OUT播放声音。ad采集声音。
, o8 O% X& K. w* M2 ]现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)( j8 A7 ^7 \+ e9 L$ x$ U
详细程序如下:
( I' w" I4 t8 i' ]% z; g+ l4 cDSP侧 main_dsp.c, a. v8 W% H- T7 r& `. g
extern int lineOutmain(void);8 S/ ~5 K) r/ o
Int main(Int argc, Char* argv[]) {, q/ P- D7 }6 @# Y8 U2 g
LOG_INIT();" t( O+ n: A: R, J
Error_Block eb;( x e/ n c: ~" [5 J. }
Task_Params taskParams;
6 A! v8 R+ f1 b% Y; \+ C) s! A _/ |6 m, y5 W' ?
LOG_INFO("--> main:");; R' u; Q" z1 ?7 R' H" A$ t2 }
+ k7 F9 M( ~ G
Error_init(&eb);
" s) W8 u2 v; g+ L0 y
) i" E; _+ h2 [/ S Task_Params_init(&taskParams);
; t6 `1 [/ `) L- t8 r0 s taskParams.instance->name = "message_loop_fun";
2 ]$ }) A3 u/ a2 l* n' Y taskParams.arg0 = (UArg)argc;! {7 R" S, @0 f: q0 h2 I
taskParams.arg1 = (UArg)argv;
; l5 Z$ ]! _" B9 K5 h taskParams.stackSize = 0x1000;6 J3 H+ \; s6 C) R
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
4 G% a2 t% l, F) O
) Q3 P; K5 Z+ _: I if (Error_check(&eb))
+ Q1 ?$ K7 n, J: _ LOG_FATAL("failed to create application startup thread"); , R! M: f$ N- f" [7 A
6 S+ \+ q6 x# u3 h. \, ^
lineOutmain();
6 z; H3 ^ d& \- ] BIOS_start();
8 a1 J/ Z0 |. g2 U) Y LOG_INFO("<-- main:");1 |& S( s" A$ u! O$ X3 S4 J
return (0);. P6 b" H( A* s& h% d8 a5 a% V' V3 k
}
7 E; u1 D8 A* @1 R5 I( I7 L其中lineOutmain();是启动lineOut例程$ |+ s9 H# m. J+ i j; i
int lineOutmain(void)
, B- _8 X, J, d( G4 j{
3 u& ~% _# g f! V& Q0 K! e3 X unsigned int i;# _% [ h0 f7 d u1 k% p% e! ]& c
& S- @' g } v* F
PeripheralsSetUp();
) f. w E' K8 o+ r0 m( @' ]: _( @7 V- O8 E% T
LOG_INFO("\r\n ============Test Start===========.\r\n");: L. j, W# i" T$ I! H% z5 d7 i- K" ^0 q
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");3 R. C# g: v+ U# b- y9 J
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");, K Q: t \% s) h( D5 W
9 M5 }. f& q$ M% t4 N5 @+ i) y. T
for(i=0;i<229396/2;i++)1 k7 o4 T( u: T1 h( O
{' R; n9 J* a; ^+ v" W% ?! ?1 P: a
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
( P$ w4 u- g2 T, B+ M }
5 M6 L( [+ n- ]# p9 M8 n- T9 P4 ]3 O
IntDSPINTCInit();
/ a- N5 X% ~/ A* t9 z) n% s. g6 o- l7 N# F$ p4 j* L. E& R; D
I2C0IntRegister(C674X_MASK_INT6);0 J5 K# t! w0 q5 ~) U) V& Q. d5 g
# f5 k/ t2 R6 R: N4 Z2 k( J IntEnable(C674X_MASK_INT4);
: A$ i4 _1 R3 V9 l$ p L b0 D, _ IntEnable(C674X_MASK_INT5);) z" \1 P' d6 k J f" y4 K
IntEnable(C674X_MASK_INT6);
2 u& l) ^7 ^1 z- v/ \
4 W- d* X7 |+ }6 T1 A: S: R! y IntGlobalEnable();
% f4 f2 [$ c& a5 ~0 ]/ |! `/ L( S. |! l, y+ k' J! r, ?- k/ v
AIC31Init();8 y; N/ a8 j7 T9 W" P; l: z/ U
ToneLoopInit();
+ b7 ]* J& K: X1 W6 c Start playing the tone looply0 Z+ r5 K9 K/ _, \$ r# h+ d, Q; n) b
ToneLoopStart();
/ M# O) C4 K; r
, w2 t+ ?# C, w' ?9 C/ r LOG_INFO("\r\n ============Test End===========.\r\n", -1);3 ~& J: s- K+ V$ r7 B' X$ C2 @
$ e4 r& S7 {' C) X2 A}
, R" a! A" {3 C6 I
# q/ b m( y% w7 t从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。6 r' l$ m, X9 `+ i3 Q
4 @' V, |' z1 m/ n9 p
! Y. O3 s I# C1 f$ c' q8 ^. A
" g5 O/ z& S) `$ }& R! t; V) o( s0 `" p7 f
% r6 e, }! z3 F) }# l$ c
6 [4 I+ J! y- i; }# T" _ |
|