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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。/ f5 _9 w% i) z
目标:AUDIO_LINE_OUT播放声音。ad采集声音。# c+ {$ `$ b% j( `: d9 _) p
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
: K4 S6 F( j. d2 N2 v& M详细程序如下:( c0 O* a( B8 O/ N
DSP侧 main_dsp.c
; ^2 c( X; ~+ Q( V7 U. d6 nextern int lineOutmain(void);
+ V! ]0 F9 N, Q- }& p  v3 [Int main(Int argc, Char* argv[]) {
: v5 y+ o( `8 w    LOG_INIT();' f. g. v- W/ C
    Error_Block eb;
# g# t  L  s- a% B; R. V1 V$ C    Task_Params taskParams;
5 A% Q* _# X3 b1 o4 y5 e+ [2 G3 B7 `2 t9 c* ~; [8 u2 O
    LOG_INFO("--> main:");9 H1 `' b0 b: n

4 A/ E4 ?% ?7 O5 e    Error_init(&eb);
, _, f' D  r: D+ ?: Y1 v2 t+ [
( \: {0 o; s# }  N' E    Task_Params_init(&taskParams);
& o. k. d7 [+ j# ]6 i2 y7 e    taskParams.instance->name = "message_loop_fun";
: j% W- X; ~' X  _" }. w8 ]" z$ K- d    taskParams.arg0 = (UArg)argc;
8 D1 G' |/ H7 A    taskParams.arg1 = (UArg)argv;) i% n# _! _" S# r) O3 J* |
    taskParams.stackSize = 0x1000;
2 E0 M. a2 j3 g  E* y: f) U. p    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */; \# ?" D1 W, ?/ y) ~1 G8 Y
2 X8 [, r6 F% l% c4 g. s4 }( r
    if (Error_check(&eb)) 0 n4 M7 h/ ^3 @4 X9 w$ z9 l. V
        LOG_FATAL("failed to create application startup thread");
  g  a! N* p1 ~* W2 l        . N$ L; q) G; |9 y- J/ _9 f6 v
    lineOutmain();: H, W3 J  Q/ c7 H; G: F
    BIOS_start();+ c4 X2 }2 G3 T3 x/ h, N
    LOG_INFO("<-- main:");
+ w7 h4 E. t, y" k: t    return (0);
8 K* v, B( l! c' t- a2 `}' u4 d( G: U) b
其中lineOutmain();是启动lineOut例程. \- F5 E9 b4 ?1 [
int lineOutmain(void)* v: F; k. c9 d8 o' U
{. Y" t  n& t+ [/ w" L9 I: o3 ]
        unsigned int i;
2 z% Y8 a. Q) q9 R7 p9 Z0 y5 E& O. l2 m9 @- {
    PeripheralsSetUp();) N& Z) M  N3 p1 }5 v
4 n  I% r, d; m% ]
    LOG_INFO("\r\n ============Test Start===========.\r\n");/ L2 S/ l2 V. M5 F6 r. [
    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");7 M7 S' B; z4 l
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
1 N9 e; i; Q0 Y% t" @* m' N% v; B. ^& Y8 c- |1 Z
    for(i=0;i<229396/2;i++)
6 Y; m" R9 }# \2 T) A+ t) k$ X6 U        {  A9 X! l$ D7 e. A; K; B( O# c
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;" q. C9 `- _. y' a
        }4 Y  l& k5 b7 }3 n

1 u" a3 K5 I3 i& c    IntDSPINTCInit();
, L" v" Z, t5 [' n3 a4 C) P. O# D5 O9 \! g
    I2C0IntRegister(C674X_MASK_INT6);4 q; F- d  S( z" c6 |

( C. f' A! Y, ~5 c    IntEnable(C674X_MASK_INT4);
4 J5 j3 F* o: c- b2 K    IntEnable(C674X_MASK_INT5);
% t+ r& ]4 z+ y8 ]5 l$ i+ f) b    IntEnable(C674X_MASK_INT6);$ x9 z* q% r& b8 b; U8 F* g
+ O0 w5 ~7 h- D7 q# v
    IntGlobalEnable();# V# F7 H( e( \  E
( F0 {( L4 e! ^& \# b2 B4 z
    AIC31Init();+ z9 J4 o! U8 I* @, O0 _2 J* j% A
    ToneLoopInit();
* q7 T! |% S( I* T* A! i2 G1 R    Start playing the tone looply1 t+ A; c* f3 {% {% }" M( ?: b
    ToneLoopStart();
7 h+ b8 i, V: s* R! E: J2 U" V
0 r9 d$ ?9 X' r, @4 s/ u! _    LOG_INFO("\r\n ============Test End===========.\r\n", -1);& n( U1 E& c) \; T: S& T1 J

( ?1 ~8 M' m3 G7 z3 F4 Z}% j% M/ J' E/ O/ W& u, _
) v. b- L7 n9 w8 e
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。$ ?% f1 G; n! {  c6 V3 E3 Q: U
0 \$ Q1 k% M+ b: W( c
) L9 L1 Z8 w! i& E8 k
# V4 i, I9 C( X8 g+ L8 D) j

9 F+ y6 T" E, o( S& U1 {3 m- H. i- X+ x$ _( G2 v( F0 [2 d
# |& S. e1 C6 s4 k8 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断0 S. c3 Y! S9 g6 q; K. R

- ~+ r1 A9 i3 }0 i: D( t" b在 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-11-8 14:08 , Processed in 0.040337 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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