OMAPL138基于SYSLINK的双核AD采集处理例程和线性播放有冲突 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16789|回复: 15
打印 上一主题 下一主题

OMAPL138基于SYSLINK的双核AD采集处理例程和线性播放有冲突

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
( F0 T' D/ o3 r; y4 f目标:AUDIO_LINE_OUT播放声音。ad采集声音。% r6 x* j4 W2 r2 ?+ @) u" S
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?): `% X/ r( E. B" w  B
详细程序如下:& T5 O3 G. F3 o* X+ E* ^
DSP侧 main_dsp.c$ z* d+ F" L* x, r( H- ~
extern int lineOutmain(void);
# ~8 U+ I4 V3 A* [. u8 CInt main(Int argc, Char* argv[]) {  j. z! U5 f4 S% s* _
    LOG_INIT();7 r9 d  d5 z3 H+ L! ]/ W1 m- [
    Error_Block eb;2 b7 X- o7 F- v# E0 l, |% o( y6 {
    Task_Params taskParams;
; d4 U( u* D; G' B) U; N: M. D5 g6 t+ `$ v7 M
    LOG_INFO("--> main:");
% y" G6 p' o6 t% W# Q: S9 o8 G5 b1 X" J6 x$ {/ ]7 i5 C3 N
    Error_init(&eb);$ [% \- `* m( q) @; l& T
# m8 h  c9 Y) g7 t1 K0 ?  l
    Task_Params_init(&taskParams);2 x5 P% k/ }( Z1 e) L
    taskParams.instance->name = "message_loop_fun";$ P3 r) S* v6 }  }0 W
    taskParams.arg0 = (UArg)argc;) d) x' [- k3 d( N& B
    taskParams.arg1 = (UArg)argv;, C) ^  ?: _5 L# g
    taskParams.stackSize = 0x1000;
% t* ^8 R4 }, ?, d" F' e, W    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
  k* p- o6 V5 c1 r0 Y3 W$ w1 o, p" ^
    if (Error_check(&eb))
$ l8 x# e( S, j* X, `1 t        LOG_FATAL("failed to create application startup thread");
+ T$ v3 w: ], \3 ]! ]9 j       
9 D4 h' f* `' b* F6 b# s& t$ z    lineOutmain();, R+ g2 @3 |; S1 K5 b4 a) g
    BIOS_start();8 A* H  T8 r3 U  m5 v% u7 v/ m
    LOG_INFO("<-- main:");# E* p. a% U! }! t8 T6 b  x! S# Z+ N; q+ s
    return (0);: S: K; ^: J% W7 {; a9 Q
}
3 i  Q' K; M8 h0 o. r* R其中lineOutmain();是启动lineOut例程8 g( @- m: q  L4 J" s6 Q
int lineOutmain(void)
5 k( r0 W) T' F5 |4 `{1 B5 n; u) g6 l+ y2 r9 R
        unsigned int i;
, z) j" T! C: Z6 P  Y
/ R; _2 ]7 ^7 W" F" ?( C    PeripheralsSetUp();* p. D4 ~1 ^# K/ D3 a

* R) e* v3 y+ {, }* L+ q    LOG_INFO("\r\n ============Test Start===========.\r\n");
4 r$ k/ x' I: m6 v  A( }    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");. m" z, h: g( m+ s* @" n
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
8 p. ?, l  O% M1 G2 J/ Q1 o; t7 X. a2 k& {$ g7 C
    for(i=0;i<229396/2;i++)5 V; E- [: J$ v; |7 q) k" Z" Z  c5 T
        {
7 w. s  ]5 Z) ~7 E                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;( d0 v: a8 Z3 |  ~$ g
        }6 r! ]6 U  l7 v$ o  |

" J! b) Z! y4 X5 {  o) B/ L3 E+ y. g  ]    IntDSPINTCInit();# L# k( K. K6 T- c$ i
  \% H  G( Q) C! X. _+ k
    I2C0IntRegister(C674X_MASK_INT6);
0 H6 Z% Q  l6 w- r8 o6 |- T" q( h0 `, n# S- Z4 N* h6 R# k% l& T
    IntEnable(C674X_MASK_INT4);
) Y/ I. d( e. y  Z! A+ u    IntEnable(C674X_MASK_INT5);: m7 p9 ~; Q0 w8 e
    IntEnable(C674X_MASK_INT6);
1 V* _/ p# ?7 i, K
) z" c! |4 ?5 t$ P# ?2 a1 J    IntGlobalEnable();
0 }* V0 s# Z& l* y" R) w! X
5 s6 `$ I/ b* M6 m: Y4 Z    AIC31Init();6 D  l0 q9 j/ l8 E7 J8 k( M+ r
    ToneLoopInit();
* L# n6 T; x7 L3 N9 b    Start playing the tone looply. m; Z+ W$ N& Z/ ?- }
    ToneLoopStart();
" b( C0 F' A! X2 H; q
2 S* ^8 |# f% H3 [    LOG_INFO("\r\n ============Test End===========.\r\n", -1);9 T* f+ P) g6 u3 e8 Z. g( Q
8 a5 H% P4 T0 e( X
}+ Z* m. D; x8 k7 u0 I: T
: o/ f4 A, A- G/ K0 @! l
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
* C+ T. w2 D+ e$ T) [3 S4 C
6 [- p' y( K7 `' ^+ R- ]3 v. z# D  S4 o. e/ ^6 ?

. j) A% d: J( W6 a% K# z7 K
1 F- h" }/ ^: {) M* {( `
! t' L  s8 M6 T( ~' n
! C6 N. p. o! t+ ?) C( K5 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断7 W0 q, E7 \  O9 F( v/ y& H" l

4 N. Q$ r& p0 z4 g2 g# ~) [/ R% k在 SYS/BIOS 中断应当使用 SYSBIOS 提供的 API
回复 支持 反对

使用道具 举报

96

主题

129

帖子

447

积分

禁止发言

积分
447
板凳
发表于 2015-3-4 13:05:44 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
地板
 楼主| 发表于 2015-3-6 21:54:03 | 只看该作者
按照seadistant的方法:把IntDSPINTCInit(); 注掉,AD无法正常工作。lineOut也没有声音输出。请问如果两者有中断资源冲突,修改哪个地方(AD 或lineout)使两者能同时使用?
回复 支持 反对

使用道具 举报

96

主题

129

帖子

447

积分

禁止发言

积分
447
5#
发表于 2015-3-7 14:57:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
6#
发表于 2015-3-7 16:44:19 | 只看该作者
看一下AD7606和音频使用中断时,是不是映射到了同一个中断
回复 支持 反对

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
7#
 楼主| 发表于 2015-3-9 08:28:55 | 只看该作者
谢谢楼上提供的信息,我现在很想知道,tl的光盘中是否有这样,在用 SYSBIOS 调用line out的demo。或者能否为我提供一个这样的简单demo(能用,不冲突就行)
回复 支持 反对

使用道具 举报

14

主题

102

帖子

821

积分

创龙

Rank: 8Rank: 8

积分
821
8#
发表于 2015-3-9 10:42:42 | 只看该作者
目前没有SYSBIOS下的音频驱动,不过移植过去不难。我们公司很快就推出StarterWare程序移植到SYSBIOS的视频教程,敬请留意。
回复 支持 反对

使用道具 举报

14

主题

102

帖子

821

积分

创龙

Rank: 8Rank: 8

积分
821
9#
发表于 2015-3-9 10:42:44 | 只看该作者
目前没有SYSBIOS下的音频驱动,不过移植过去不难。我们公司很快就推出StarterWare程序移植到SYSBIOS的视频教程,敬请留意。

点评

有音频驱动的  详情 回复 发表于 2015-3-9 21:54
回复 支持 反对

使用道具 举报

96

主题

129

帖子

447

积分

禁止发言

积分
447
10#
发表于 2015-3-9 11:36:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2025-10-16 06:38 , Processed in 0.044700 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表