|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。0 u3 S% f9 i2 B% N" X
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
) Z# n! j' k$ c+ f5 J现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
/ k+ }8 ~5 v; A* u- b( h0 p详细程序如下:
9 |$ f* _8 r& v# J) e2 sDSP侧 main_dsp.c( k& B/ l* \ P9 w' j
extern int lineOutmain(void);* W7 j$ @4 M- j" f
Int main(Int argc, Char* argv[]) {) P' o; V8 J& x8 k3 a7 G& b! c
LOG_INIT();( f; H# F9 g0 p8 `! F8 w
Error_Block eb;; e1 h, i" |+ b; s K1 s
Task_Params taskParams;
. R k* H) V* m* H$ @8 z+ p7 Z5 k( S8 v( S* q# |; w" v
LOG_INFO("--> main:");
5 k* M$ ~. m9 ?
5 V2 x$ K# B0 x+ J9 _4 q Error_init(&eb);- Z# ^; R) l+ r: _3 j! c
! g# {" T% x7 m Task_Params_init(&taskParams);
/ M. L% Y. J8 r9 I; k% o( | taskParams.instance->name = "message_loop_fun";6 s' i% r6 Z+ G D! D% L
taskParams.arg0 = (UArg)argc;
" P4 Z, x* C9 z) i6 r/ e taskParams.arg1 = (UArg)argv;7 B2 r z. i: W+ m) [- F
taskParams.stackSize = 0x1000;2 r( D+ [& Y+ E( F
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
9 Q8 Z7 C" T) |+ W& x, o
! D- T( V. }) `& B9 X! E) w if (Error_check(&eb)) $ S& E, |7 g7 {* z2 g `/ @0 T
LOG_FATAL("failed to create application startup thread");
; b2 z6 J0 o2 m. B- g$ x
. c6 b4 I$ w2 M' g# f& J3 O% L- S lineOutmain();, c9 _: O. }" a, m
BIOS_start();& B! R) q( v2 a" D
LOG_INFO("<-- main:");
& s1 s7 `' _% N4 a' a6 `7 m; ] Q return (0);
0 e9 q8 g- g5 p: w* ~}
5 Y* T1 g& H, s3 @0 _& S& H其中lineOutmain();是启动lineOut例程# T; ?( U, ?+ ?9 q1 [
int lineOutmain(void)
7 u- V) i2 H7 b- N{& A* w! _+ c* C5 l8 O1 a2 T
unsigned int i;
$ [. u$ E! ^# Y% w5 I
7 F4 m' }+ Z, j- A1 L1 g3 K PeripheralsSetUp();
. I% N! q& u: w6 r& d) u0 B6 T
; F S( T, g) G3 u& h LOG_INFO("\r\n ============Test Start===========.\r\n");
* l* a8 C6 R: w1 P) x& @ LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");/ n8 j5 {) V, [/ x/ c
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");; d& Q3 i: H/ `# W' z2 F
# {2 r" s: S& A; n! D! h; c9 W
for(i=0;i<229396/2;i++) y, e/ D Q" D. K& _
{
& M/ ^/ ~. A2 ?2 ^ toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
3 e! ], Q6 Y6 z4 f# K/ W+ a }% S5 g9 _# c0 g* D) q. J
) j1 A/ N V' ~7 J+ C IntDSPINTCInit();) a8 f( k* m4 W$ ^$ r# x
5 E: b' ]+ V! {' J; u
I2C0IntRegister(C674X_MASK_INT6);4 Z4 n I0 R0 W: `# a
% V# F. s8 J# p4 u j" o
IntEnable(C674X_MASK_INT4);
4 Q* s8 v. W. Q5 s4 j, n IntEnable(C674X_MASK_INT5);
! Z1 G1 @! X+ T7 S" y s. W& ? IntEnable(C674X_MASK_INT6);) c" J9 l H, b' k9 M, W5 w
, }) D. a) F) y% Y1 B4 s IntGlobalEnable();
7 N0 B& k5 ~" \+ }8 [- Y' u1 B9 o, h8 G" ]" E' G: I2 x
AIC31Init();
) Y+ r- W. W8 x+ f0 _2 Y ToneLoopInit();
+ W C4 @; q3 Z- }6 p Start playing the tone looply2 S9 x- H+ W/ V9 `# D
ToneLoopStart();
1 b W+ B# z3 m$ g; E7 q ?
! K* V$ W: k- n% r; m LOG_INFO("\r\n ============Test End===========.\r\n", -1);/ W! e. [( V) r, R3 W
5 }' ?1 X, i/ V; { c% f' A8 w
}
9 o% w$ @( |' l5 {+ K: Z! Q" H$ E
! I- {! e$ y, Y+ c# B" \从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。; T- h; z) }* K, [
2 X; ?) ^4 @# [+ [
* {% }$ Z, l' |; f8 f3 s4 p3 h& _# w: k( h, T F
- `$ ~) V" o1 l8 b4 U; l
4 S, U1 Q- J& G% D2 s* U/ A3 y- k ]" e6 J, W) a' B8 ~
|
|