标签:操作系统 句柄 inux 时间 linux内核 设备驱动 十分 工作模式 设置
今天正好赶上要放五一长假了,正好把自己在这段时间看的关于驱动方面的知识做一个回顾。
驱动是操作系统的一部分,linux操作系统内核中的85%左右都是关于驱动的代码,之前也断断续续看过一段时间的驱动源码,但是都是匆匆看过,大致熟悉了以下,对其中的脉络其实掌握的不是十分清楚,这一次重新看了字符设备驱动程序,和linux内核中的异常向量(主要是中断部分),颇有感触,感觉想写一些东西梳理一下,因此在今天抽空做个总结吧。
首先字符设备驱动程序大致可以分为这几个部分,app:read、write、open;系统调用;下面是内核部分:响应应用程序的异常向量处理;驱动程序:.read、.write、.open;再往下就是硬件相关的程序。
基本的字符设备驱动程序大致就是上述的几个部分,但是到底程序是怎样的运行的。
例子:
基本字符设备驱动程序的基本框架就是这样的,是以字节的方式来进行传输的。
linux内核中的异常向量,说句实话,真鸡儿复杂,看的头大,但是不得不佩服,针对arm芯片来说的话,linux的异常向量的个数和arm芯片的型号也是有关系的,以S3C2440为例的话,因为其有7中工作模式,系统(用户)模式,中断模式、快速中断模式、未定义指令模式、数据访问中止模式、管理模式,那么自然的其内核设置也同样会设置这些跳转向量,每个向量都对应的有响应的处理函数。所谓的中断呢,就是指这里的中断模式,然后在这个中断模式中有32个中断,当然每个中断都可以是一组,或者是一个。
未完待续
标签:操作系统 句柄 inux 时间 linux内核 设备驱动 十分 工作模式 设置
原文地址:https://www.cnblogs.com/zzm1/p/10797593.html