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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。1 w( k+ \  m# `! ?
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
# R: C" G5 Y9 @* M$ M/ O  J) d现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
/ ~5 y5 B7 C) N详细程序如下:4 k% {- K" K0 I9 s
DSP侧 main_dsp.c4 V# s: s* M) [% H8 a3 E1 {
extern int lineOutmain(void);; }- K1 K& x" r. M; y
Int main(Int argc, Char* argv[]) {
8 }9 u) G+ G: N, g6 P    LOG_INIT();% b; W) r. t3 U8 v1 v5 ~" x' w
    Error_Block eb;
2 L$ H+ [$ Y, w9 ?* B5 B- u    Task_Params taskParams;
  x+ n4 L0 p  G9 M1 l& u2 I( `; R3 A- D8 M
    LOG_INFO("--> main:");7 F" s+ g0 Y  s* O* [/ n
2 X7 }! L: t" b! G7 k1 r# {; I: A
    Error_init(&eb);
9 Q5 N$ ]! b$ i9 [3 q- ~# m4 b' t
& @3 D6 [' P+ R& ]$ C* i    Task_Params_init(&taskParams);
3 o" P# o; P+ S  q/ i    taskParams.instance->name = "message_loop_fun";+ S: w& e3 h; x6 l3 a, o
    taskParams.arg0 = (UArg)argc;
- y- k( W8 ~9 ~2 x; X' y    taskParams.arg1 = (UArg)argv;
+ I5 Y% o( h! y    taskParams.stackSize = 0x1000;
- m8 Z& X. K0 o5 b2 N! o    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
/ }- R' E% o) t/ j% H; o! c" V: _" R$ c# z
    if (Error_check(&eb))
; f1 u; A$ i+ v6 V/ p6 g: t# E        LOG_FATAL("failed to create application startup thread"); 7 j! l, j* U* r# F: I* x' M, _
        : c8 l% u" a+ A6 O$ \9 y, X' W
    lineOutmain();( ]# T9 T1 z- `. h4 Q! H/ ?
    BIOS_start();
. d5 Z& |& m6 y1 C8 [* D* H    LOG_INFO("<-- main:");
5 L- j6 V  J/ l5 M1 M( I3 r+ d    return (0);$ c) Q  p7 T  i! x/ ~" U
}3 h5 j  ?2 A( j) v8 I9 |' f9 |
其中lineOutmain();是启动lineOut例程
8 z1 Z$ Q7 m+ {+ c( U' ~int lineOutmain(void)
5 E% K; k: k  ^& l; X{/ I- E1 r! N0 B# B8 F) Q( `
        unsigned int i;5 i+ V% V4 E2 X5 \7 W( G3 |3 V

2 G9 ~; t+ B  S    PeripheralsSetUp();$ y! L3 J$ S2 U; e* W3 @- b3 N

0 x+ v' \) v8 ?* N: ]/ B* x    LOG_INFO("\r\n ============Test Start===========.\r\n");
4 F6 z5 Q5 z. i; I    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");# Z" Q, s5 Y  G  K3 m: K
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");' Z1 w5 W5 ^, }8 V% N% o. @
& G7 m( o. c1 y% g% `1 P  q
    for(i=0;i<229396/2;i++)
' E; c, l. |( R* F( e* `        {6 f5 k3 c0 p9 p! m
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;. R# a6 T1 T( l- F/ \
        }
* ~; l  E# Y; R) p. q  Q
$ M  H3 x( H9 c* o    IntDSPINTCInit();
7 _- G/ N, K7 T, m; U/ i1 \8 a% w5 g7 T
    I2C0IntRegister(C674X_MASK_INT6);
0 U0 U; d& L% V- _5 m% g! x  f) D, G$ n) F- d: }9 L0 B. H
    IntEnable(C674X_MASK_INT4);
" _( Q' q! e+ d" k! V+ A    IntEnable(C674X_MASK_INT5);
6 h3 M4 g2 L+ P4 y; ~0 _+ C    IntEnable(C674X_MASK_INT6);" ^6 {, L( l5 ]

) W3 t1 T/ O7 c% b5 M) [: a6 G    IntGlobalEnable();
# \; S9 T0 o9 b: A4 u+ Q# ?$ K4 A0 \' c/ W5 ?4 X5 t
    AIC31Init();; O' h- }0 A; }8 ?
    ToneLoopInit();
: O. w& L: Y: j2 g% i& y    Start playing the tone looply1 C) f; }& f/ ~% ^# ~! X4 w
    ToneLoopStart();/ N. @6 v% Z6 v, d! J
2 Q$ W6 w+ Q5 {: ?
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);
* h3 p9 H% A7 r) z3 U: H) B) H8 g. J  q  T
}
; A0 R3 Y) i. O, b9 O  Q7 B* J  \3 b* K- c) v5 P
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。  I* y3 u4 ~! A' k6 K4 j' z% ^
1 S1 D$ d8 b- C! t8 Z" ~
/ a' _- K+ n8 J; p$ X

1 D8 U4 Y  p  O0 c3 P% N
1 n' l$ ]4 t4 s& U5 c4 z6 C  {+ _9 Z/ |" ~& R, c
# Y, D; k4 u, a3 ~4 _) y, c( j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断9 ]2 @4 [5 f) n6 {
, e3 l3 \, M7 r3 _+ U
在 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-5-22 10:51 , Processed in 0.043843 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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