Chinaunix首页 | 论坛 | 博客
  • 博客访问: 277934
  • 博文数量: 42
  • 博客积分: 485
  • 博客等级: 下士
  • 技术积分: 482
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-26 19:33
文章分类
文章存档

2017年(1)

2016年(4)

2015年(8)

2014年(3)

2013年(4)

2012年(3)

2011年(19)

我的朋友

发布时间:2012-12-24 10:53:20

一、音频问题调试 问题描述:使用一小段音频数据,不断的重复播放,会导致声卡不再工作,从上层看就是写声卡数据的接口处阻塞住了,如果把alsa的播放模式改为非阻塞模式,则会失败返回,且系统reboot都不可用,只有重新上电才可用;从底层驱动看,出问题之后,音频数据传输的DMA没有产生中断(这个DMA通道是将内存音频数据搬移到DAI/SAIF接口的输出数据寄存器上),导致音频数据环形缓冲区满了,上层看来就是阻塞那了。 问题解决:依以上描述,可判断应该是CPU的I2S模块或者DMA模块出现了问题,且经过验证通过寄存器软复位这些模块都无法恢复正常。最后BSP支持修改了代码,在每次close音频的时候......【阅读全文】

阅读(3237) | 评论(0) | 转发(0)

发布时间:2012-12-24 10:07:13

驱动层是不可以调用标准库的,那么想要在驱动中直接写磁盘文件要怎么办?一、到底可不可行? 这里的文章,详细地追踪了系统调用的实现,并提供了一种直接访问的方法。 总结如下:      1.在系统调用open的流程中,会调用getname()函数,里面会使用get_fs()判断文件名字符串的地址,如果属于3~4G,也就是内核空间,返回错误。是用户空间的,则拷贝到内核空间。在系统调用read的流程中,会调用vfs_read(),并判断写入的文本是否来自用户空间,如果不是,返回错误,如果是,则拷贝到内核空间。在系统调用write的流程中,会调用vfs_wri......【阅读全文】

阅读(1618) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册