|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。3 ~% n! A0 q9 i
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
; C, h5 R3 B# ?, o) h0 I/ A0 w现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)2 I! F, b9 m) P) w+ K6 v+ o1 f
详细程序如下:
: l0 a/ R! x- V O5 t- `DSP侧 main_dsp.c( ]" |- w, _7 \5 b+ I4 s
extern int lineOutmain(void);- v( T2 }8 D; X0 i" p! a* ]
Int main(Int argc, Char* argv[]) {
4 e8 P3 \0 T0 ], w z LOG_INIT();
, L2 ~. K: m: v5 U Error_Block eb;* N2 Y+ q7 v; M9 b) p9 C" k
Task_Params taskParams;
# [ \; O! w- i! M& T5 ^
! l* X* v0 w/ x LOG_INFO("--> main:");" r7 y2 ~/ B7 `
/ _1 [% n% D) I! W8 _! Z5 W
Error_init(&eb);
4 X2 d/ n6 Z+ o. h
( d+ H! B \2 f i" w Task_Params_init(&taskParams);
, q4 p) c) ], u taskParams.instance->name = "message_loop_fun";
9 X# Y! ^9 @7 P" v( W taskParams.arg0 = (UArg)argc;+ ^8 d7 J! k2 Y7 t
taskParams.arg1 = (UArg)argv;4 w4 j5 Y( g0 @) [( Y
taskParams.stackSize = 0x1000;
; D+ m7 x' ~& W8 L Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */ `( c$ u$ ~/ O
$ S2 ]9 w3 j; X
if (Error_check(&eb)) ; g$ j; }$ n4 g4 W3 f0 j; S/ H
LOG_FATAL("failed to create application startup thread");
& Y4 h) M7 u0 P8 b* F5 ] / [3 e" H- l& y; M( \" a+ f
lineOutmain();
% M7 M& r9 M2 |! C: D0 E5 d* e+ C BIOS_start();
# V( G! k, L& m- I9 r( n* W LOG_INFO("<-- main:");
; [: d0 Q( |$ ?- [" H- E$ j return (0);5 L6 K& o; E& _; O) _
}
/ P9 u* {* N" M) e/ ~其中lineOutmain();是启动lineOut例程 R7 [/ e8 H" W' o
int lineOutmain(void)& k; h5 t$ T+ @; g( N! I/ E4 _
{
1 u ^) y2 N& `, R2 D& ? unsigned int i;+ i8 W4 v% Y& N3 Q, M J
1 |% ^ ]# B+ O% D: z# U; K% [
PeripheralsSetUp();0 B: i5 d: c2 Z' y
& k( G% e V3 }9 w4 W! Y4 { LOG_INFO("\r\n ============Test Start===========.\r\n");$ T- V/ [, U7 ^" V8 T; `
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
% \9 p: f8 ~, e" M6 p LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");$ x8 @( {. r8 U3 g" g' g1 E
/ Q0 S: e# O# x0 _& v+ r
for(i=0;i<229396/2;i++)
4 R X" l1 y2 q% W3 M- x {
# G% B _( J% X H+ O toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;, I7 w3 e# D) u8 M6 r
}7 B1 R& k, Z/ J& \
# e6 L3 d, o3 w4 L) ]3 O. I IntDSPINTCInit();
: p! O# x+ j5 B9 d
* d5 E- f( h5 N" r9 b: K I2C0IntRegister(C674X_MASK_INT6);9 p) s# E# F" B
- z, t2 X+ n* x& a4 v; p2 c IntEnable(C674X_MASK_INT4);. L, t7 m" G, J- u/ g( W* M
IntEnable(C674X_MASK_INT5);' c' Z( r# p& [$ V3 s9 F7 l; l
IntEnable(C674X_MASK_INT6);5 l& ~# ], F% T9 D. k7 G% ^5 w
' t* T1 n3 |- j- x/ n' r# Z; E
IntGlobalEnable();+ C8 ^1 V2 o2 _# m+ O( s
# Y( i2 P7 U- Z* G; g3 q$ Z AIC31Init();; P8 E* M( E, `$ Z0 i9 U
ToneLoopInit();
]6 j0 B( H2 U: W, d5 g) q5 r S/ w Start playing the tone looply$ n7 M- A% Y8 C2 `' A* z( I& i9 p9 t
ToneLoopStart();2 _/ D/ |; P2 F
! h# Q9 S" }# r LOG_INFO("\r\n ============Test End===========.\r\n", -1);
5 U8 K2 }6 w4 \) r# W$ t7 \- [9 j1 E4 l3 H' U* b
}4 \9 T% P3 b% m$ y3 m
& w4 P" H! T2 h" z' D; J" I0 f从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
8 K/ f2 E1 `$ r1 B
, m4 k1 D" R @ z2 B! V3 n0 C0 I1 ~) i: @
8 M3 ?% f: _9 U/ E' T& t/ L' E
7 V+ ~7 w" l9 W$ J s$ s. F; Z' [0 ~
|
|