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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
#
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。, G# w1 j$ v# y5 Q
目标:AUDIO_LINE_OUT播放声音。ad采集声音。& V, O2 e, W  M8 a
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
* z# @: n4 \; ]# n: o* i详细程序如下:- J$ p+ M! o9 p: L) Y& R
DSP侧 main_dsp.c  `- K6 w  s- N' C' T  i
extern int lineOutmain(void);" a6 l  Z" o+ u4 u2 \
Int main(Int argc, Char* argv[]) {
7 v# G' |% {/ Q% s# ]% P    LOG_INIT();
; W8 c2 T( h5 i' P    Error_Block eb;
' N6 x2 r! q2 n6 h1 o    Task_Params taskParams;) h6 W( x# w8 U- s& d
' U5 f$ ^+ i7 [9 ?1 X2 u
    LOG_INFO("--> main:");+ s% O5 |3 m0 G
$ N, ~9 B9 r/ v3 M  t# Y
    Error_init(&eb);
, X/ i1 {: D1 }) P2 Y% l3 O/ Q2 d9 Q( h
    Task_Params_init(&taskParams);
: Q4 T& y0 z: k# b7 E    taskParams.instance->name = "message_loop_fun";
3 n; f/ M3 k7 K0 B" l5 s2 G- g    taskParams.arg0 = (UArg)argc;
; Z2 Y: B; Q1 z7 }    taskParams.arg1 = (UArg)argv;; T" `9 l' s& j9 d
    taskParams.stackSize = 0x1000;* {1 B- P, t2 D3 N1 t, `# p
    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */3 w+ x# ]+ s0 K) g7 Q

$ J) L/ ?! Y5 ]% Z! `3 K  q. J    if (Error_check(&eb)) 9 e+ L  B9 u/ \; b, m. R
        LOG_FATAL("failed to create application startup thread");
5 h: Q0 V$ [* [9 N, M7 A6 T       
% V% D, {% z: f3 V' `3 }    lineOutmain();
+ f' w; T) C4 w+ ?! L  x( J  _    BIOS_start();
( Q/ C9 [) l2 U! @' D    LOG_INFO("<-- main:");
* {/ \, p  m! Y2 F, x$ x    return (0);
( I4 ^# a' e9 A" U}
6 B& q) _7 b/ Z: K其中lineOutmain();是启动lineOut例程/ ~6 d  ~& |$ P. y% v% d  a
int lineOutmain(void)
" z$ z+ z1 m2 C5 q! Z{
- U  [( z) o  M. D% f        unsigned int i;! c1 R5 ~0 x/ b% y4 n+ \

1 J* W. Y8 G( H( p8 V    PeripheralsSetUp();
* U/ U* L3 b: e% ?$ H
! }& U& q* P  q! u    LOG_INFO("\r\n ============Test Start===========.\r\n");
' A5 a/ h' w7 S4 K8 h* i9 O    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");% ]* ~; N5 J! q: U) Y
    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");
+ c9 u: v5 y4 G, M% c7 V& ^% l
" l+ N2 G# e" i0 F0 p  s    for(i=0;i<229396/2;i++)* q  i: [6 M$ J  @
        {
7 g8 o. s- t) y: B1 d& l/ x' m                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
9 O0 X$ S/ S( S. n) _5 Y8 X1 U4 c$ r        }
9 a' F6 M. q* `1 `  w6 ~) j) z; ?& B" C7 x0 Y
    IntDSPINTCInit();
  ~6 _$ n. v& l
( ?9 c% c& }/ ?3 I2 k    I2C0IntRegister(C674X_MASK_INT6);! [: _# H" T4 j; b2 d
. Q" q5 a, u2 }' o8 y6 f
    IntEnable(C674X_MASK_INT4);1 y2 t2 e  r3 C  T9 D% [
    IntEnable(C674X_MASK_INT5);  ^. B# N. a! p- U9 k
    IntEnable(C674X_MASK_INT6);& c; P- x4 ?3 f; I: s% Q3 l" R
' @. f* p+ ?% c# k) f
    IntGlobalEnable();
# L! x6 A( j. ]  H! P5 E5 {8 C/ \* {2 T/ n
    AIC31Init();* B' b* ?7 ?1 K& _
    ToneLoopInit();
7 |  _6 |" {2 `' R# y# z, D    Start playing the tone looply7 w& p$ c# G1 E' E! }/ @
    ToneLoopStart();
3 \9 u  ], d" G+ O7 v! w9 }; k9 _
; n; N7 X! N) Y* A    LOG_INFO("\r\n ============Test End===========.\r\n", -1);  ?1 q' j3 E2 J5 I) Y* W% a
: _% @+ p* h. @
}8 V( v. v* f1 R/ n/ _/ C! [0 e
5 E, G" Q- Q" |, h" y) H; j" m
从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。/ ~+ k+ e; z' R4 Y  @
: o6 t6 |3 U; T* g

& E2 Z9 i) u0 h  F# }. w7 I" w3 Z+ w) D5 ]$ S* f% D
+ f& [3 O4 @0 v5 d0 b

$ c& ], U/ x! S; A9 n" F; p* M4 ^( g3 `4 U& x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
15#
 楼主| 发表于 2015-3-20 08:31:26 | 只看该作者
今天看了configureAudio()源码,正如Lewis所说就初始化PIMMUX了.
: A/ e. Y# d! q5 s% ~" T+ yVoid main(Void)
7 `% j, M( W. l6 H) e& b{% @7 h6 p/ Z& o8 C
    Log_info0("\r\nAudio Sample Main\n");
; C7 S  s' |% C2 B/ o" h( _
' d$ g. D& Z# X+ u& J: S    /* 使能mcasp引脚的pinmux    */
8 M3 _2 ]; O, O8 n2 V    configureAudio();
$ p  I! N- r) ?$ n7 Z    BIOS_start();9 d6 @& z+ d# P! q0 W8 h2 D
    return;# V0 z+ e/ k3 m1 y# i; P
}- v6 l0 d! Q4 m: l& G: X
但测试中的main就调用了configureAudio(); 就能换回播放了音频了。Audio_echo_Task()这个函数谁在调用呢?
回复 支持 反对

使用道具 举报

0

主题

184

帖子

1137

积分

QQ游客

积分
1137
14#
发表于 2015-3-19 00:11:18 | 只看该作者
(1)configureAudio()函数的源码要到biospsp安装目录下找,在biospsp_03_00_01_00\platforms\evm6748\src\audio_evmInit.c下,其实就是初始化了PIMMUX.
( M. o: Z$ O" P0 |5 T(2)反复播放是在audioSample_io.c 的Void Audio_echo_Task()函数实现GIO_reclaim接收数据GIO_issue发送,你想要它播不播放数据那就完全由你控制了。, O2 ^/ Y6 V3 X# Q
(3)至于你要释放资源,使用biospsp只需调用GIO_delete注销驱动就可以。
回复 支持 反对

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
13#
 楼主| 发表于 2015-3-18 23:16:30 | 只看该作者
configureAudio() 的实现在哪里? 和io.c 中函数的调用关系是什么?
回复 支持 反对

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
12#
 楼主| 发表于 2015-3-17 08:33:16 | 只看该作者
当前SYSBIOS的例程,关于line 的只有audio—line-in ,经测试可以支持环回播放,有两个问题请教1)Void main(Void)/ o& V# W) U% A5 u* R
{
/ z" C9 ]" E7 {) ~3 U2 d    Log_info0("\r\nAudio Sample Main\n");; L- `# s* _; f* U$ _5 A
% T3 l# Z/ g2 a' `8 z6 ^: q
    /* 使能mcasp引脚的pinmux    */- Z( g! N. I' N! [0 i- i
    configureAudio();4 H8 i3 i( u& k% Q: E
  2 W( G( v7 N/ Z3 q- p9 o
    BIOS_start();
% i/ ?" I0 K: |8 k0 l, F$ f* Z
$ w9 `8 t; u: F0 d    return;
4 ]% z# u4 W/ ]4 i}
' ~. i) s/ J9 Q" \* ~8 |函数configureAudio()看不到实现,不知道调用了什么?   2)缺少一个资源释放的函数,使其能反复的播放停止。
回复 支持 反对

使用道具 举报

14

主题

102

帖子

821

积分

创龙

Rank: 8Rank: 8

积分
821
11#
发表于 2015-3-16 23:42:34 | 只看该作者
刚刚查了用户手册,是有一个LINE->LINT OUT的SYSBIOS例程的,请去看看
回复 支持 反对

使用道具 举报

15

主题

1357

帖子

4579

积分

创龙

Rank: 8Rank: 8

积分
4579
10#
发表于 2015-3-9 21:54:32 | 只看该作者
2532609929 发表于 2015-3-9 10:42
& l9 O7 d; B* p, t6 D3 k7 }; T目前没有SYSBIOS下的音频驱动,不过移植过去不难。我们公司很快就推出StarterWare程序移植到SYSBIOS的视频 ...
5 H. t& {+ b* ?/ j6 t: ^
有音频驱动的
回复 支持 反对

使用道具 举报

96

主题

129

帖子

447

积分

禁止发言

积分
447
9#
发表于 2015-3-9 11:36:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

14

主题

102

帖子

821

积分

创龙

Rank: 8Rank: 8

积分
821
8#
发表于 2015-3-9 10:42:44 | 只看该作者
目前没有SYSBIOS下的音频驱动,不过移植过去不难。我们公司很快就推出StarterWare程序移植到SYSBIOS的视频教程,敬请留意。

点评

有音频驱动的  详情 回复 发表于 2015-3-9 21:54
回复 支持 反对

使用道具 举报

14

主题

102

帖子

821

积分

创龙

Rank: 8Rank: 8

积分
821
7#
发表于 2015-3-9 10:42:42 | 只看该作者
目前没有SYSBIOS下的音频驱动,不过移植过去不难。我们公司很快就推出StarterWare程序移植到SYSBIOS的视频教程,敬请留意。
回复 支持 反对

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
6#
 楼主| 发表于 2015-3-9 08:28:55 | 只看该作者
谢谢楼上提供的信息,我现在很想知道,tl的光盘中是否有这样,在用 SYSBIOS 调用line out的demo。或者能否为我提供一个这样的简单demo(能用,不冲突就行)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-5-2 12:20 , Processed in 0.043084 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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