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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
楼主
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。7 d2 a& Q2 a5 g
目标:AUDIO_LINE_OUT播放声音。ad采集声音。
6 J) U% i7 k1 j6 x- n现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
! Z. |7 P$ Y+ ]. i9 {/ J% }$ h详细程序如下:, \' t; n$ C8 A$ D
DSP侧 main_dsp.c
3 k% B  B2 L# z4 Z$ O/ O0 w# oextern int lineOutmain(void);
- E% Q3 e5 k$ r" }- k  w) a+ eInt main(Int argc, Char* argv[]) {
7 d% {9 }7 }& n6 r1 H( r    LOG_INIT();
& F4 o% S; r+ g* w3 M    Error_Block eb;8 X8 v9 C0 i& T3 s+ p" S8 O; q
    Task_Params taskParams;
3 [8 v7 p; I" x, s6 N5 O% w( m8 g" X7 b/ _/ U
    LOG_INFO("--> main:");, D8 s  c- ^6 L" e

% N6 e5 L; h4 s  L7 X/ S0 y2 s    Error_init(&eb);
/ @% A, ^+ V/ u' p; d9 k
2 Y+ H, v/ u# m( X    Task_Params_init(&taskParams);! f# {7 ~! L9 u! Z- {
    taskParams.instance->name = "message_loop_fun";/ @+ z! K. p- x0 |$ W+ Z) O0 S
    taskParams.arg0 = (UArg)argc;# h" J3 h  S% c' N/ X& w2 i0 c
    taskParams.arg1 = (UArg)argv;
$ W- ], k) L# k# ?" ~6 W    taskParams.stackSize = 0x1000;% P- R* \( q- ?0 E# K
    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
" x3 j9 w8 Y. h# t
4 \: F# p$ |. S1 ?* j' R% U    if (Error_check(&eb))
( j! f& M  W5 u. h        LOG_FATAL("failed to create application startup thread");
0 y' |, ^0 D8 E; d* A       
) T! v) m+ |6 g) a& c* E0 P% M    lineOutmain();( I! w- P& K5 u
    BIOS_start();
# k7 Z9 Q5 h0 T7 m: e3 w1 E    LOG_INFO("<-- main:");
, L3 b) d! w' F- ~$ U    return (0);$ p7 g2 y9 u% m/ h" H* ]" r( J' X
}) r* Q8 N  j. @, E
其中lineOutmain();是启动lineOut例程5 l; V; [! E7 r4 `( O
int lineOutmain(void)
  b- e  E+ R% E( w/ U5 k{
4 G3 k" _0 Z0 x+ L; `        unsigned int i;
" Y  b+ d6 b% ^1 q7 T7 n* _) R5 d6 _6 e7 z3 [
    PeripheralsSetUp();. A- ?3 b; ?  k' k8 M' e

1 {1 ~2 Y+ b( D' ?( L    LOG_INFO("\r\n ============Test Start===========.\r\n");
; m* y( T% K) o+ U( }. k4 J# d    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");+ S0 I7 @2 J7 D$ Y, [
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");$ k0 t' g- d) T7 t

! `& H) e8 G& f. A) R    for(i=0;i<229396/2;i++)$ }+ O, P5 m9 V
        {
3 b3 b; T' h* {, c4 S# a1 w4 Q                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;7 p. y! C5 S  f- T# U' I
        }/ D4 L% Y. e8 j& q
" L4 Y+ i  n! y* ]$ M
    IntDSPINTCInit();
& p0 T( |5 ]5 {( e" n  }& h4 L9 ~2 c% w  Z, [9 U
    I2C0IntRegister(C674X_MASK_INT6);( u* i9 m0 y+ ]4 n& v" P) U
2 m, u  f6 q4 ]4 m6 o6 P3 ?
    IntEnable(C674X_MASK_INT4);+ j; B  Q6 Y8 U
    IntEnable(C674X_MASK_INT5);4 N! m9 C' b3 K) U
    IntEnable(C674X_MASK_INT6);
- @. N. b4 O. P3 j7 Y/ g% W/ @
% v* v& l' n: q    IntGlobalEnable();' s  h# y- r& t5 m' Z& p# \5 S
  H# x: ?  \5 f7 k& X" ~- Y3 a
    AIC31Init();
" L; O; ^% A0 v; G/ V    ToneLoopInit();
" U8 l" b7 H+ E    Start playing the tone looply
3 Z) q$ L4 I" D% t/ R6 Y    ToneLoopStart();8 `8 b1 k; Y" i* Y) D6 T
! N! W; W) u+ M
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);. N! \8 D; U; i0 L1 c
: b- |" _+ w: X5 b8 f$ a* J
}
, V! W& V+ @& `' L$ W" D8 k% k( {) N( g8 S& b1 o
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。+ w1 e/ |/ v" G" y6 C

1 Z9 K9 n0 J+ @8 `& R( I; y4 |. `3 D( O5 P* [; v7 c  @5 K' G

7 v5 P3 Z$ [9 X$ w# H% y
/ V( b8 ?, r( \- u- _2 X  C; f
* `9 @* d1 B0 @* t6 p6 ]2 R: j. g* A+ |% N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
沙发
发表于 2015-3-4 08:57:42 | 只看该作者
请观看视频教程  18-1-硬件抽象层-硬件中断
$ u& [. j0 L7 q! L4 ^
1 S+ T2 c8 }' f1 P: Y1 F在 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-8-3 04:01 , Processed in 0.043762 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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