|
|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。9 m6 l; [3 i& E U
目标:AUDIO_LINE_OUT播放声音。ad采集声音。* E8 x( ]4 o1 Y4 k
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
1 }1 W+ O0 o# {7 C+ |详细程序如下:6 l3 W5 b2 E2 A' E9 @$ C
DSP侧 main_dsp.c5 c! P3 ^9 ^6 o4 A; Q
extern int lineOutmain(void);" L0 O9 k, S3 @8 A& h* V( z
Int main(Int argc, Char* argv[]) {" U, j7 U! ^% |
LOG_INIT();6 P* X/ x X h d+ e% d
Error_Block eb;1 t+ ?9 a5 c, V% h" m
Task_Params taskParams;
' P9 f+ _( U" t* g
- I6 o$ W! ~8 o* h* a5 m LOG_INFO("--> main:");3 s) j6 y/ O) F; R+ `# q5 V0 W2 `
- R5 Q& W, S: j+ z7 S) Y
Error_init(&eb);
# l+ B" L3 u7 ~( V9 n
3 J x$ m$ ^; c: r6 c7 F7 V Task_Params_init(&taskParams);1 c5 V" u6 I6 {) ]( V! H5 ?
taskParams.instance->name = "message_loop_fun";
, f' H+ Q/ W: B: ~2 F taskParams.arg0 = (UArg)argc;
F7 p* E4 F$ M0 b6 t# V/ S7 { taskParams.arg1 = (UArg)argv;! I( P, Y' o1 ~# @# g1 W2 ~
taskParams.stackSize = 0x1000;
$ |% O# N; r1 c Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
% B( a9 D6 G9 Y+ |$ M% C5 I, `1 {0 }" J/ O- W, S3 k4 K
if (Error_check(&eb))
1 ?6 g2 g/ T# h: Y) {/ K LOG_FATAL("failed to create application startup thread"); ( `4 `, d/ p9 ?( F6 j8 Z1 X4 ~
% Y# w1 { J+ M" v
lineOutmain();; L' s5 ]) v, m" _$ Q& n
BIOS_start();' e8 y# g# @- Z4 }
LOG_INFO("<-- main:"); @8 v+ x; U: o, _8 O
return (0);; b/ H& O. b6 m! [! j! q" z0 U: r
}4 }. ^6 `1 s0 y+ W4 p V+ k
其中lineOutmain();是启动lineOut例程7 K% q! e, ?* Q/ ~
int lineOutmain(void)4 c' f8 T' K# I6 ^( x3 M
{
( l4 I K$ ?# ]0 \( V) W' r unsigned int i;
& Q* ^* r. M- y( X! s6 r8 d4 b/ c# x" D3 D! ^( U& U; C
PeripheralsSetUp();
9 t/ ^; }6 U: b% W( ?) T
# \: W5 w+ ~% U/ {4 H( \ e LOG_INFO("\r\n ============Test Start===========.\r\n");
8 I5 m. h6 o/ P" M8 m8 { LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
: f* j8 C9 r& _9 s( M' L& [ LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
" j% z9 H$ Z X, F. j% G {0 p# h5 S' U( _, @4 H8 D: g% f/ l
for(i=0;i<229396/2;i++)
$ D' C6 T" M/ { N$ ?% I+ h7 h {) W5 W9 H* b3 _9 T% {* M8 i8 N
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
( a2 A; w5 ^1 S3 @1 l }
4 n3 M4 {/ z5 a. }
+ `4 a4 z& G4 T. @- M% p! g IntDSPINTCInit();
/ n$ S5 \8 D U r0 b
3 W8 D; B7 g& d6 B I2C0IntRegister(C674X_MASK_INT6);
& L ^! `" r( i U0 t5 d
" e6 g/ _" F8 z- e! j; ^ IntEnable(C674X_MASK_INT4);) W5 }5 G6 g- a% w& E. B5 X
IntEnable(C674X_MASK_INT5);* K. S* ?9 K0 ]8 I! Z* E) m
IntEnable(C674X_MASK_INT6);/ N" {! O# W W9 B1 e7 O
( b' W! S3 K4 H K, \5 s
IntGlobalEnable();
) O/ J0 s# y% I7 H6 ?! j( K* h' O9 H2 n/ J# T5 k7 Q$ u
AIC31Init();3 b8 X! |$ [9 G
ToneLoopInit();
0 R# J. ~/ e- g8 Y) O( i4 x+ { Start playing the tone looply
9 v" c1 D# n' c# Z ToneLoopStart();8 W) \7 O/ Q, C8 l& P& P8 \7 M
6 ]% K2 O) H0 ]- l
LOG_INFO("\r\n ============Test End===========.\r\n", -1);9 I# z, |1 N* ~8 n$ `3 o/ x
7 t' P. j3 |4 a+ B( y
}; M2 i7 {3 x/ U0 L
9 r- G$ z! S8 e; H5 Y; F从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
2 m* c& q6 u2 ]0 Z9 O" m# N' g2 @" ?1 c% y/ o2 ^$ ]
9 l- b/ l. ~3 [ _# w u) ~5 I Z- z' q. X
" l# O" ?# P; V2 O9 V n* X. H! W" H- _ i' ~* }
' L6 _2 H/ ]$ u# x. j. R8 q+ y0 B
|
|