|
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。7 d2 a& Q2 a5 g
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
6 J) U% i7 k1 j6 x- n现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
! Z. |7 P$ Y+ ]. i9 {/ J% }$ h详细程序如下:, \' t; n$ C8 A$ D
DSP侧 main_dsp.c
3 k% B B2 L# z4 Z$ O/ O0 w# oextern int lineOutmain(void);
- E% Q3 e5 k$ r" }- k w) a+ eInt main(Int argc, Char* argv[]) {
7 d% {9 }7 }& n6 r1 H( r LOG_INIT();
& F4 o% S; r+ g* w3 M Error_Block eb;8 X8 v9 C0 i& T3 s+ p" S8 O; q
Task_Params taskParams;
3 [8 v7 p; I" x, s6 N5 O% w( m8 g" X7 b/ _/ U
LOG_INFO("--> main:");, D8 s c- ^6 L" e
% N6 e5 L; h4 s L7 X/ S0 y2 s Error_init(&eb);
/ @% A, ^+ V/ u' p; d9 k
2 Y+ H, v/ u# m( X Task_Params_init(&taskParams);! f# {7 ~! L9 u! Z- {
taskParams.instance->name = "message_loop_fun";/ @+ z! K. p- x0 |$ W+ Z) O0 S
taskParams.arg0 = (UArg)argc;# h" J3 h S% c' N/ X& w2 i0 c
taskParams.arg1 = (UArg)argv;
$ W- ], k) L# k# ?" ~6 W taskParams.stackSize = 0x1000;% P- R* \( q- ?0 E# K
Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
" x3 j9 w8 Y. h# t
4 \: F# p$ |. S1 ?* j' R% U if (Error_check(&eb))
( j! f& M W5 u. h LOG_FATAL("failed to create application startup thread");
0 y' |, ^0 D8 E; d* A
) T! v) m+ |6 g) a& c* E0 P% M lineOutmain();( I! w- P& K5 u
BIOS_start();
# k7 Z9 Q5 h0 T7 m: e3 w1 E LOG_INFO("<-- main:");
, L3 b) d! w' F- ~$ U return (0);$ p7 g2 y9 u% m/ h" H* ]" r( J' X
}) r* Q8 N j. @, E
其中lineOutmain();是启动lineOut例程5 l; V; [! E7 r4 `( O
int lineOutmain(void)
b- e E+ R% E( w/ U5 k{
4 G3 k" _0 Z0 x+ L; ` unsigned int i;
" Y b+ d6 b% ^1 q7 T7 n* _) R5 d6 _6 e7 z3 [
PeripheralsSetUp();. A- ?3 b; ? k' k8 M' e
1 {1 ~2 Y+ b( D' ?( L LOG_INFO("\r\n ============Test Start===========.\r\n");
; m* y( T% K) o+ U( }. k4 J# d LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");+ S0 I7 @2 J7 D$ Y, [
LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");$ k0 t' g- d) T7 t
! `& H) e8 G& f. A) R for(i=0;i<229396/2;i++)$ }+ O, P5 m9 V
{
3 b3 b; T' h* {, c4 S# a1 w4 Q toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;7 p. y! C5 S f- T# U' I
}/ D4 L% Y. e8 j& q
" L4 Y+ i n! y* ]$ M
IntDSPINTCInit();
& p0 T( |5 ]5 {( e" n }& h4 L9 ~2 c% w Z, [9 U
I2C0IntRegister(C674X_MASK_INT6);( u* i9 m0 y+ ]4 n& v" P) U
2 m, u f6 q4 ]4 m6 o6 P3 ?
IntEnable(C674X_MASK_INT4);+ j; B Q6 Y8 U
IntEnable(C674X_MASK_INT5);4 N! m9 C' b3 K) U
IntEnable(C674X_MASK_INT6);
- @. N. b4 O. P3 j7 Y/ g% W/ @
% v* v& l' n: q IntGlobalEnable();' s h# y- r& t5 m' Z& p# \5 S
H# x: ? \5 f7 k& X" ~- Y3 a
AIC31Init();
" L; O; ^% A0 v; G/ V ToneLoopInit();
" U8 l" b7 H+ E Start playing the tone looply
3 Z) q$ L4 I" D% t/ R6 Y ToneLoopStart();8 `8 b1 k; Y" i* Y) D6 T
! N! W; W) u+ M
LOG_INFO("\r\n ============Test End===========.\r\n", -1);. N! \8 D; U; i0 L1 c
: b- |" _+ w: X5 b8 f$ a* J
}
, V! W& V+ @& `' L$ W" D8 k% k( {) N( g8 S& b1 o
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。+ w1 e/ |/ v" G" y6 C
1 Z9 K9 n0 J+ @8 `& R( I; y4 |. `3 D( O5 P* [; v7 c @5 K' G
7 v5 P3 Z$ [9 X$ w# H% y
/ V( b8 ?, r( \- u- _2 X C; f
* `9 @* d1 B0 @* t6 p6 ]2 R: j. g* A+ |% N
|
|