|
|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。4 ~. P4 R. k( I0 [
目标:AUDIO_LINE_OUT播放声音。ad采集声音。 Q: N4 l( X ~6 F, p
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)! V! U' _0 r1 F* y* V
详细程序如下:
1 ?& o, R) S1 ]3 h' N _3 |DSP侧 main_dsp.c
% X( y0 g0 J1 u* E5 mextern int lineOutmain(void);9 S2 p0 A& F8 H" s+ l; _& p
Int main(Int argc, Char* argv[]) {) U/ }7 }1 D. |7 ~
LOG_INIT();
' R9 Q7 J3 p8 d y0 B. R) Q+ H Error_Block eb;, w4 q: s y! T; K
Task_Params taskParams;
|/ e# A6 p) \( _8 g' e, J$ \
# Z9 j5 i0 Z6 F A. g8 [ LOG_INFO("--> main:");5 ^5 t% Y7 P4 Y6 ?8 m
3 W/ i. E, w3 `
Error_init(&eb);
6 J4 e: V) R8 I+ n: [8 Y1 S: Y4 Y- ]- t
Task_Params_init(&taskParams);, i$ ]2 `1 Y7 o- C2 T; m
taskParams.instance->name = "message_loop_fun";5 l9 Y* A5 k. W0 y z, \
taskParams.arg0 = (UArg)argc;% M$ U5 X1 w: P F( c
taskParams.arg1 = (UArg)argv;
% n0 q' P2 ]- R5 _% Q$ S# W% _7 N taskParams.stackSize = 0x1000;% X \- R7 i: H) `8 D' s& w; s" o
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */5 V: L5 [5 o9 o6 Q- ^- }
# h. Y( u0 [$ G0 z1 a
if (Error_check(&eb))
e1 Z2 w& @3 ]( K LOG_FATAL("failed to create application startup thread"); 7 f; o$ w/ @7 I2 [4 l6 [4 u& m
' |9 l7 U, d, k* L! H' ~" @ lineOutmain();
. J& C: e8 f2 ? BIOS_start();9 F' {7 T) ~: p ~2 |: S
LOG_INFO("<-- main:");' W7 ` |) G! ]
return (0);
$ |. U# O% O% Z8 s% l}
K; Z- D7 l# U5 O( \其中lineOutmain();是启动lineOut例程: w8 M) Y3 {9 o5 @
int lineOutmain(void)
m& J% ]" ^: I$ T: }& Y# d{+ B p) \5 s6 y& H' ?2 L0 `9 e% _
unsigned int i;, j: s( E! b' f0 ]7 e
% O; Z1 y* Z7 i- |/ x6 V8 V1 o PeripheralsSetUp();3 {2 v- f# L) e. |6 ]4 k1 z
) g2 V7 k9 n* A% z+ K- P. l LOG_INFO("\r\n ============Test Start===========.\r\n");5 ]9 r; }" z5 m i @) x! v R
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
. _! @& \3 Z% z7 m LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");: z4 B2 P5 s. c1 _" u
( l" V% c+ o G7 |3 N
for(i=0;i<229396/2;i++)
/ m! W. D& L! p5 x {
, f, H6 o( A9 a) C( l- ] toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;$ t H0 a9 D% p6 A; d; B
}" T o4 z- J h1 n `
G" c3 [3 B2 Z, H
IntDSPINTCInit();
+ K* A) \- g* Z- k! u! V6 T% f4 v- F3 c/ \5 C6 s- M
I2C0IntRegister(C674X_MASK_INT6);
7 h% {+ Y9 [" P7 w' {4 H) K4 y; }: g& {& U" T
IntEnable(C674X_MASK_INT4);
, s* }, z: Y" g U5 H% \5 h( f1 m IntEnable(C674X_MASK_INT5);; g" D- m& }7 ~
IntEnable(C674X_MASK_INT6);+ G" V. `4 W$ ?6 n9 B: }
: D; `( T: Y, U
IntGlobalEnable();, j# @( Q2 V7 K _- i& m0 C
* U& b6 \, G7 e" T AIC31Init();
1 s' h+ F& `0 j' I. {( { ToneLoopInit();9 e0 P) g. \! j2 Q. a9 C5 a
Start playing the tone looply
$ [5 ]3 X* j' x- X- P) q ]6 Q" w0 j ToneLoopStart();* V4 \' ^' e7 {
, f# {% Z6 U3 \: b" A$ M! }
LOG_INFO("\r\n ============Test End===========.\r\n", -1); \6 R7 T7 _: L( K: l5 R
) i2 k6 N/ \; c2 ^2 i8 n3 t V
}
9 v) I! l- n: N7 W5 _; [) R8 Z* A0 e2 p
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。! m3 |8 j" N5 u7 P( l
5 }+ X8 c, m6 x7 D9 b
; X b, O* v' c
* b5 ]* z8 H }0 V }" M& z# e
4 i4 i* N0 y* p! e, ~$ s5 z; I# K; `
) j) N) V0 T. _ |
|