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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。  F9 R  ?" r7 U8 c$ A' X; {
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
8 m/ y7 f% X0 e现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
0 Q; g! ^2 m( b1 @7 ]6 [% v详细程序如下:/ O7 `, ^' E5 e- |/ D
DSP侧 main_dsp.c7 t$ K& }3 Y9 ?2 {* n
extern int lineOutmain(void);
0 s8 x( X2 R: X3 c4 U+ PInt main(Int argc, Char* argv[]) {/ h: Y0 \- k; I! ~/ z1 q% B" M
    LOG_INIT();
9 L1 T$ {( M+ C0 S2 }' b1 [, C    Error_Block eb;) i- m: k# k1 F$ x7 Z  V
    Task_Params taskParams;
  w. A) ^$ Y1 L" Q
  o+ E5 ]. i8 n7 X0 p+ i; U0 @, u    LOG_INFO("--> main:");7 P4 D: O: I0 ^' x9 M9 M, W- `

" ?: y* A1 H/ r, J2 X; o9 P3 F6 H    Error_init(&eb);
* p. d: C+ Q0 I9 n: ]
, m3 ?, L' Z$ A. L3 r+ y4 ?    Task_Params_init(&taskParams);& x: D. O4 _  R0 T+ Q
    taskParams.instance->name = "message_loop_fun";) p/ c* \6 I2 _5 _8 w7 M: l/ y
    taskParams.arg0 = (UArg)argc;4 E! |/ \& ]# O0 r4 U0 J+ F
    taskParams.arg1 = (UArg)argv;
1 R2 u) b3 b: l4 M    taskParams.stackSize = 0x1000;
, F: N) O4 g$ `% i8 A: W) ]# z8 G    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
2 U: ?+ ?8 T& j3 h
% X# l4 F- ^8 H+ ^* ~: q4 v1 ]    if (Error_check(&eb))
" X: R6 j8 R& E) [9 r" t        LOG_FATAL("failed to create application startup thread");
0 p% g5 ?) ?, c& I        ) ]5 S- \5 w2 |# c+ R
    lineOutmain();3 G8 G) X5 C6 y# I% L
    BIOS_start();" k& c8 T8 g" g4 Q+ B2 w
    LOG_INFO("<-- main:");! P6 @% t9 O! ^- F  a3 p: f
    return (0);
+ O- a5 Z- R7 \( L3 i: {7 j}. ~0 E+ C4 a5 p. ^; N# h9 w8 h
其中lineOutmain();是启动lineOut例程, L: W6 d7 w" }% Q# t* B3 V# b7 Z
int lineOutmain(void)
5 m8 V5 I: l# n{/ p/ {0 Y4 ]8 G, c
        unsigned int i;
$ v7 T2 D4 F9 G8 i+ _* i, y1 X, @# J6 d; U# j  o
    PeripheralsSetUp();  `) e9 U: N5 Y- H4 M5 i% `0 _
8 Z9 ?. ~7 z" ^5 n% G" b: ?
    LOG_INFO("\r\n ============Test Start===========.\r\n");
7 r3 O+ y* p/ M, P    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
- s, J: V9 _; B& B7 Q) n    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
4 c$ u3 M# r: D4 ~" K$ s
- d1 U% u2 K1 ]2 t    for(i=0;i<229396/2;i++)
0 t% F- z: E5 j5 G" x5 f        {0 d* [$ n  x' G
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;& k: w( z0 g) H& S3 _! Q
        }8 C$ P1 G5 r! U' O, v
6 {9 \, E, a3 j$ b4 J
    IntDSPINTCInit();- E& b- b$ H8 J! `( y

+ w1 q+ i: ?; o! z    I2C0IntRegister(C674X_MASK_INT6);! v* l6 @* Q' i" ?! ~
+ w# z% O1 d1 p% e7 z0 E5 q
    IntEnable(C674X_MASK_INT4);
: y  G3 m, C& R2 q    IntEnable(C674X_MASK_INT5);
, J0 {1 p( t! v; `    IntEnable(C674X_MASK_INT6);  ?8 Q) I8 O+ p" h9 \2 e

' |6 ?  v  n) }" ]+ P9 O    IntGlobalEnable();$ b- ?# j& u" e, _5 g" R
8 F+ e; L+ y1 |7 M+ L
    AIC31Init();
5 U/ F) _/ k4 t+ k    ToneLoopInit();! W) e  P, V* X: I# M* D
    Start playing the tone looply
# `0 r- I: j6 c( f    ToneLoopStart();6 s5 p8 \! Y; K
1 h2 ~( F$ ^/ v% p3 y% d
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);! K9 s( ?4 I5 d( D% {
/ O1 l* F4 @3 k5 ]
}
8 |/ v0 @' w* u7 c  t. L7 F% V& w2 k5 @
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。" a  w0 y. l! d: K, i5 a2 f

- G+ u' f0 e/ J7 C7 n; k
6 p# n# U# x; s: }9 l
! v0 b% t% i  `9 h* H9 o9 q
! M3 E4 X$ M) A8 ~* W' L8 ~. R; x. t7 b. p2 p/ n& J8 f; L: U

9 x$ b+ J: }$ W! h% i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断
! M- A5 l2 Q5 X, k
- w! x' g1 Y: k, y在 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-7-1 07:55 , Processed in 0.041658 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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