6416与aic23进行语言数据采集和处理的程序beta版
本文实现从aic32的line-input获得音频数据并在line-output播放,使用McBSP和EDMA来高效的传输数据,避免DSP的高负载。
数据传输:
codec与DSP通过McBSP2传输数据。EDMA配置为存储每个到达McBSP2的16比特signed语音采样数据在内存缓冲区内,之后会被处理。处理之后EDMA控制器回送数据到McBSP2进行发送。
McBSP1设置为配置/控制AIC23。AIC23从McBSP1接收串行配置参数如音量、采样率和数据格式。
可以使用乒乓数据缓冲和linked-EDMA传输来更方便高效的传输数据。单个数据缓冲来接收发送数据很不方便,因为要避免新到达数据覆盖正在进行传输的数据。乒乓数据缓冲使用两个数据缓冲,当乓缓冲正在填满时,乒缓冲肯定不会被覆盖,可以对其进行处理。可以使用接收发送各两个共四个缓冲进行乒乓传输。
在这种情况下,对于每个缓冲,EDMA控制器的配置都要有所不同。当一个缓冲填满后,EDMA控制器产生一个中断,中断处理程序/interrupt-handler必须在下一个音频采样数据到达之前为下一个缓冲重新加载配置。EDMA的linked-transfer特性可以轻松的做到这一点:每个配置都预先设置,在当前配置结束后EDMA控制器自动加载下一个配置;这样同样产生中断信号,但它仅用来通知DSP可以处理数据了。唯一的约束条件是,当前缓冲填满之前所有的音频数据必须处理结束;这段时间远远大于音频采样间隔。应用这种方法,系统更容易达到实时处理要求。
程序说明:
程序运行过程中,DSP/BIOS首先初始化,main()函数作为主进程启动。本文中,它主要实现程序初始化并打开EDMA数据传输。当main()函数运行结束后,由DSP/BIOS接管,为中断程序服务。
当一个缓冲填满后, edmaHwi()中断服务子程序/ISR被调用,其中pingOrPong 状态变量标识此缓冲是乒或乓。dmaHwi把缓冲标记标识为相对的/相反的缓冲,并调用软中断进程processBuffer 处理音频数据。
其他程序:blinkLED()当对应的开关按下时以2Hz频率闪灯,是周期为500ticks的周期进程。load()在另一个对应的开关按下时模拟20-25%的虚载荷,是周期10ms的周期进程。
6416与aic23进行语言数据采集和处理的程序beta版相关推荐
- led的c语言程序,单片机C语言LED灯点亮程序完全版
<单片机C语言LED灯点亮程序完全版>由会员分享,可在线阅读,更多相关<单片机C语言LED灯点亮程序完全版(7页珍藏版)>请在人人文库网上搜索. 1.1例子1第二个灯亮#inc ...
- C语言打包解包文件程序(简易版)
//测试通过 科嵌电子 #include <stdio.h> #include <string.h> #include <stdlib.h> typedef uns ...
- c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...
C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...
- c语言编程 构建围墙,c语言程序设计朝盛 综合程序练习题.ppt
c语言程序设计朝盛 综合程序练习题 综合程序练习题 综合程序练习题 大型程序设计的要求 综合程序练习题 综合程序练习题 大型程序设计题目分析: 1 打字练习 2 电子琴 3 简易画图板 4 贪吃蛇 5 ...
- 《C语言程序设计与实践(第2版)》——3.2 数据类型
本节书摘来自华章出版社<C语言程序设计与实践(第2版)>一书中的第3章,第3.2节,作者:凌云等著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 3.2 数据类 ...
- 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常
本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...
- 《数据结构与抽象:Java语言描述(原书第4版)》一2.2.1 可变大小数组
本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timo ...
- python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!
编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...
- 没学c语言可以学python_先学C语言还是Python?资深程序员往往是这样建议的!
编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...
最新文章
- (chap3 数据链路) 介质型网络
- API---有意思的API
- 5.8 正则化和数据标准化
- Misc string test
- 【BZOJ3489】A simple rmq problem kd-tree
- 1 2014年12月电大远程网络教育计算机统考 最 新 题 库,2014年12月份电大远程网络教育计算机应用基础统考题库试卷6...
- android+geturl+方法,浅入浅出Android(014):HTTP GET获取文本内容
- ios 设备获取idfa_iOS获取设备ID总结
- jQuery实现笔记1-构造器
- Alluxio部署(local模式)
- 面向对象编程OOP Object oriented programing
- cdr添加节点快捷键_cdr怎么添加节点 在CDR X8怎么给曲线添加节点图文教程
- 2022爱分析・人工智能应用实践报告
- 种草功能在电商app源码中发挥的作用和价值
- 网络共享计算机权限访问,访问共享计算机的时候提示没有权限使用网络资源的解决方法...
- cpm,cpc,cps和cpa分别是什么意思
- Quantile g-computation的介绍及R实现
- ionic安卓打印终极解决方案,支持USB打印
- 我对软件应聘学生的建议
- 简单说说 OSChina 的技术架构
热门文章
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
- 利用pandas,matplotlib画饼图
- php程序员的情书,只有程序员才看得懂的情书
- 怎么清洁计算机主机内部,详细说明清理网吧中计算机主机的正确方法
- 判断回文数(用函数)并且输出范围a到b之间的所有回文数 c++
- ajax jsonp post php,※ajax的post方式注意点※及jsonp的封装
- 纽约poi数据集_数据福利|微软城市计算、AI for Earth
- python协同过滤调用包_简单的python协同过滤程序实例代码
- c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...
- 用c语言单链表编写贪吃蛇程序6,C语言链表实现贪吃蛇游戏