|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。; S0 z9 @# H/ h0 F
目标:AUDIO_LINE_OUT播放声音。ad采集声音。5 j$ I1 t1 y* q4 O- G, u7 J
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)& {7 u" M3 J, z! c: z
详细程序如下:
$ C0 J9 f! J& P4 y7 z( RDSP侧 main_dsp.c4 ~& e! N% U9 d( n, |
extern int lineOutmain(void);
0 F* r- u/ I7 ?* Z) bInt main(Int argc, Char* argv[]) {4 I. T3 ]" [( z% `- n) x+ L2 y0 }
LOG_INIT();4 A! q+ f& D# G
Error_Block eb;
9 k. }! j( K1 A% ] Task_Params taskParams;5 q3 Z/ I8 e1 v3 O8 Z( M8 e
3 @# B+ k7 v8 F$ w5 m3 i LOG_INFO("--> main:");% Z5 {7 M: f. s; M
: t6 K+ ]5 c/ N; L9 x* T4 _ Error_init(&eb); H7 l. l) W' V5 |4 o. [* Z
# v$ l3 F9 K# w# c6 x0 s
Task_Params_init(&taskParams);
- T& G' P2 f1 I5 t3 q+ T taskParams.instance->name = "message_loop_fun";
2 X$ E; T" l2 t- X, l# g& F$ C taskParams.arg0 = (UArg)argc;
4 m; v' v+ p6 T" Y& R$ f6 `' F taskParams.arg1 = (UArg)argv;7 B/ o6 p/ S6 d
taskParams.stackSize = 0x1000;
; `4 Y, v7 l2 ^% ?4 L# _ Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
# F; n) Y) M7 q& E* O& U. Y! p- [/ ]5 o, H1 K, f4 Y3 S3 k
if (Error_check(&eb))
- S% O9 S! T3 Z7 f LOG_FATAL("failed to create application startup thread"); $ Y& A, ?2 [1 T' Y- s# g( |) Q& h
5 \: d/ X+ V4 s/ n lineOutmain();, J3 C: o' W, f, p+ t7 Y
BIOS_start();
7 o. N" ]% T) b _) q! g LOG_INFO("<-- main:");
* k M' C, ^: r3 V7 n return (0);
8 h6 |6 ?+ B# r8 _}
/ K6 i/ f1 j6 s其中lineOutmain();是启动lineOut例程
2 [0 O5 U9 q$ G2 I6 }int lineOutmain(void)' L" C4 j/ e- y/ t: O
{
* B7 ^1 d" U9 J2 T7 x$ s9 F, c e' A unsigned int i;
& a: b' ^: f. ]$ J% D) e2 E' I1 n, d9 O( c2 W- Q
PeripheralsSetUp();
' X* F, s* f# b# _* `4 G, H1 g6 { z/ u; m
LOG_INFO("\r\n ============Test Start===========.\r\n");
! s0 b: a- r2 ^0 T6 b% y LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");! I0 Y" W1 u0 E7 c" [ P k; E
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");* H8 v' H/ D: G& b9 U
* Y' \9 i" N" B/ E% H+ R for(i=0;i<229396/2;i++)
5 J' L; y0 f/ V% |+ ^- _- O {2 G2 b" r( W9 r( D" t
toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;$ w T6 g2 J8 D! c
}
$ J9 ^ D) z! |/ i/ c' f9 A
' {6 b/ O; M) w) p IntDSPINTCInit();- {" g+ ? A7 p, [8 H, ^
" F' l4 D+ u5 x2 `% B( V2 t: o( n
I2C0IntRegister(C674X_MASK_INT6);$ p u% e2 ]: d# k
3 j1 Y9 V4 B! B' B9 U: D4 X' v IntEnable(C674X_MASK_INT4);
; v0 i3 t& \5 @( B2 k3 q5 ] IntEnable(C674X_MASK_INT5);9 V% `+ V+ I4 m/ F6 I) s* o* j9 ~: \
IntEnable(C674X_MASK_INT6);" ^1 x s& {# Y" w# F( R- z
) G9 }5 J, S* `9 |
IntGlobalEnable();0 `* T" F2 Q3 q, l& Y
1 V& P$ w. p! O. u1 f AIC31Init();
; X" L! @8 u8 S7 Z ToneLoopInit();
. `$ X8 U- E) ~; w. k+ m Start playing the tone looply$ d: I' p5 y$ N2 f* u
ToneLoopStart();; K5 v- s+ ~( d' ^! [8 X/ {8 ` U7 F
4 l- l1 w( `- L
LOG_INFO("\r\n ============Test End===========.\r\n", -1); y9 W: T: r7 |
S# \# R, r2 v( |5 A" [8 B) I& ?}8 F: b: z1 P# H- n. S
" @: Q# B* N4 V* w9 _3 Y) g4 m7 [
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。0 q. b* P1 _5 V/ d3 |* h1 l- W
e& z0 k* k3 m" H- `6 ], U
1 U- @: }4 x5 K; x
0 M7 U& v9 ]: Y8 N$ x5 e
6 U2 U$ w* c/ T2 E9 D v8 A7 P' O r3 L2 l: d8 G, r; [
- |5 ?+ l& w9 e9 r0 i4 y |
|