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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。9 k3 I: f& L6 ?8 x' [( Q
目标:AUDIO_LINE_OUT播放声音。ad采集声音。, w3 L2 o( |3 D0 G
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?). v2 U* L/ `7 c) f9 B; d
详细程序如下:) a7 S6 A  E) m6 `3 H8 n3 K
DSP侧 main_dsp.c
% k( R9 s* D2 n& R5 vextern int lineOutmain(void);
& y6 {( k8 \: e5 N3 RInt main(Int argc, Char* argv[]) {/ ^" f$ Q' [( O# k; l9 T: G; S
    LOG_INIT();( |& R) N: V" ?9 p: z
    Error_Block eb;
* ^+ |0 {. n0 u* b$ V# \9 }% L3 h3 \    Task_Params taskParams;& ^! v3 F, H. i3 w) r
$ S# b  [# ?. |, I2 n2 P
    LOG_INFO("--> main:");7 Q' s6 I# U; z$ n0 `' {0 M* y
2 z) O# n, {+ z4 ~
    Error_init(&eb);
' [0 ?" [) U0 D" ?$ `- Z, F" W# Z7 k) T2 `& T0 Q8 P" q, _
    Task_Params_init(&taskParams);/ ?' l1 H6 H* a- u: E9 m
    taskParams.instance->name = "message_loop_fun";! Z* ~4 Q5 S5 z2 ]. C
    taskParams.arg0 = (UArg)argc;
# J! G+ U  e9 i! N: B! Z    taskParams.arg1 = (UArg)argv;
3 f0 }5 q5 u% T    taskParams.stackSize = 0x1000;6 F, e+ u! K0 ~1 R  L$ C9 o) |) B
    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
" q) A/ n6 P( D3 Y( W, u7 c# J( [
    if (Error_check(&eb)) 7 U0 _+ k4 v  v" k# `7 x
        LOG_FATAL("failed to create application startup thread");
; H5 s$ z4 `1 z+ M% W4 S       
/ y, ^& o6 P% ?; }% X    lineOutmain();
) @6 ?3 m- x) b' O/ O    BIOS_start();, Y. ~2 P; J8 y( T+ s: q5 S8 d
    LOG_INFO("<-- main:");
9 k2 O/ _! q, `. }* [    return (0);. }! Z6 m3 M( t1 D, N& \
}0 J, Q5 o: u5 `* l  k; f# {: Q
其中lineOutmain();是启动lineOut例程+ F) e) i2 O7 ]7 b2 O3 s4 F# G
int lineOutmain(void)
# A2 @' I. w% G2 j6 [4 s{' i! \. w/ ~: ?  w6 X7 O; J5 z
        unsigned int i;+ s/ U1 ?; W! _2 ~/ a
. M9 `# N7 H* Q( a2 ^6 E7 g- G$ A
    PeripheralsSetUp();
5 I% a% Q: V" \/ o
+ c( u% y6 S1 \    LOG_INFO("\r\n ============Test Start===========.\r\n");: {- o' u2 d) A
    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");  f/ L6 [3 n# U$ p$ C& X7 m
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");' q" U# b5 c) w/ |. k1 S9 h
7 V& M* b# A6 \
    for(i=0;i<229396/2;i++)- D, |+ E- v9 O, ]" ^5 e, K2 ^" q
        {0 n6 N% Q$ ~9 u8 o2 \6 \8 _
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;( h& h" @: A" L' N/ s+ N& n
        }, @! G  w: F9 c) H; N# s3 g1 G

# C3 K1 t6 f7 k/ p+ E" ?, |5 q    IntDSPINTCInit();
( ]; P9 D8 R! q7 m1 [! }& v. |5 h; B7 a  o; G% Y5 n- M/ e; e
    I2C0IntRegister(C674X_MASK_INT6);% q! f) Q0 j; e9 \3 f4 f/ y: Y
; s2 T% {) [  B' b# c
    IntEnable(C674X_MASK_INT4);6 I  T  o$ D" q" @' k
    IntEnable(C674X_MASK_INT5);
" M* j8 F, V. C+ ~    IntEnable(C674X_MASK_INT6);0 z6 S/ c7 j/ o: I: d

0 o' x# z% h& p! T8 {( F    IntGlobalEnable();# ]5 T) `/ q3 p  d( I! w8 s
' a- z; \4 K3 @1 }
    AIC31Init();
, ?: N( c: ~8 N+ N. z    ToneLoopInit();
# N" X* ^* \; |, _. i+ Z: f    Start playing the tone looply" R3 J- N* w% C" g4 t
    ToneLoopStart();0 j+ [. Z' l" _* i
2 ?6 c" j# `$ K1 g9 A% g+ W9 }$ ?
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);
8 y$ k- _( j% a  W4 u
4 j; p+ }0 b: K4 d( f( m}
( [7 F' z, n+ t$ x
' R! V' q. i* ~7 Y2 J" e从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
, J# N! v8 z: v9 i4 n, f) K0 m
* ]9 K# e# n+ E. q( ~, J- ^1 Z( u; I+ z4 U2 B* d& q1 ?

/ v! V9 O; r! [  ]: h# Z4 t
( @5 F! }9 ?! I2 z  T( c% n9 _
5 n8 `2 ]/ c4 Y2 e$ t# S' T  R4 K5 x. g0 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断, v0 ^' h$ V9 a" h

5 W+ M' W, m7 b9 A# ^在 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, 2026-1-10 08:30 , Processed in 0.049700 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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