|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。6 {9 q. g' A4 ]& s3 d6 @) i: N
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
8 V% W( M9 W8 W# Y2 C( z0 p6 i现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
' K3 y3 z$ l# O) Z" C详细程序如下:" ]7 I' C+ ]4 c/ A8 G, Y5 O
DSP侧 main_dsp.c" ]# p% p* r) x A# V2 Q9 }
extern int lineOutmain(void);* d- r: X7 l3 Z# q5 t# ]
Int main(Int argc, Char* argv[]) {
$ U7 Z2 |) ]- _$ S LOG_INIT();
8 `/ w8 i3 e+ Y$ h* l Error_Block eb;
8 x! O+ y8 T) ~8 z0 O+ y3 v Task_Params taskParams;# e! m |- G' O" [
( o1 C2 p/ P" b' f
LOG_INFO("--> main:");2 w8 ^0 }7 U8 ]1 F2 i+ R5 J
7 ~! B, u% M+ o# t8 H Error_init(&eb);
7 U" u, v# c1 f6 w
8 d9 d' |; b/ w2 E9 Z Task_Params_init(&taskParams);+ r0 N% h, h' b5 |0 v& Q
taskParams.instance->name = "message_loop_fun";
2 B: q" g) S+ \( o1 Q* H taskParams.arg0 = (UArg)argc;
5 w0 p7 ~) X8 K$ i! K8 T' c taskParams.arg1 = (UArg)argv;
2 `9 d* K3 H: w( } taskParams.stackSize = 0x1000;
0 K& r: r( P; }+ d6 U Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
" X! x0 \) v6 Q* ]! N: Q; n2 E+ O2 T. f/ C
if (Error_check(&eb)) 7 A" E, _% o6 g5 g7 ]/ @& I% t+ N
LOG_FATAL("failed to create application startup thread"); 8 K" o' _. B/ g5 k) b: h
, g# e! @# O% A& J1 h
lineOutmain();9 ~% \# @; N5 c( ?
BIOS_start();) j; s. p# ^$ |4 b c) {/ W' i! H
LOG_INFO("<-- main:");
; S T7 g1 a* l5 P return (0);4 d+ |; t, V3 m$ z8 g& u/ ]
}
4 ^! ^, w* B; _9 c3 _其中lineOutmain();是启动lineOut例程! } \. H. N# ]5 f& G" v
int lineOutmain(void)
( \2 h8 t3 u9 W. h o3 n7 r, U, B{* c0 W( F x. ~' S
unsigned int i; k7 L. N9 S; f0 Z6 i* ?2 c/ }
% f" R& I- P" e" W- g PeripheralsSetUp();1 Y" \" w$ Y0 m
8 W/ K. b! A- U
LOG_INFO("\r\n ============Test Start===========.\r\n");
( d( s- s; w# s1 o3 W* ^4 P LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
' `4 `$ I* a! Z6 n# V( l LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");6 K X# B# f2 D$ \0 J
$ x8 z8 p: t$ [! }: J' q v* ~: f5 F for(i=0;i<229396/2;i++)
) B6 n5 k; S7 h# A$ L; K" g/ u. v {# E8 J; \' g7 ]3 f1 v) a
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
8 q1 X1 Y8 ^( c& H. V, T }
& h' f( Y9 N& d2 l
4 [0 A- d; Q. s; M; X IntDSPINTCInit();$ }1 C1 V' L* P. f
* l! A2 R3 y8 E+ g/ d4 Y8 n
I2C0IntRegister(C674X_MASK_INT6);
% k8 \1 P0 i/ `0 `( `
0 ]0 x+ T6 _5 ^% {3 k+ W) q IntEnable(C674X_MASK_INT4);, X4 }$ X1 _! B* @, F
IntEnable(C674X_MASK_INT5);
1 ?- W. k O! v, k IntEnable(C674X_MASK_INT6);/ v" E) E; m0 w
+ o. q- j( J$ p0 Y0 {
IntGlobalEnable();
, e# \/ Q; g7 u' P% l
4 H7 a' _5 I; M3 p7 |3 C3 `6 \ AIC31Init();$ z- |/ b, D1 ^" w* G
ToneLoopInit();
: @# L" T5 V5 K. q3 C' r0 A Start playing the tone looply
$ y3 Y7 r% T2 e- q/ @% b9 t ToneLoopStart(); d" X! R W( o6 \, U
% m# ?3 E& L8 V l( q9 J
LOG_INFO("\r\n ============Test End===========.\r\n", -1);
* c+ P2 W9 P4 P' w8 _4 ?0 a; W1 L `
}
9 f. m9 i- Q* B) S ]8 `) P: Z
% X D. F3 k9 u( V1 X从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
% H0 L7 v! j4 k& O% ]
' l+ f. o* P0 A4 k5 k8 n( W. j& _4 s. O1 E. Q ]; C$ c
1 U5 _8 d- {7 H
, {& {2 R" q+ x4 J& ^8 w" ?# h* l$ R9 J" S H6 [
* _+ L4 e5 o' c9 H. [ |
|