摘要: 在上一篇中我们已经了解了字符设备驱动的原理,也了解了应用层调用内核函数的机制,但是我们每次操作设备,都必须首先通过mknod命令创建一个设备文件名,比如说我们要打开u盘,硬盘等这些设备,难道我们还要自己创建,就如同刘老师常说的一句话,这也太山寨了吧,所以我们今天我们来点比较专业的,让函数帮我们自... 阅读全文
posted @ 2015-09-12 20:09 zhangwju 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 一:字符设备驱动 在linux下面,应用层看到的一切皆为文件(名字)所有的设备都是文件,都可以调用open,read,write来操作,而在内核中每个中每个设备有唯一的对应一个设备号; APP (名字) OS (设备号) HW 下面我们写一个简单的字符设备驱动,... 阅读全文
posted @ 2015-09-12 16:15 zhangwju 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 一:内核中断 linux内核中的看门狗中断跟之前的裸板的中断差不多,在编写驱动之前,需要线把内核自带的watch dog模块裁剪掉,要不然会出现错误;在Device Drivers /Watchdog Timer Support /S3C2410 Watchdo在内核中,我们处理一个中断,必须... 阅读全文
posted @ 2015-09-12 14:59 zhangwju 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 一:led内核驱动 (1)在编写led内核驱动时,我们首先要进行内核裁剪,因为友善之臂将LED灯的驱动默认加载到内核中,所以编写模块驱动程序前就要先把原先的LED灯驱动裁剪掉; led驱动在源码里面的Device Drivers /Character devices目录下,进行完裁剪之后重新... 阅读全文
posted @ 2015-09-12 13:56 zhangwju 阅读(1124) 评论(0) 推荐(0) 编辑
摘要: 一:linux内核裁剪: 1:编译内核源码: 今天的重点内容是内核驱动的编写,在编写驱动之前首先的了解linux内核源码,linux主要是由五个子系统组成:进程调度,内存管理,文件系统,网络接口以及进程间通信;下面是解压的linux内核源码文件: 下面对linux内核里面的文件进行简单的说明: ar 阅读全文
posted @ 2015-09-12 11:27 zhangwju 阅读(3346) 评论(0) 推荐(1) 编辑
摘要: 一:进程的堆栈 内核在创建进程的时候,在创建task_struct的同时会为进程创建相应的堆栈。每个进程会有两个栈,一个用户栈,存在于用户空间,一个内核栈,存 在于内核空间。当进程在用户空间运行时,cpu堆栈指针寄存器里面的内容是用户堆栈地址,使用用户栈;当进程在内核空间时,cpu堆栈指针寄存... 阅读全文
posted @ 2015-09-12 10:18 zhangwju 阅读(5591) 评论(0) 推荐(0) 编辑