|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
$ G3 ~ o r4 z% ~ S; L8 X目标:AUDIO_LINE_OUT播放声音。ad采集声音。2 [/ ~# _# h# `/ n2 u5 o4 B
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
4 ~ G0 l; t1 [, }: G" F. W详细程序如下:
- Q; @9 I0 E" ]+ nDSP侧 main_dsp.c% K9 a( \- O3 L2 \
extern int lineOutmain(void);# ^9 Y+ W0 [4 ?2 I9 i. }
Int main(Int argc, Char* argv[]) {
8 t; i2 Q" V4 ^* B# I# } LOG_INIT();
8 `2 G+ ?+ x+ a Error_Block eb;
# o5 D9 g# r+ u8 L) O7 o Task_Params taskParams;
; A) ?0 l2 o6 e( _$ J M5 ^: O6 a0 E" v* Q: z4 V4 G# d
LOG_INFO("--> main:");
1 T7 B: }& o* F8 u, W) ` H1 ]- T% @4 D
Error_init(&eb);- U4 I# p5 @ i. G
; ]; _, {* m0 D! ], F( g
Task_Params_init(&taskParams);" |8 r$ a' b* U: d& D A8 _3 `
taskParams.instance->name = "message_loop_fun";! H5 d: k% n9 P6 M
taskParams.arg0 = (UArg)argc;) T& T: W Z- E9 O& e8 N. p' L$ @. V1 B
taskParams.arg1 = (UArg)argv;
+ c9 o+ }) t' N4 ~ taskParams.stackSize = 0x1000;
3 B9 a' P2 N3 d/ Z# a Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
3 x, I5 i& ~' B$ k! e+ V$ I" H( b! V
if (Error_check(&eb))
% h# O+ d' X9 C* Y q- P" L* S: \ LOG_FATAL("failed to create application startup thread"); , k4 y: U% d B3 Z M: a ?3 a. r
# ?' c; z% L; n, h lineOutmain();
9 r+ Z* z6 P7 } BIOS_start();3 S$ D3 t4 P# B; o# B F; Y, t# M
LOG_INFO("<-- main:");. V0 S/ y" q7 u; N+ k) j: P
return (0);4 ^5 N# Z# B% C& O3 A+ x# E
}1 K% Z' z6 f! J# B* m% ?
其中lineOutmain();是启动lineOut例程
* L0 I1 ]/ _6 Rint lineOutmain(void)7 ~6 C8 |, g0 S# d8 T% I0 t4 n
{
6 m, `6 I! F! B, ?+ ^: x unsigned int i;
9 ]& s- P- z$ V( R* u- G7 }( `4 C, m* l4 O& R
PeripheralsSetUp();: R* E- [, t0 n# ^* l& }
9 {/ T2 {2 Z$ C' w+ ^7 a LOG_INFO("\r\n ============Test Start===========.\r\n");
) p3 h' U# c7 O6 P$ A7 \ LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
- y, @% Q+ D7 u, P; ^) v) I LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");+ u+ v. }3 D! N# Q/ ]4 k2 ]
! k! ?8 P4 f! Z* O# u2 ^# k for(i=0;i<229396/2;i++)
! J8 _- G& |6 s; |% p {
7 w7 U% f, `. Y toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;/ o6 }0 V; I+ R) a4 f" F, F
}9 v" J! v3 U ]
: O$ S1 V/ O7 O) A9 m
IntDSPINTCInit(); X0 Y2 z! _1 B4 ~: B+ R% `+ u- `
2 n' Z0 u0 T2 m5 Z" A' ~ I2C0IntRegister(C674X_MASK_INT6);8 ?9 o, y3 V* {6 L: u
) ^) w7 J s6 l
IntEnable(C674X_MASK_INT4);
6 I7 Y$ G) L" r# {% X IntEnable(C674X_MASK_INT5);
* H+ N M+ h) k# x) U1 | IntEnable(C674X_MASK_INT6);! K* r7 y/ x: c- E' N( O0 ?. v8 q
( v5 O& ?5 f. t f( \
IntGlobalEnable(); d! V5 Y( w- @
" E! @( _, w1 p, M, P3 P
AIC31Init();
/ [$ V2 E$ Z8 E' q1 w5 H ToneLoopInit();) E) V+ t/ Z" A. K1 k
Start playing the tone looply# S6 P. ~* Q9 i; n9 O- I1 K# w4 l
ToneLoopStart();
' g) q) v- j' d
% F) q6 B4 w: S0 w! u LOG_INFO("\r\n ============Test End===========.\r\n", -1);
, l* A+ U4 }6 a# x. O9 f, o
" b" Z& H6 U+ K/ }+ m}
7 H- H4 V; s8 A0 U) S% R; `* @* _- ] R7 \
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。3 p# D+ t5 c1 ~9 u
6 J- f4 C; O. u$ O, I# b0 E' E7 v7 `6 q' I! y% r. |
9 \7 s3 h- i1 y& a8 I& X
) j' _$ u2 W* v0 z/ H
6 T5 W5 r0 j% [/ U
& R5 U1 d4 v, G. G |
|