
Embedded
sepnic
星空给予仰望者光明
展开
-
自旋锁spinlock使用总结
如果被保护的共享资源只在进程上下文和软中断上下文访问,那么当在进程上下文访问共享资源时,可能被软中断打断,从而可能进入软中断上下文来对被保护的共享资源访问,因此对于这种情况,对共享资源的访问必须使用spin_lock_bh和spin_unlock_bh来保护。当然使用spin_lock_irq和spin_unlock_irq以及spin_lock_irqsave和spin_unlock_irq转载 2013-05-23 11:36:57 · 4924 阅读 · 0 评论 -
个人使用的Linux开发环境
前些天重装了个Debian7.1 64bit的系统,搭建开发环境和安装常用的工具颇花精力,整理了下,记录如下。1/Android编译环境参考:http://blog.youkuaiyun.com/gexueyuan/article/details/7772387http://blog.youkuaiyun.com/nxh_love/article/details/8834849在编译过程中,可原创 2013-09-13 23:21:12 · 4115 阅读 · 3 评论 -
Audio Resampler Implement
前些日子无聊实现的一个Audio PCM Resampler的代码,仅仅支持采样率为44.1khz的源数据的向下转换,可转换成8khz/11.025khz/16khz/22.050khz。接口设计参考android-4.0.3_r1\system\media\audio_utils\include\audio_utils\resampler.h,因此使用方法也和Android的那套接口保持一致原创 2012-03-23 14:51:48 · 8254 阅读 · 2 评论 -
NetLink机制使用
前些日子研究如何在Android实现USB-Audio的热插拔,顺带了解了一下netlink机制。netlink在TCP/IP方面用得较多,但根据需要也可用在HDMI/USB等热插拔消息通知。前人已经对这方面有深入的剖析,这里就不累述了。一些典型的资料如下:linux的配置接口-netlink原理和设计netlink机制-实现系统调用netlink机制-总结PF_NET原创 2011-09-22 10:16:14 · 6407 阅读 · 1 评论 -
驱动模块使用I2C总线范例
在嵌入式中,I2C接口的意义非常重大,许多外围芯片控制接口都采用I2C。因此,了解在驱动模块中如何进行I2C总线通信是很有必要的。我们先看看I2C驱动代码的树形结构:.|-- Kconfig|-- Makefile|-- algos| |-- Kconfig| |-- Makefile| |-- i2c-algo-bit.c| |-- i2c-algo-pca原创 2011-02-11 12:12:00 · 7183 阅读 · 6 评论 -
驱动模块使用SPI总线范例
<br />前两天写了一个<驱动模块使用I2C总线范例>。由于SPI和I2C类似,加上有空闲时间,故参考之前写的I2C实现了这个SPI模块。代码如下,这个代码未经调试,我目前的板子没有用到SPI接口,但是总体架构应该没错的。<br />#include <linux/init.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/errno.h>#include原创 2011-02-15 18:03:00 · 2811 阅读 · 1 评论 -
音频调试的一些tips
1、声音波形分析编辑工具cooledit用cooledit产生一个正弦波声音文件,host机不断循环播放这个文件,再用音频线将host的LINE OUT口与target的mic口相连,这样target机就可以录host发过来的正弦波声音了。用正弦波进行测试可以非常明显体现录音的效果,有杂音爆音都很容易分辨出来。原创 2011-03-18 17:28:00 · 5551 阅读 · 1 评论