|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
/ ]. K2 e# v( s+ ?目标:AUDIO_LINE_OUT播放声音。ad采集声音。
! @: a1 W: C- }/ `0 B0 N现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
/ J4 \/ O' |9 {2 E详细程序如下:/ i) Z! } A. W# r# S9 }6 |; z
DSP侧 main_dsp.c x' z$ _. Z, f& z
extern int lineOutmain(void);
) j, G5 G7 R& W' l8 I- J. qInt main(Int argc, Char* argv[]) {
7 {3 t: h# M9 r3 e) T% l6 z LOG_INIT();
( |2 ^2 u+ Y; q4 r4 y' l h, ~2 ]0 \ Error_Block eb;
( X3 S J$ b; p f# x% a Task_Params taskParams;
' m9 T0 ]4 B' a# s1 q" f
# r& r$ ?5 f( e LOG_INFO("--> main:");) E7 X6 M6 I; W$ W9 C- ~
+ O& V2 D4 b( s" I/ e4 R/ E3 j
Error_init(&eb);
3 V' ~: Y E0 U& V; |) R$ l. f4 o0 d* h) K3 m; c9 p. ` d
Task_Params_init(&taskParams);+ |- w c M0 O$ g$ U
taskParams.instance->name = "message_loop_fun";
7 N" N$ {% Q ]) N0 } taskParams.arg0 = (UArg)argc;9 \/ P+ h. R4 }% c# ~: ]: \
taskParams.arg1 = (UArg)argv;
J8 c- U9 e1 }0 c o: b4 \% \ taskParams.stackSize = 0x1000;: s; E8 P. t; s2 n& \! b$ N
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */" T$ r' T% B/ R& \1 s; r
0 R- { ] i/ _4 t% W6 {, i" b+ S Q. I if (Error_check(&eb))
) s/ }' p4 q1 A LOG_FATAL("failed to create application startup thread"); 0 c/ o7 ?' K' S) d) O/ w8 ~6 _6 S
4 p) p1 O* D. C9 U5 G6 Q) [
lineOutmain();( P& k9 [! G# s1 Z
BIOS_start();5 S" y( ?1 I& d4 d: V9 X
LOG_INFO("<-- main:");5 c8 y5 N' b1 X5 d! j' d1 {% C
return (0);' B K, @; i% S& e4 C4 ]1 \7 m
}
' L0 N/ Y: I, K0 g$ B其中lineOutmain();是启动lineOut例程+ c _$ S0 B) ]
int lineOutmain(void)
; P; B+ N4 H. \{
1 w1 `' E, i: f' _( V unsigned int i;
# i. |' k# r( `) n. O/ k4 }1 z; P; L# x, w/ n* K- Y
PeripheralsSetUp();3 O% y9 @2 j$ U. S9 E1 ~0 l, B
; u3 h) c$ R5 Q% Q/ V) o4 z' d1 R LOG_INFO("\r\n ============Test Start===========.\r\n");
1 u' c; s J7 @8 I) c LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
6 f, c5 c; K x7 l LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");" C* K: v1 }8 O; s
7 N7 \6 o* n" p for(i=0;i<229396/2;i++)) P1 h: Q/ Q/ x8 |" E! m
{" Q u5 f/ p$ T! g/ L ^0 H9 ~
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
4 @! E; u; ^ Z/ P; |5 x# Z }
1 R( K' G( c; j
: {- i* H: S1 C IntDSPINTCInit();
. a6 y9 g) ?2 A" O. Q' I8 }
, {" |: u1 ]: _8 S I2C0IntRegister(C674X_MASK_INT6);! o7 x M% |! }* k# s7 y
5 S- N& s, C, X/ Y" q IntEnable(C674X_MASK_INT4);3 \4 [4 U" \+ S
IntEnable(C674X_MASK_INT5);
3 R- b" ]( f/ ` IntEnable(C674X_MASK_INT6);8 h4 w5 k; F8 [' f7 z8 n
3 Z' `9 {" u, W- D; z% i
IntGlobalEnable();" Q U i) N/ b- M' n2 j0 C
" E O: P' A5 X+ X8 S* ^" p
AIC31Init();4 S0 k& b9 w$ B1 g. V& `
ToneLoopInit();+ c; s; }, }: ^; `
Start playing the tone looply/ m7 w3 p- t u) \
ToneLoopStart();3 i& U5 _4 n" \/ {& J' }2 Z
( h7 N' a- @8 V: G9 {2 S3 c LOG_INFO("\r\n ============Test End===========.\r\n", -1);
" r/ u# ]0 }3 g" U7 Z9 @- Y. X7 `( Q- _% }) U$ c# |0 |0 P
}6 M, g4 L) T+ @! X" H6 G
4 [ P- i" p9 h& K; T
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。5 ]0 H9 M' i* Z3 a- Y3 X ~) {
3 H8 C+ `1 k: {
3 u( [. A# y6 @) o! {) W7 u7 X
4 i# s. ]4 O V) K8 r2 K0 _
D! V0 E/ d! f6 H; ?2 S+ V
# r9 P1 Z) o6 g0 w1 m1 k3 O o* X g2 ~0 [0 v
|
|