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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。
+ W# E* S. a* V; B- z目标:AUDIO_LINE_OUT播放声音。ad采集声音。$ l" x  d( j9 c  i2 f
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)2 U9 w- y) e" ^, D$ j
详细程序如下:2 q8 [/ L4 D) P1 M/ M" t, Z! u
DSP侧 main_dsp.c$ f0 Z6 F# [" b3 [' [+ z2 |, u
extern int lineOutmain(void);
/ Y: r6 S0 E. C* t/ w3 z  xInt main(Int argc, Char* argv[]) {1 E" S1 n) `8 d3 n3 v
    LOG_INIT();
; a) k8 _9 {) N2 d9 o    Error_Block eb;
+ d) U. P! k# L0 A    Task_Params taskParams;; H* p0 q3 D0 c# x4 w
& W$ P/ ?; c% g7 ?8 w" J
    LOG_INFO("--> main:");& [- u' @# V" v) \: ^/ }. u
* R' `6 b; V6 l+ I8 E
    Error_init(&eb);) l# A" |& e. R; n+ B$ }

3 y3 k2 k# H: _- k# V- \    Task_Params_init(&taskParams);6 p5 q) b4 Q& z5 K' v! [* F$ H
    taskParams.instance->name = "message_loop_fun";* K+ J( ]; L/ ~9 K' V1 [3 J+ \
    taskParams.arg0 = (UArg)argc;, I) W4 ?- H7 J) K# T4 ?# m: ?: E& p
    taskParams.arg1 = (UArg)argv;
8 ?$ D9 p% D; _; g% e  o) |, k    taskParams.stackSize = 0x1000;( M0 C( G  e6 S+ q1 e. G- j% \
    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
0 _0 U! h. e) `. G) c' ]+ P
2 ~! I" f) Z" H' H& v& `    if (Error_check(&eb))
7 @* [9 ]6 t0 I6 O3 x        LOG_FATAL("failed to create application startup thread");
; f4 [, u, M/ i% u' t8 z3 \        ; J# A1 P2 M8 T( x  ?7 D
    lineOutmain();- I- b/ v0 i3 L6 {
    BIOS_start();
8 a- g/ x+ k3 K# f    LOG_INFO("<-- main:");
/ t5 z( P; _5 A1 q2 a8 ]    return (0);
% h& i% g+ S& O- v, X}6 `2 B4 m- I* |; e: G
其中lineOutmain();是启动lineOut例程
& A# G( |% G- _& mint lineOutmain(void)9 d& O; r" {$ v  {% c; @
{' ~* B) \2 m, y5 e
        unsigned int i;
: s/ y7 @) @. C$ ^2 I1 F3 m  O" X1 S1 A9 D' Q3 r5 W  K
    PeripheralsSetUp();
, O( F4 R  T* A. u
5 ^# @/ x( O* P9 x* }    LOG_INFO("\r\n ============Test Start===========.\r\n");
9 K$ C, A$ E1 m+ s) |; f    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
! E& a: r9 p% n' n7 ?# |" d    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");/ L. Y/ ]8 Y: ~
: E+ G% W  @/ y9 c3 Z5 ^/ w
    for(i=0;i<229396/2;i++)
; U% D+ K5 n  X        {9 n, Q0 z; |( @$ k/ ?
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
! p1 z; B1 g( a: A& L        }
: |9 }3 J; y) H  o" V! I" D) c5 W  d* S2 A; G
    IntDSPINTCInit();
& R9 d1 y8 p- L' m# @/ f
" ?- y) s" Q5 h! \8 w; k    I2C0IntRegister(C674X_MASK_INT6);! J5 ^) T2 K$ Q* D# F6 w& b! Y2 v

, k4 x+ @% ~  C+ q$ h    IntEnable(C674X_MASK_INT4);: d# }0 Y" W! P7 C
    IntEnable(C674X_MASK_INT5);) e1 a- l' J. i# R
    IntEnable(C674X_MASK_INT6);
5 {$ c8 h- C: N( J4 {) `1 M/ w# X9 K8 H3 q( a* b
    IntGlobalEnable();) i* P. `2 x. b" N1 V

0 M+ @* t  ]6 k* e; x4 c' D    AIC31Init();9 S( B- l$ k8 }" S% a2 A
    ToneLoopInit();
2 B" P# V: y6 b; Z  }7 a+ h' o    Start playing the tone looply9 R, u1 d5 R. K
    ToneLoopStart();% M  ^" b+ b# N7 l- X  V, _5 {! E

" Y; ?9 J. A: F2 ^    LOG_INFO("\r\n ============Test End===========.\r\n", -1);( M( B& h# X+ J  v+ u

8 f) |$ i6 L$ @  K# s( i8 v}/ A9 q5 B( l+ Y
. H7 R+ @1 a" ]: c" w/ W9 t
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
+ X3 x0 P) C) W- l# e
* {! K& J* w* `6 z, `4 I! @
& @/ l  F' i1 i" }8 E* I1 C
3 F& _( g6 f9 ?; [) d
7 k% m1 O# I. R/ ]. M% p5 `+ y+ S: {  ^& V

( D: Y/ F2 e% c$ k+ j# }6 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断
2 c" O$ L; n% {$ J6 D4 Y! ?8 s" c% `% v
在 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-4-30 07:07 , Processed in 0.042877 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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