本文实现从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版相关推荐

  1. led的c语言程序,单片机C语言LED灯点亮程序完全版

    <单片机C语言LED灯点亮程序完全版>由会员分享,可在线阅读,更多相关<单片机C语言LED灯点亮程序完全版(7页珍藏版)>请在人人文库网上搜索. 1.1例子1第二个灯亮#inc ...

  2. C语言打包解包文件程序(简易版)

    //测试通过 科嵌电子 #include <stdio.h> #include <string.h> #include <stdlib.h> typedef uns ...

  3. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

  4. c语言编程 构建围墙,c语言程序设计朝盛 综合程序练习题.ppt

    c语言程序设计朝盛 综合程序练习题 综合程序练习题 综合程序练习题 大型程序设计的要求 综合程序练习题 综合程序练习题 大型程序设计题目分析: 1 打字练习 2 电子琴 3 简易画图板 4 贪吃蛇 5 ...

  5. 《C语言程序设计与实践(第2版)》——3.2 数据类型

    本节书摘来自华章出版社<C语言程序设计与实践(第2版)>一书中的第3章,第3.2节,作者:凌云等著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 3.2 数据类 ...

  6. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  7. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2.1 可变大小数组

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timo ...

  8. python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

  9. 没学c语言可以学python_先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

最新文章

  1. (chap3 数据链路) 介质型网络
  2. API---有意思的API
  3. 5.8 正则化和数据标准化
  4. Misc string test
  5. 【BZOJ3489】A simple rmq problem kd-tree
  6. 1 2014年12月电大远程网络教育计算机统考 最 新 题 库,2014年12月份电大远程网络教育计算机应用基础统考题库试卷6...
  7. android+geturl+方法,浅入浅出Android(014):HTTP GET获取文本内容
  8. ios 设备获取idfa_iOS获取设备ID总结
  9. jQuery实现笔记1-构造器
  10. Alluxio部署(local模式)
  11. 面向对象编程OOP Object oriented programing
  12. cdr添加节点快捷键_cdr怎么添加节点 在CDR X8怎么给曲线添加节点图文教程
  13. 2022爱分析・人工智能应用实践报告
  14. 种草功能在电商app源码中发挥的作用和价值
  15. 网络共享计算机权限访问,访问共享计算机的时候提示没有权限使用网络资源的解决方法...
  16. cpm,cpc,cps和cpa分别是什么意思
  17. Quantile g-computation的介绍及R实现
  18. ionic安卓打印终极解决方案,支持USB打印
  19. 我对软件应聘学生的建议
  20. 简单说说 OSChina 的技术架构

热门文章

  1. MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
  2. 利用pandas,matplotlib画饼图
  3. php程序员的情书,只有程序员才看得懂的情书
  4. 怎么清洁计算机主机内部,详细说明清理网吧中计算机主机的正确方法
  5. 判断回文数(用函数)并且输出范围a到b之间的所有回文数 c++
  6. ajax jsonp post php,※ajax的post方式注意点※及jsonp的封装
  7. 纽约poi数据集_数据福利|微软城市计算、AI for Earth
  8. python协同过滤调用包_简单的python协同过滤程序实例代码
  9. c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...
  10. 用c语言单链表编写贪吃蛇程序6,C语言链表实现贪吃蛇游戏