底层驱动程序就是:利用iic总线的时序写入和读前宏清出数据,并封装成函数,按特定的结构要求组成内核模块代码(.c文件)。
应用程序就是:按特定的方式调用上面的驱动程序,完成iic设备的读写。
驱动程序与硬件相关,编写驱动程序要非常了解硬件,同时给应用层提供API函数接口,应用层可以调用这些接口去访问硬件而不必了解硬件.应用程灶伏如序是根据实际应用去编写.
比如说隐启你有一个应用是控制每天早上六点钟开灯.应用程序只负责在适当的时间做适当的事(到六厅喊点了,我要开灯了,按下按键)具体它不知道为什么按下键就能开灯,因为按下键后开灯的事情就是驱动程序完成了.
一点浅显理解,我毕竟不是搞内核的,所以可能一些东西说的不专业或不对。我们知道,要通过驱动程序才能和硬件打交道,比如视频驱动程序等;但不同品牌的硬件, *** 作会有不同,比如同样是袭团写数据 *** 作,对于不同的磁盘喊汪硬件,调用的指令可能都会有差别。
这怎么办呢?难道针对每个硬件品牌,都需要专门编写单独的驱动么?这个投入就很大,而且对于编程人员来说,也需要投入很多。
所以微软提出硬件抽象层的概念,这个层放在驱动和硬件之间。比如驱动程序要写一个数据,驱动就把这个请求给硬件抽象层,硬件抽象层在根据不同硬件,来执行相应的硬件能够执行的指令。
你在系统安装时候,安装程序会探测本机的硬件配置,并选择合适的硬件抽象层文件。
比如你在安装系统之后,cpu由1核换成双核的,则系统可能就不能启动,而需要重新安装,因为拍渗橘以前的硬件抽象层文件已经不能适合现有配置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)