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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
跳转到指定楼层
#
发表于 2015-3-3 08:31:16 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
操作步骤:将StarterWare\Application\AUDIO_LINE_OUT,合入 OMAPL138基于SYSLINK的双核AD采集处理例程。0 ~+ s; D2 H" R
目标:AUDIO_LINE_OUT播放声音。ad采集声音。  k2 D! F& L8 P
现象:两者单独运行都可以完成各自的功能,将两者整合后,只要启动AUDIO_LINE_OUT,AD的数据就无法上传。(是不是两者资源有冲突?)
+ Y" ^7 z3 F/ h/ Q5 {详细程序如下:
6 N- z; H  w6 v0 M' kDSP侧 main_dsp.c6 d# M# U4 f3 V  s
extern int lineOutmain(void);
6 B1 E" l, n! Z% E, KInt main(Int argc, Char* argv[]) {
2 s8 {) K1 s  C: [    LOG_INIT();
+ ^; Z2 o; i& \    Error_Block eb;
; i$ w7 M7 o2 M    Task_Params taskParams;& W( [: M5 z0 g/ Y$ h% u

& q* Y0 T9 O4 M( }. L& z. O    LOG_INFO("--> main:");& M  s/ g( N. j. D8 e$ T3 f4 H7 R7 K
/ H* h% e% R0 n! Z: ~
    Error_init(&eb);
& \- Q8 O  `0 _: @" U* }
) j: e7 F3 C2 O. j, t    Task_Params_init(&taskParams);0 o1 g- a( u5 p! ~* X
    taskParams.instance->name = "message_loop_fun";8 ?! \7 P8 w% p* W
    taskParams.arg0 = (UArg)argc;
! M$ a& P  u) F( D3 e    taskParams.arg1 = (UArg)argv;
/ B6 z3 u  a* c& W# m, [- A* t    taskParams.stackSize = 0x1000;
5 q" H! C4 U9 N: X3 v7 C( R    Task_create(message_loop_fun, &taskParams, &eb); /* 鍚姩 message 绾跨▼ */
  C0 _, M% b* I4 U' a4 |
( O$ ?3 P7 M5 \) W6 {" }    if (Error_check(&eb))
, h9 B4 R1 Y/ E3 c5 B3 ^" J! ]        LOG_FATAL("failed to create application startup thread");
/ X; K% {8 Y; ~        - L  l/ f0 t* s2 G5 i3 V
    lineOutmain();
2 q5 E3 Z4 [  y) j    BIOS_start();
$ ?  \0 f# v7 j8 a2 y    LOG_INFO("<-- main:");5 [2 ~0 `2 ?' w5 @- y
    return (0);
- X& j2 }! E+ G0 [! I( c3 [( {}; u% y( d$ ?1 V( P
其中lineOutmain();是启动lineOut例程1 Y& W% |! U! C
int lineOutmain(void)( x4 F) i8 u5 m+ B. w
{! G; ~# E; Q5 h7 I; w, n" |
        unsigned int i;% I4 o$ }8 u) C( t% D; K

/ s% H, i5 W. z. c$ D3 U, h0 g    PeripheralsSetUp();
- z6 |4 p; @: A3 V+ b* K' |; r: `# m# h
    LOG_INFO("\r\n ============Test Start===========.\r\n");
) Z5 {7 O" X, T& K    LOG_INFO("Welcome to StarterWare Audio_Play Demo application.\r\n\r\n");
6 r  c' i) s) M% f9 H# t) q. `0 H    LOG_INFO("Please insert microphone to the 'LINE OUT' port of TL6748 EVM.\r\n\r\n");5 F& T) {  ]4 L( I# v1 ^$ P8 F
5 w% G, I. _! |( r4 ?6 K
    for(i=0;i<229396/2;i++)
) B) C7 C* i3 I        {3 n) @! @8 c" F+ I1 v( N
                toneRaw = (toneRaw1[i*2]) | toneRaw1[i*2+1]<<8;
+ c* w3 c; L1 O$ e& w& v        }8 K" P( e5 e! a" R- \2 P( }# q/ Y! N
1 `& L* C- u- e2 i- E7 r
    IntDSPINTCInit();8 _& \+ r$ E, ~1 d! B
0 o" y* T: R3 K$ ^1 s& l( R: i
    I2C0IntRegister(C674X_MASK_INT6);+ C: k* S2 ]9 I2 ]3 {& W/ e8 L

' m( U  a' j' H+ j/ l, R9 I    IntEnable(C674X_MASK_INT4);
1 O1 R  ]4 i, G5 @& ]3 H5 ]    IntEnable(C674X_MASK_INT5);
% W8 p( `: Q) a! ], k/ l    IntEnable(C674X_MASK_INT6);* J* _2 W' d/ B1 _! n& \
6 U6 P  z1 p$ c& u9 y  T  g3 x
    IntGlobalEnable();
# l. K* b5 n2 Z- u- K0 b+ [& N& U) ]; v! |8 y; y2 K
    AIC31Init();: G4 m8 K3 @* q( G( O
    ToneLoopInit();
4 L4 a; H- g' S    Start playing the tone looply
4 u; \) Z7 e( s: v  Z! P    ToneLoopStart();6 Q# Y) ^9 |8 g* l% |% v6 Z: b( J# C
5 B/ T8 `$ F% @7 t
    LOG_INFO("\r\n ============Test End===========.\r\n", -1);
) C* I7 G) u2 j3 S) V) n& X& R. c2 L
' P0 p& ?- u2 {9 V4 r) m}9 d2 h, X3 F  c( c; k) O- X

: z* Q# ^, y# C; w从定位结果来看,只要lineOutmain 运行了 IntDSPINTCInit(); AD就不再有数据发到ARM侧。请大家帮忙看看,两者是否存在资源冲突问题。谢谢。
& b9 z; i7 z) `7 Q4 p* r0 Z. h6 J5 S: M- Z$ I* S
! c' B2 {9 d/ i  D6 f, |9 C6 d
; I8 B* S( U5 C6 Y' k; e( m

4 D/ O- `6 \4 b. k1 I; F; I! P1 [0 k) `6 ~6 y5 `3 Z
- D1 H$ f1 U/ V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

2

主题

8

帖子

52

积分

注册会员

Rank: 2

积分
52
15#
 楼主| 发表于 2015-3-20 08:31:26 | 只看该作者
今天看了configureAudio()源码,正如Lewis所说就初始化PIMMUX了.
" q& D5 r$ B: f1 ]* L6 b# `4 e4 f- ]Void main(Void)
) o( B& [) w: f+ q{6 Y  Q( F( K- ^1 L% O
    Log_info0("\r\nAudio Sample Main\n");
" A, o/ ]" \$ O% A: |. A* y8 |* j+ |; k7 {
    /* 使能mcasp引脚的pinmux    */: b6 C$ W& K; z# h% I* C5 e" n  ]+ Z
    configureAudio();3 ^2 w6 ]. ]* U1 o( c
    BIOS_start();
8 c  }7 A# y9 T  Z6 k# f    return;
# p9 {" T& J; E; F- u  K% k) a}8 Y! p* P$ y, w. q: a
但测试中的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.
/ T' j- K, k! h- h5 s(2)反复播放是在audioSample_io.c 的Void Audio_echo_Task()函数实现GIO_reclaim接收数据GIO_issue发送,你想要它播不播放数据那就完全由你控制了。1 D/ p* s0 |" ~* @
(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)9 K, w8 K$ O, T# g
{$ w4 `9 L% C+ T: m2 W
    Log_info0("\r\nAudio Sample Main\n");
" A' ~# J) D5 ~- Y+ h% C6 Y5 n8 Z. C8 O
    /* 使能mcasp引脚的pinmux    */
$ R! P; g8 x' u9 m( |    configureAudio();1 S5 ]4 h" v9 L
  
: y- x& Z0 y& H( Z    BIOS_start();6 _1 I0 ?' q$ `" O6 [6 m
( B1 s- L7 t( z) p  E
    return;/ Q/ E# @) m/ k# V/ ^3 Z( O
}  P* u1 J4 R1 }
函数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
$ T5 i; \' _' _9 Q' A目前没有SYSBIOS下的音频驱动,不过移植过去不难。我们公司很快就推出StarterWare程序移植到SYSBIOS的视频 ...

+ e% D9 v' j% c: X, u) \! P$ m0 I有音频驱动的
回复 支持 反对

使用道具 举报

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, 2025-7-12 10:24 , Processed in 0.044849 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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