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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。; S0 z9 @# H/ h0 F
目标:AUDIO_LINE_OUT播放声音。ad采集声音。5 j$ I1 t1 y* q4 O- G, u7 J
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)& {7 u" M3 J, z! c: z
详细程序如下:
$ C0 J9 f! J& P4 y7 z( RDSP侧 main_dsp.c4 ~& e! N% U9 d( n, |
extern int lineOutmain(void);
0 F* r- u/ I7 ?* Z) bInt main(Int argc, Char* argv[]) {4 I. T3 ]" [( z% `- n) x+ L2 y0 }
    LOG_INIT();4 A! q+ f& D# G
    Error_Block eb;
9 k. }! j( K1 A% ]    Task_Params taskParams;5 q3 Z/ I8 e1 v3 O8 Z( M8 e

3 @# B+ k7 v8 F$ w5 m3 i    LOG_INFO("--> main:");% Z5 {7 M: f. s; M

: t6 K+ ]5 c/ N; L9 x* T4 _    Error_init(&eb);  H7 l. l) W' V5 |4 o. [* Z
# v$ l3 F9 K# w# c6 x0 s
    Task_Params_init(&taskParams);
- T& G' P2 f1 I5 t3 q+ T    taskParams.instance->name = "message_loop_fun";
2 X$ E; T" l2 t- X, l# g& F$ C    taskParams.arg0 = (UArg)argc;
4 m; v' v+ p6 T" Y& R$ f6 `' F    taskParams.arg1 = (UArg)argv;7 B/ o6 p/ S6 d
    taskParams.stackSize = 0x1000;
; `4 Y, v7 l2 ^% ?4 L# _    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
# F; n) Y) M7 q& E* O& U. Y! p- [/ ]5 o, H1 K, f4 Y3 S3 k
    if (Error_check(&eb))
- S% O9 S! T3 Z7 f        LOG_FATAL("failed to create application startup thread"); $ Y& A, ?2 [1 T' Y- s# g( |) Q& h
       
5 \: d/ X+ V4 s/ n    lineOutmain();, J3 C: o' W, f, p+ t7 Y
    BIOS_start();
7 o. N" ]% T) b  _) q! g    LOG_INFO("<-- main:");
* k  M' C, ^: r3 V7 n    return (0);
8 h6 |6 ?+ B# r8 _}
/ K6 i/ f1 j6 s其中lineOutmain();是启动lineOut例程
2 [0 O5 U9 q$ G2 I6 }int lineOutmain(void)' L" C4 j/ e- y/ t: O
{
* B7 ^1 d" U9 J2 T7 x$ s9 F, c  e' A        unsigned int i;
& a: b' ^: f. ]$ J% D) e2 E' I1 n, d9 O( c2 W- Q
    PeripheralsSetUp();
' X* F, s* f# b# _* `4 G, H1 g6 {  z/ u; m
    LOG_INFO("\r\n ============Test Start===========.\r\n");
! s0 b: a- r2 ^0 T6 b% y    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");! I0 Y" W1 u0 E7 c" [  P  k; E
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");* H8 v' H/ D: G& b9 U

* Y' \9 i" N" B/ E% H+ R    for(i=0;i<229396/2;i++)
5 J' L; y0 f/ V% |+ ^- _- O        {2 G2 b" r( W9 r( D" t
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;$ w  T6 g2 J8 D! c
        }
$ J9 ^  D) z! |/ i/ c' f9 A
' {6 b/ O; M) w) p    IntDSPINTCInit();- {" g+ ?  A7 p, [8 H, ^
" F' l4 D+ u5 x2 `% B( V2 t: o( n
    I2C0IntRegister(C674X_MASK_INT6);$ p  u% e2 ]: d# k

3 j1 Y9 V4 B! B' B9 U: D4 X' v    IntEnable(C674X_MASK_INT4);
; v0 i3 t& \5 @( B2 k3 q5 ]    IntEnable(C674X_MASK_INT5);9 V% `+ V+ I4 m/ F6 I) s* o* j9 ~: \
    IntEnable(C674X_MASK_INT6);" ^1 x  s& {# Y" w# F( R- z
) G9 }5 J, S* `9 |
    IntGlobalEnable();0 `* T" F2 Q3 q, l& Y

1 V& P$ w. p! O. u1 f    AIC31Init();
; X" L! @8 u8 S7 Z    ToneLoopInit();
. `$ X8 U- E) ~; w. k+ m    Start playing the tone looply$ d: I' p5 y$ N2 f* u
    ToneLoopStart();; K5 v- s+ ~( d' ^! [8 X/ {8 `  U7 F
4 l- l1 w( `- L
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);  y9 W: T: r7 |

  S# \# R, r2 v( |5 A" [8 B) I& ?}8 F: b: z1 P# H- n. S
" @: Q# B* N4 V* w9 _3 Y) g4 m7 [
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。0 q. b* P1 _5 V/ d3 |* h1 l- W
  e& z0 k* k3 m" H- `6 ], U
1 U- @: }4 x5 K; x
0 M7 U& v9 ]: Y8 N$ x5 e

6 U2 U$ w* c/ T2 E9 D  v8 A7 P' O  r3 L2 l: d8 G, r; [

- |5 ?+ l& w9 e9 r0 i4 y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断
/ P7 Z4 ?5 r0 ]
4 u  h3 c! m3 a6 Z( {在 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-9-17 08:26 , Processed in 0.042588 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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