
linux驱动实践
dndxhej
这个作者很懒,什么都没留下…
展开
-
linux驱动实践(一)--开篇
《GNU ARM汇编》系列写了不少,收获亦不小.依然还有很多可以继续往下写:一直想利用arm9的MMU写个小的os:包含简单设备模型,任务调度和内存管理的os,网络和文件系统就不要了.这个想法先放一下.另外对于uboot这样一个优秀的开源代码也想做个深入的分析,但考虑到自己的bootloader也能引导kernel,对bootloader也有了全面的理解,若今后需要搞uboot,看看uboot的代原创 2012-10-16 22:02:03 · 5594 阅读 · 0 评论 -
linux驱动实践(四)--linux下读写寄存器
arm裸机下读写寄存器很容易,各个寄存器和内存的地址是单一地址空间,他们是用相同的指令进行读写操作的.而在linux下就要复杂很多,因为linux支持多个体系架构的CPU。比如arm和x86就不一样,具体的差别我暂时也说不上来,这个涉及到CPU体系的设计。目前我只关心:linux为了支持多个硬件体系,在IO访问上做了自己的接口。可以通过IO内存和IO端口这两种方式进行IO访问。在LED的例子上给出原创 2012-12-23 23:22:01 · 21944 阅读 · 0 评论 -
linux驱动实践(二)--linux3.0.46移植和NFS根文件系统
将近两个月之前就准备开始了,但是在移植linux时候发现编译出来的Image有2.4M之大,而开发板提供的uboot最大只能烧写最大2M。所以本来准备跳过uboot的,但是如果自己不搞个好点的bootloader,我的kernel都烧不了。索性花了一个多月的时间移植了u-boot-2012.07,采用nand-spl方式启动的。可以支持tftp下载,那么我的开发流程就是用开发板自带的nor f原创 2012-12-10 21:36:44 · 6161 阅读 · 3 评论 -
linux驱动实践(五)--linux下的按键驱动之查询方式
虽然好几个月之前就对linux下的阻塞,非阻塞,select poll的实现,工作队列,tasklet等等做了较为深入的分析,但是在遇到实际的硬件驱动中,才真正去思考怎么将这些用到实际中,构建一个稳定高效的驱动。 板子上有四个按键,linux内核中有input子系统来很好的完成这个事情。先按照自己的思路一步步来,最后看下人家input子系统是如何实现的,肯定有不少值得借鉴的。原创 2013-01-01 22:26:37 · 6210 阅读 · 0 评论 -
linux驱动实践(三)--不大一般的LED驱动
看了这么多内核代码,终于要自己开始做驱动了.按照由易到难,由浅入深的顺序,就从LED开始. LED驱动可以说是hello world之后最简单的驱动模块了.如果自己写一个LED驱动那是很简单的,其实用linux内核中的leds子系统来做也是比较简单的,内核中的leds子系统是将led抽象成platform_device,并有leds_class.这样,在/sys/class/le原创 2012-12-18 17:33:54 · 12848 阅读 · 0 评论