|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。0 x) {! S" s7 p; I
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
" t4 x" J8 Y9 k4 w现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
4 g1 _0 T5 p0 [详细程序如下:
) v( F2 [: K# G# cDSP侧 main_dsp.c
9 ?- A b! a2 Hextern int lineOutmain(void);
/ s" b9 F/ n J0 {/ CInt main(Int argc, Char* argv[]) {$ z! s! e+ [( [2 @$ m0 S, J. h; u
LOG_INIT();) }) d- I# S3 [
Error_Block eb;3 X5 J8 @& K9 G H
Task_Params taskParams;
6 W4 _" c* `. e0 g* n, H9 s' k6 I! S: D
LOG_INFO("--> main:");
0 v5 ]* I8 Q! v0 l2 V# N! k, p
' \# Y% h, a* U! Q8 s Error_init(&eb);
* r( p& \& i! k9 l0 K7 E& L. r$ }# ]; m1 b" L
Task_Params_init(&taskParams);3 z( U) [$ S" E0 I- b
taskParams.instance->name = "message_loop_fun";
1 C0 |/ s4 M* L: y, S% v taskParams.arg0 = (UArg)argc;
9 z' j7 m' R$ J taskParams.arg1 = (UArg)argv;
5 A# e1 B2 v: z' ^ taskParams.stackSize = 0x1000;6 t: {# J4 ]( ~
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */+ B' T1 C4 t" p: ]+ w6 p6 T
# v. n7 x" u( n; U0 d6 Z* I if (Error_check(&eb))
9 e$ Q; E; L& q u LOG_FATAL("failed to create application startup thread"); $ o- m8 m2 W; f! B1 `- m8 N* ?
/ |) ~% G, W9 }/ {# r2 a
lineOutmain();
% ^1 ]& k+ M8 j$ s2 C BIOS_start();0 m# ^( x$ {1 U5 P! w& O
LOG_INFO("<-- main:");, m Z- M* W* E. Q% z
return (0);" S1 r9 D3 R& s; G$ `" ~- m
}
8 L( O4 R; y+ p其中lineOutmain();是启动lineOut例程
" Z( i- h* q" s+ ]/ Z' sint lineOutmain(void)- Q9 W+ I% _+ Y6 p, e
{
7 t" P- h% I2 _1 X unsigned int i;# F; k! ^2 Y* i" a6 f: Q, W" A
4 v$ ]5 u2 M: C+ ]. K
PeripheralsSetUp();
4 _: W" ]# ?( S5 E& i
& d J* @2 |8 ?8 J LOG_INFO("\r\n ============Test Start===========.\r\n");+ ?2 L7 I ] @' j% {0 L/ q
LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");6 u9 c- D% i$ ] E
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
" V) v/ H1 S* ]) D$ J9 M3 i* V9 B3 q; z
for(i=0;i<229396/2;i++)
5 p4 t, C V2 w/ q {
0 F5 c) ^8 `" W: Z' V toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
# d% V+ m7 U$ F- ?- ` }
' z. o) o2 ]8 s1 q, P8 \% b0 x
. s9 ?4 k' ^. ?! x8 p8 }7 j0 k( x IntDSPINTCInit();! v! l+ q6 P$ C4 ]5 O! d0 t
1 x$ ]0 a) L) ~( t& d$ j$ E I2C0IntRegister(C674X_MASK_INT6);
7 e H. N" \1 x9 @, ~( s0 `! C5 g$ x7 f( A }( T/ X
IntEnable(C674X_MASK_INT4);9 H3 p8 x( J. B0 q7 g2 s* l9 i
IntEnable(C674X_MASK_INT5);
5 I/ a8 e" `4 B9 j; `2 d IntEnable(C674X_MASK_INT6); Y+ U# Y6 _9 f/ i$ e3 ~. w2 k
% r& m8 R* x) R6 _+ s IntGlobalEnable();- N0 y) g5 y" y2 o! |, L& @
& ?7 }$ w$ k, u: | AIC31Init();
# g2 L, [- u! {4 r6 z% \ ToneLoopInit();
& \2 A, s2 E) q: T& `7 [; z Start playing the tone looply* O( b/ q( C; y: ~6 D
ToneLoopStart();$ b4 F# }+ }2 J/ u$ Z
2 C- }# t/ ?) h/ U
LOG_INFO("\r\n ============Test End===========.\r\n", -1);7 `& J- u j$ h6 d) O$ S
+ c! Q' T3 `! T8 l$ v
}
q5 r$ @0 [# n- |$ i' C2 G# O8 b. Z) d; j C
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
) t- B. r3 P% u! ~9 |$ p0 D
# K K: x0 K8 @9 p# p# Z4 |
. j( h- Q5 S$ C( l4 |5 U9 W9 E. ]! X* e
" U! c5 x3 o$ \& E( T: @8 Y% X6 o9 G) t. O
, o+ l; e7 b+ Q" _& Q |
|