摘要: 1.设备描述结构cdev驱动模型种类繁多,这就需要我从众多的模型中提取出他们的一些共性:a.驱动初始化a.1 分配设备描述结构a.2 初始化设备描述结构a.3 注册设备描述结构a.4 硬件初始化b.实现设备操作c.驱动注销---------------------------------------... 阅读全文
posted @ 2015-08-13 23:34 高傲的monkey 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 1.编译、安装驱动linux系统中,驱动程序通常采用内核模块的程序结构来进行编码,因此,编译、安装一个驱动程序,其实质就是编译、安装一个内核模块。将文件memdev.c makefile 放入虚拟机中,make 得到.ko文件cp .ko rootfs启动开发板 insmod *.ko2.创建设备文... 阅读全文
posted @ 2015-08-13 23:25 高傲的monkey 阅读(299) 评论(0) 推荐(0) 编辑
摘要: linux内核定时器度量时间差:时钟每隔一段时间就会产生一次中断,这是由系统的定时硬件以周期性的时间间隔产生,这个间隔由内核根据HZ来确定。每当时钟中断发生时,全局变量jiffies(unsigned long)就加1,因此jiffies(当前的时间点)记录了自linux启动后时钟中断发生的次数,驱... 阅读全文
posted @ 2015-08-13 22:24 高傲的monkey 阅读(311) 评论(0) 推荐(0) 编辑
摘要: linux内核链表:链表通常包括两个域:数据域和指针域。struct list_head{struct list_head *next,*prev;};include/linux/list.h中实现了一套精彩的链表数据结构。传统的链表指针指向下一个节点的头部。linux链表指针指向下一个指针list... 阅读全文
posted @ 2015-08-13 20:58 高傲的monkey 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 如实现一个简单的打印:printk1.cd linux-ok6410/kernel/vim printk.cvoid sys_pk(){printk("this is a new sys call");}cd arch/arm/kernel2.vim calls.S在最后面加上Call(sys_pk... 阅读全文
posted @ 2015-08-13 20:50 高傲的monkey 阅读(287) 评论(0) 推荐(0) 编辑