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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
/ ]. K2 e# v( s+ ?目标:AUDIO_LINE_OUT播放声音。ad采集声音。
! @: a1 W: C- }/ `0 B0 N现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
/ J4 \/ O' |9 {2 E详细程序如下:/ i) Z! }  A. W# r# S9 }6 |; z
DSP侧 main_dsp.c  x' z$ _. Z, f& z
extern int lineOutmain(void);
) j, G5 G7 R& W' l8 I- J. qInt main(Int argc, Char* argv[]) {
7 {3 t: h# M9 r3 e) T% l6 z    LOG_INIT();
( |2 ^2 u+ Y; q4 r4 y' l  h, ~2 ]0 \    Error_Block eb;
( X3 S  J$ b; p  f# x% a    Task_Params taskParams;
' m9 T0 ]4 B' a# s1 q" f
# r& r$ ?5 f( e    LOG_INFO("--> main:");) E7 X6 M6 I; W$ W9 C- ~
+ O& V2 D4 b( s" I/ e4 R/ E3 j
    Error_init(&eb);
3 V' ~: Y  E0 U& V; |) R$ l. f4 o0 d* h) K3 m; c9 p. `  d
    Task_Params_init(&taskParams);+ |- w  c  M0 O$ g$ U
    taskParams.instance->name = "message_loop_fun";
7 N" N$ {% Q  ]) N0 }    taskParams.arg0 = (UArg)argc;9 \/ P+ h. R4 }% c# ~: ]: \
    taskParams.arg1 = (UArg)argv;
  J8 c- U9 e1 }0 c  o: b4 \% \    taskParams.stackSize = 0x1000;: s; E8 P. t; s2 n& \! b$ N
    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */" T$ r' T% B/ R& \1 s; r

0 R- {  ]  i/ _4 t% W6 {, i" b+ S  Q. I    if (Error_check(&eb))
) s/ }' p4 q1 A        LOG_FATAL("failed to create application startup thread"); 0 c/ o7 ?' K' S) d) O/ w8 ~6 _6 S
        4 p) p1 O* D. C9 U5 G6 Q) [
    lineOutmain();( P& k9 [! G# s1 Z
    BIOS_start();5 S" y( ?1 I& d4 d: V9 X
    LOG_INFO("<-- main:");5 c8 y5 N' b1 X5 d! j' d1 {% C
    return (0);' B  K, @; i% S& e4 C4 ]1 \7 m
}
' L0 N/ Y: I, K0 g$ B其中lineOutmain();是启动lineOut例程+ c  _$ S0 B) ]
int lineOutmain(void)
; P; B+ N4 H. \{
1 w1 `' E, i: f' _( V        unsigned int i;
# i. |' k# r( `) n. O/ k4 }1 z; P; L# x, w/ n* K- Y
    PeripheralsSetUp();3 O% y9 @2 j$ U. S9 E1 ~0 l, B

; u3 h) c$ R5 Q% Q/ V) o4 z' d1 R    LOG_INFO("\r\n ============Test Start===========.\r\n");
1 u' c; s  J7 @8 I) c    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
6 f, c5 c; K  x7 l    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");" C* K: v1 }8 O; s

7 N7 \6 o* n" p    for(i=0;i<229396/2;i++)) P1 h: Q/ Q/ x8 |" E! m
        {" Q  u5 f/ p$ T! g/ L  ^0 H9 ~
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
4 @! E; u; ^  Z/ P; |5 x# Z        }
1 R( K' G( c; j
: {- i* H: S1 C    IntDSPINTCInit();
. a6 y9 g) ?2 A" O. Q' I8 }
, {" |: u1 ]: _8 S    I2C0IntRegister(C674X_MASK_INT6);! o7 x  M% |! }* k# s7 y

5 S- N& s, C, X/ Y" q    IntEnable(C674X_MASK_INT4);3 \4 [4 U" \+ S
    IntEnable(C674X_MASK_INT5);
3 R- b" ]( f/ `    IntEnable(C674X_MASK_INT6);8 h4 w5 k; F8 [' f7 z8 n
3 Z' `9 {" u, W- D; z% i
    IntGlobalEnable();" Q  U  i) N/ b- M' n2 j0 C
" E  O: P' A5 X+ X8 S* ^" p
    AIC31Init();4 S0 k& b9 w$ B1 g. V& `
    ToneLoopInit();+ c; s; }, }: ^; `
    Start playing the tone looply/ m7 w3 p- t  u) \
    ToneLoopStart();3 i& U5 _4 n" \/ {& J' }2 Z

( h7 N' a- @8 V: G9 {2 S3 c    LOG_INFO("\r\n ============Test End===========.\r\n", -1);
" r/ u# ]0 }3 g" U7 Z9 @- Y. X7 `( Q- _% }) U$ c# |0 |0 P
}6 M, g4 L) T+ @! X" H6 G
4 [  P- i" p9 h& K; T
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。5 ]0 H9 M' i* Z3 a- Y3 X  ~) {
3 H8 C+ `1 k: {
3 u( [. A# y6 @) o! {) W7 u7 X
4 i# s. ]4 O  V) K8 r2 K0 _
  D! V0 E/ d! f6 H; ?2 S+ V

# r9 P1 Z) o6 g0 w1 m1 k3 O  o* X  g2 ~0 [0 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断
  [9 s& h: X# T$ |% J) f: J
8 W' N* b" t6 G6 b" ?, c( i2 d: t在 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, 2024-6-5 08:26 , Processed in 0.050478 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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