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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。6 {9 q. g' A4 ]& s3 d6 @) i: N
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
8 V% W( M9 W8 W# Y2 C( z0 p6 i现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
' K3 y3 z$ l# O) Z" C详细程序如下:" ]7 I' C+ ]4 c/ A8 G, Y5 O
DSP侧 main_dsp.c" ]# p% p* r) x  A# V2 Q9 }
extern int lineOutmain(void);* d- r: X7 l3 Z# q5 t# ]
Int main(Int argc, Char* argv[]) {
$ U7 Z2 |) ]- _$ S    LOG_INIT();
8 `/ w8 i3 e+ Y$ h* l    Error_Block eb;
8 x! O+ y8 T) ~8 z0 O+ y3 v    Task_Params taskParams;# e! m  |- G' O" [
( o1 C2 p/ P" b' f
    LOG_INFO("--> main:");2 w8 ^0 }7 U8 ]1 F2 i+ R5 J

7 ~! B, u% M+ o# t8 H    Error_init(&eb);
7 U" u, v# c1 f6 w
8 d9 d' |; b/ w2 E9 Z    Task_Params_init(&taskParams);+ r0 N% h, h' b5 |0 v& Q
    taskParams.instance->name = "message_loop_fun";
2 B: q" g) S+ \( o1 Q* H    taskParams.arg0 = (UArg)argc;
5 w0 p7 ~) X8 K$ i! K8 T' c    taskParams.arg1 = (UArg)argv;
2 `9 d* K3 H: w( }    taskParams.stackSize = 0x1000;
0 K& r: r( P; }+ d6 U    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
" X! x0 \) v6 Q* ]! N: Q; n2 E+ O2 T. f/ C
    if (Error_check(&eb)) 7 A" E, _% o6 g5 g7 ]/ @& I% t+ N
        LOG_FATAL("failed to create application startup thread"); 8 K" o' _. B/ g5 k) b: h
        , g# e! @# O% A& J1 h
    lineOutmain();9 ~% \# @; N5 c( ?
    BIOS_start();) j; s. p# ^$ |4 b  c) {/ W' i! H
    LOG_INFO("<-- main:");
; S  T7 g1 a* l5 P    return (0);4 d+ |; t, V3 m$ z8 g& u/ ]
}
4 ^! ^, w* B; _9 c3 _其中lineOutmain();是启动lineOut例程! }  \. H. N# ]5 f& G" v
int lineOutmain(void)
( \2 h8 t3 u9 W. h  o3 n7 r, U, B{* c0 W( F  x. ~' S
        unsigned int i;  k7 L. N9 S; f0 Z6 i* ?2 c/ }

% f" R& I- P" e" W- g    PeripheralsSetUp();1 Y" \" w$ Y0 m
8 W/ K. b! A- U
    LOG_INFO("\r\n ============Test Start===========.\r\n");
( d( s- s; w# s1 o3 W* ^4 P    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
' `4 `$ I* a! Z6 n# V( l    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");6 K  X# B# f2 D$ \0 J

$ x8 z8 p: t$ [! }: J' q  v* ~: f5 F    for(i=0;i<229396/2;i++)
) B6 n5 k; S7 h# A$ L; K" g/ u. v        {# E8 J; \' g7 ]3 f1 v) a
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
8 q1 X1 Y8 ^( c& H. V, T        }
& h' f( Y9 N& d2 l
4 [0 A- d; Q. s; M; X    IntDSPINTCInit();$ }1 C1 V' L* P. f
* l! A2 R3 y8 E+ g/ d4 Y8 n
    I2C0IntRegister(C674X_MASK_INT6);
% k8 \1 P0 i/ `0 `( `
0 ]0 x+ T6 _5 ^% {3 k+ W) q    IntEnable(C674X_MASK_INT4);, X4 }$ X1 _! B* @, F
    IntEnable(C674X_MASK_INT5);
1 ?- W. k  O! v, k    IntEnable(C674X_MASK_INT6);/ v" E) E; m0 w
+ o. q- j( J$ p0 Y0 {
    IntGlobalEnable();
, e# \/ Q; g7 u' P% l
4 H7 a' _5 I; M3 p7 |3 C3 `6 \    AIC31Init();$ z- |/ b, D1 ^" w* G
    ToneLoopInit();
: @# L" T5 V5 K. q3 C' r0 A    Start playing the tone looply
$ y3 Y7 r% T2 e- q/ @% b9 t    ToneLoopStart();  d" X! R  W( o6 \, U
% m# ?3 E& L8 V  l( q9 J
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);
* c+ P2 W9 P4 P' w8 _4 ?0 a; W1 L  `
}
9 f. m9 i- Q* B) S  ]8 `) P: Z
% X  D. F3 k9 u( V1 X从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
% H0 L7 v! j4 k& O% ]
' l+ f. o* P0 A4 k5 k8 n( W. j& _4 s. O1 E. Q  ]; C$ c
1 U5 _8 d- {7 H

, {& {2 R" q+ x4 J& ^8 w" ?# h* l$ R9 J" S  H6 [

* _+ L4 e5 o' c9 H. [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断
5 I+ t  Z2 }* b' L; J/ G/ m. J( Q9 X8 J" J, v+ f9 N
在 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-6-15 11:08 , Processed in 0.045099 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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