|
|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。, n0 V! z9 G1 l) e
目标:AUDIO_LINE_OUT播放声音。ad采集声音。0 q) r- n$ X, h3 j* Q
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
4 w" p3 w( O$ ^3 C7 A4 w详细程序如下:: Q8 e: S" p2 E6 ?
DSP侧 main_dsp.c. C. ]# }2 d/ X7 d5 w5 G; B, y7 B
extern int lineOutmain(void);& [% g1 l! ?+ V0 H$ v
Int main(Int argc, Char* argv[]) {
. K& |6 L1 M6 u0 d3 n5 X LOG_INIT();, S) p1 C* W& q# a
Error_Block eb;
4 [1 I0 y9 V" ]- x! ^ Task_Params taskParams;
; u" [/ } f1 {1 G) u3 {0 Z2 [7 t6 B, L; p! o, }
LOG_INFO("--> main:");/ c, s$ k2 A$ M X2 Q. X
0 [# y5 d+ z) J* Y. c) a. F+ h
Error_init(&eb);
; C5 W ?8 W3 K9 v9 ?1 T; y: W. O& C/ @ v( z2 L# m
Task_Params_init(&taskParams);7 P# A5 X& _3 c0 t, J9 E
taskParams.instance->name = "message_loop_fun";
5 L/ q" G( N2 c/ Z taskParams.arg0 = (UArg)argc;
( t2 r; Q2 B3 O+ H; j2 {7 h1 W taskParams.arg1 = (UArg)argv;: R6 S$ T3 Z; x" A; ?- g" Y/ R
taskParams.stackSize = 0x1000;9 R# o4 M# }$ `, N& _
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */" l# b+ v. l) F: `8 l
9 O' f' v: k# {- }1 O& \ if (Error_check(&eb))
/ m, \" E9 g- Q8 d G LOG_FATAL("failed to create application startup thread");
/ H) Z; \+ Y2 h: ` & Y/ X7 m4 x, @
lineOutmain();" X4 v9 d6 E" _/ C! \/ \5 x
BIOS_start();
' l; K0 f% ~3 ` LOG_INFO("<-- main:");# i {! y* D0 `4 A8 R8 p
return (0);; i7 i& |5 |6 u6 f' f
}& W; J+ ]% i" ~5 Q" T* v A, C
其中lineOutmain();是启动lineOut例程
8 \& Z& S! Z% _, Cint lineOutmain(void)
, Y' B- l8 C' s o7 v# \{
7 o, D- T6 y% {6 H* M" L unsigned int i;
1 N4 }" ^0 k9 g- _0 I% {2 {4 F: N" _( B9 ?; a
PeripheralsSetUp();0 `/ K& V- R$ S* Y
# i) k# v( H3 ]3 _ ]5 l: s l7 N5 ^ LOG_INFO("\r\n ============Test Start===========.\r\n");9 G3 f- ~2 W! u! m0 J0 Z& G
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
/ g1 q0 h. H- b; P7 w1 F$ z' R LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");5 @) E+ l5 V5 Z4 Z# j. v% V e3 b
9 k4 Q6 D- d: d: b1 U for(i=0;i<229396/2;i++)4 h5 w' B. @$ ~% |3 f& v6 O
{
& |' _2 Y4 o3 z* F4 ~/ A& ] toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;2 s a) [$ Y* g" k. ] h3 i
}2 u& e1 U, }$ z" O& Q% s! R
, N1 h5 T( i7 f8 q" |
IntDSPINTCInit();' l5 i1 ^: R" U. U6 h7 W; e
& y3 Q9 s- H. \. l$ ]3 v T
I2C0IntRegister(C674X_MASK_INT6);
6 e% J. x1 o/ l1 P7 z
1 a9 i# C4 N% g IntEnable(C674X_MASK_INT4);
5 V& ~7 p+ K& J* k3 L; I IntEnable(C674X_MASK_INT5);
1 G, y: z7 e, G% W. K5 y, q IntEnable(C674X_MASK_INT6);8 E0 W: M! J& @! V# u& L
* O$ Z6 Q( D8 E) s& r$ D IntGlobalEnable();1 C: p2 C% y! S) ]! `
6 B5 G; g' Y& ?; K5 q- j' G2 _; E AIC31Init();+ F) G% p5 D$ x K
ToneLoopInit();) X7 u' x' a# E/ j7 b+ J& g3 B
Start playing the tone looply' R: ~+ t5 v* X
ToneLoopStart();* g: L g5 o( h4 G- Y$ G9 s
p2 Z+ B0 o4 X( o7 v LOG_INFO("\r\n ============Test End===========.\r\n", -1);
9 o9 H- A6 U. I. n2 J. G
S: A, F' }' K/ N0 I3 `} W& }( x5 f {" X+ W5 |, _1 x
" F4 [1 Y) \1 K, Y# O. G从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
+ R X' ^8 ]. u; r; p" ^
( e8 f; K1 o, t- b8 L# f2 v. C3 P2 m- u4 O
* G" U9 ~ i% M2 U$ {
& P+ _3 S8 n+ e. i" B9 n3 f: W0 E) k1 x7 L
* B9 ~1 o; C n
|
|