
tiny6410驱动
安卓彭
前阿里高级Android工程师,专注Android开发近10年,擅长Framework和App开发。目前主要从事车载Framework开发。
展开
-
led驱动(一)
这是最简单的led驱动程序,通过这个程序可以学习基本字符设备原创 2014-11-25 15:41:21 · 459 阅读 · 0 评论 -
tiny6410按键驱动(三)---中断发
驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 20:36:00 · 395 阅读 · 0 评论 -
tiny6410按键驱动总结
写了7个版本的按键驱动: 1.查询法:在应用程序的while循环里不停的调用read函数读取按键值,太耗费CPU资源了。 2.中断发:同样是在一个while循环里不停的调用read函数读按键值,但是这个程序里用了个等待队列,没有按键按下时,调用read函数进程会休眠。当有按键按下时,在中断服务程序里会唤醒休眠的进程,从而读取到按键值。相对于查询法,耗费的CPU资源少了很原创 2014-12-24 21:23:00 · 511 阅读 · 0 评论 -
tiny6410按键驱动(五)---同步互斥阻塞
驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 20:55:25 · 419 阅读 · 0 评论 -
tiny6410按键驱动(二)---查询法
废话少说,直接贴代码吧:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #inc原创 2014-12-24 20:32:11 · 376 阅读 · 0 评论 -
tiny6410按键驱动(六)---异步通知
驱动代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 21:00:02 · 439 阅读 · 0 评论 -
tiny6410按键驱动(一)---驱动框架
看了韦东山老师的视频后,自己动手写了几个驱动。这些驱动都是照着韦东山老师程序的框架写的,但绝非复制粘贴。之前我看了视频,再看看代码,感觉蛮简单的,以为自己会了。但是当我自己写的时候才发现,经常出现各种错误。我用的开发板是tiny6410,韦老师用的是2440。我板子上用的内核是linux-2.6.38,韦老师用的是linux-2.6.22.6,所以有些内核函数有些区别。还有一个奇葩的问题是我在开发原创 2014-12-24 20:28:20 · 537 阅读 · 0 评论 -
tiny6410按键驱动(七)---定时器延时消抖
驱动程序如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include原创 2014-12-24 21:19:03 · 558 阅读 · 0 评论 -
tiny6410按键驱动(四)---poll机制
代码如下:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #原创 2014-12-24 20:52:17 · 501 阅读 · 0 评论 -
Linux设备驱动总的并发控制
并发和竞态广泛存在,中断屏蔽,原子操作,自旋锁和信号量都是解决并发问题的机制。中断屏蔽很少单独被使用,原子操作只能针对整数进行,因此自旋锁和信号量应用最为广泛。 自旋锁会导致死循环,锁定期间不允许阻塞。驱动工程师应谨慎使用自旋锁,而且在使用中还要特别注意如下几个问题: 1.自旋锁实际上是忙等锁,当锁不可用时,CPU 一直循环执行“测试并设置”该锁直到可用而取得该锁, C原创 2014-12-04 08:56:04 · 422 阅读 · 0 评论 -
linux杂项设备驱动框架
Linux里面的misc杂项设备是主设备号为10的驱动设备,它的注册跟使用比较的简单,所以比较适用于功能简单的设备。它有自己的设备结构体: struct miscdevice { int minor; const char *name; //在/dev/下创建的节点的名字 con原创 2014-12-17 20:00:09 · 530 阅读 · 0 评论 -
字符设备驱动实例
/*本程序通过创建量数组来模拟一个字符设备*//*驱动程序如下*/#include #include #include #include #include int dev1_registers[5];int dev2_registers[5];struct cdev cdev; dev_t devno;/*文件打开函数*/in原创 2014-11-25 16:32:04 · 494 阅读 · 0 评论 -
linux下进程间通信
//代码singal.c#include#includevoid sig_deal(){ static int cnt=0; printf("receive singal SIGUSR1:%d times",++cnt);}int main(int argc,char **argv){ signal(SIGUSR1,sig_dea原创 2014-11-27 15:49:55 · 341 阅读 · 0 评论 -
解决6410执行rmmod出错的办法
原文地址:http://blog.youkuaiyun.com/cp1300/article/details/7994014最近看了一段时间韦东山老师的视频教程,看就了印象不深,还是动手写吧。于是就照着韦老师的驱动框架写了个小驱动,编译没问题,执行insmod命令也没问题,可就是在执行rmmod命令时老师出现错误“ Segmentation fault“ ,在/dev下的设备节点依然存在。昨晚折腾了转载 2014-12-13 15:44:13 · 1186 阅读 · 0 评论