标题: OMAPL138基于SYSLINK的双核AD采集处理例程和线性播放有冲突 [打印本页] 作者: flh 时间: 2015-3-3 08:31 标题: OMAPL138基于SYSLINK的双核AD采集处理例程和线性播放有冲突 操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。 0 s' P5 U* Y) o目标:AUDIO_LINE_OUT播放声音。ad采集声音。 + K( E$ l! @8 J/ |. h X0 s现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?) 3 l: s0 L3 `* `; r6 t' o详细程序如下:- @* z8 A9 @9 V# T
DSP侧 main_dsp.c ( y U; p8 l5 q+ v/ hextern int lineOutmain(void); ; c$ v9 D! w8 L% wInt main(Int argc, Char* argv[]) { [3 ^7 K8 T. Z
LOG_INIT(); % X' p8 R y( f( o, S; l' | Error_Block eb;! A9 H3 N$ c0 P* |
Task_Params taskParams; , y& q8 F/ }/ E1 p6 _+ [3 P& X) a7 ~
LOG_INFO("--> main:"); 3 M1 ^, W8 ]: q! E: D ) M- w/ c9 N8 Z, j' T) E; A Error_init(&eb);: j( k% I) f- C
6 p3 e# x8 B* P
Task_Params_init(&taskParams); . B3 t8 l" ?0 J0 D2 F- q taskParams.instance->name = "message_loop_fun"; k f. C, @, L( i, Y taskParams.arg0 = (UArg)argc;8 o( `+ w5 C- a' [
taskParams.arg1 = (UArg)argv;. I6 p0 i! {. B; I6 E
taskParams.stackSize = 0x1000; $ P! J, |2 `* Y: G2 K& | Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */ , n1 g1 N4 j* H# a4 j ( x! ~$ g- w4 u ]1 Y if (Error_check(&eb)) s5 l) R+ u4 I. M! z$ b2 ]* A7 n; R) t
LOG_FATAL("failed to create application startup thread"); 8 ?/ T. L& N, {7 ^. {; P
, X1 x b' M2 E# a! O lineOutmain(); - W& \5 r: H b BIOS_start();& U8 g8 r7 M8 T( J; s' s: f
LOG_INFO("<-- main:");* L: p3 [/ K. t Z u& r8 G, H
return (0);/ s4 b- t( D* Z$ N
} 0 p9 o, f7 Q0 P9 g8 J% p其中lineOutmain();是启动lineOut例程' W. m( D2 s' @7 `
int lineOutmain(void)- y% l& K3 V8 A: w8 O5 H( n4 q6 P
{ ! J4 f4 P6 v( X6 ~3 y6 X unsigned int i;$ Q6 W9 l5 g% e: s
. Z+ L R/ z" i+ Y2 P% x PeripheralsSetUp(); * H' M7 _8 H, Z) x7 w7 X 2 \7 I6 S( X2 }& [5 B5 N4 T% Q LOG_INFO("\r\n ============Test Start===========.\r\n"); " D4 o$ p) a" |2 z. n; C, {5 C LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n"); . z; f: m" N7 I* q( H LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n"); & M$ [* W2 M5 D/ S, r0 |$ J" F& j8 P, w$ ]% t6 Y
for(i=0;i<229396/2;i++); S D2 V5 s& p- x
{ L: q" o6 i" A! g8 w9 F7 F) }( Z2 F toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8; 7 J% N; f, n9 C8 q( [4 Q1 u }% K% V5 a, d* B; H/ M9 M0 K
& P1 d( ^4 o3 H Z) o# ?
IntDSPINTCInit(); 5 H$ m/ Q! D) s+ I7 v1 }& q. e3 C$ ~ @ _) F. F+ n7 v
I2C0IntRegister(C674X_MASK_INT6);5 O6 h' H/ y5 v+ u! m' D5 {$ s
2 w# @/ w: F9 e g
IntEnable(C674X_MASK_INT4);; o; n7 v4 r) A% w/ S& R) x
IntEnable(C674X_MASK_INT5);8 G+ r9 l; Q/ m; o& G) A
IntEnable(C674X_MASK_INT6); ) P3 B8 D) V* F D$ ]0 C1 H7 c; W9 b. v8 a
IntGlobalEnable();) J( k" _( `' Z; d- K' Y, L6 d0 Z) I
7 v+ y4 S* ^- n K5 V# P' e
AIC31Init(); ( S9 s; R- J' E3 s, Q5 O6 i% Y' v ToneLoopInit();; y$ D e: a0 H" r2 c
Start playing the tone looply % x; e( y" k# s' b* \8 g' T+ p5 ` ToneLoopStart();5 ?. N0 Q6 Q2 g' M$ O' ]" i
/ I- T* [& x# a
LOG_INFO("\r\n ============Test End===========.\r\n", -1);1 _! J9 e n4 Q