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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9556|回复: 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 ^! |# Z8 M& t* `+ g' u
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
+ x" `/ D; e. t0 c6 Z% q3 d$ \现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)  C4 Z/ Q- k& g% c, e# b
详细程序如下:
9 D8 K& T7 j. A) V4 E8 X( ~DSP侧 main_dsp.c
0 r& t3 Z& D$ ~5 Y1 Lextern int lineOutmain(void);9 h/ s2 T8 w3 r% ^2 o9 p7 |
Int main(Int argc, Char* argv[]) {
  e) p* }& ]7 O3 c; f! O    LOG_INIT();. M, Y; I) O2 `
    Error_Block eb;
1 G3 ]( O3 \) R% D: z$ v    Task_Params taskParams;
3 `  i3 |  C4 t. L9 z# D* n  Z0 X
/ ^8 c$ T2 J+ q    LOG_INFO("--> main:");
1 Q( s* j) a6 @' _5 l1 s( W
* S. G# L4 b# f# o) |6 F' c    Error_init(&eb);4 o& o) L- m( A* V: m

% z8 O+ X4 L4 [1 J! u    Task_Params_init(&taskParams);
& t9 M4 W3 m/ r, q    taskParams.instance->name = "message_loop_fun";0 n! {3 L; y" |* v- O0 I% j' u
    taskParams.arg0 = (UArg)argc;
* l8 x0 K5 N3 S$ N# F/ N( B8 n2 [    taskParams.arg1 = (UArg)argv;
+ {6 t1 J8 w8 i) U2 A6 d    taskParams.stackSize = 0x1000;! U3 O( ^+ X  E5 U4 B
    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */# ]: q0 h! q" D$ G6 ~: e# R! I
( t) V, t0 ]% h5 b0 H
    if (Error_check(&eb))
4 y. ~: n) ]0 `  ]& V& N        LOG_FATAL("failed to create application startup thread");
( o+ _8 u7 o" s4 K, C5 t        & O4 M( b6 l5 T# C  ?0 o( v) Q
    lineOutmain();
+ s5 U& K3 \; C+ i$ M$ {    BIOS_start();% B. a1 F8 L" I# T3 J) v
    LOG_INFO("<-- main:");
9 C- l, V3 v0 f: @    return (0);% D1 U; X) _- ^. w8 N& ]3 m. A
}' K- E8 @/ j. W& k
其中lineOutmain();是启动lineOut例程3 F7 _7 ?# y# e2 ]% O8 c/ @
int lineOutmain(void)* I$ X- }/ c  y; u5 C! S# e  w
{
! _, t2 u% q5 ]3 }: {# M5 h" i  k% n) u$ q        unsigned int i;7 l! x- r7 o, D& M, }2 K% f
5 |  `* I2 L; R. d, c
    PeripheralsSetUp();
: {5 p' E# W9 [1 r
  B1 s# \. _& I/ X: w2 Y    LOG_INFO("\r\n ============Test Start===========.\r\n");. J8 A' n0 R# P& x5 X% z
    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");" H+ ?3 z/ r' P3 `: h6 Q
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
/ ^* l$ z" j3 Z9 }& ]; j; d
; k+ t( o2 L% ^5 g/ r7 `6 ~' s    for(i=0;i<229396/2;i++)
0 S4 C" o: d) K, d9 [" B        {7 @# m' ], b2 q
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
1 h) w1 u* R2 Y- T7 d3 I        }: A9 Y) j" |% R8 H7 E
/ l/ t$ g0 n6 P! b& S8 o
    IntDSPINTCInit();7 ~, R% k# Z# y
4 {8 b7 W( ^3 z$ U6 b$ L* w
    I2C0IntRegister(C674X_MASK_INT6);
  G" c$ U( P5 x
5 h& S$ p6 j  O6 C' ?2 _    IntEnable(C674X_MASK_INT4);
9 s0 O6 w& A% F; W2 s    IntEnable(C674X_MASK_INT5);
( w1 ^( l4 _* Y* k/ _: Z/ ^* j0 d. Z& f    IntEnable(C674X_MASK_INT6);- W" k2 H8 b6 p! s8 K
) I) K1 [/ |1 C2 J
    IntGlobalEnable();: o' d! |( G" E5 n& F; ?/ n( r

. V. P0 [& t6 i    AIC31Init();# u/ s- ?. C( K! c/ c
    ToneLoopInit();
( J6 E- h/ L7 L% c    Start playing the tone looply
5 \+ h! A% b  s& P    ToneLoopStart();
: M) w  [* f! w
1 t' A+ w6 C) Y. j, v    LOG_INFO("\r\n ============Test End===========.\r\n", -1);+ h3 {) r7 ]3 C% p% E
+ t( \( s5 ]+ ^# P/ [2 q
}  G: C7 |! ^, Y7 f6 H' U1 w) l
5 e, S  T4 [0 t- K: `
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
% a# e( _7 @3 B9 q8 p4 E; \% k. c0 p  q" O* |

- Z5 l" Q8 a: V& U7 Y$ l
& }, _- S" }2 j% [  F( d) c, f
5 T) l/ y' e9 `9 A' j' B
2 \' C1 ?% v, ]/ F
# _+ ?4 p- g1 d# h7 E, n( y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断2 ?% m, R4 `( ~& D7 n4 m0 f
: C* Z# ?) E4 M" p: x5 u8 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, 2024-5-2 09:14 , Processed in 0.041793 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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