硬件是底层基础,是所有软件得意运行的平台.计算机的软件和硬件相互成就了对方.
计算机软件和硬件之间的悖论:软件和硬件不应该相互深透入对方的领地.也就是说,应用软件工程师需要看到
一个没有硬件的纯粹的软件世界.硬件必须透明的呈现给他.这个光荣而间距的任务就交给了驱动程序.
设备的驱动程序:按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询,中断处理,DMA通信
进行物理内存向虚拟内存的映射,最终让通信设备能收发数据.让显示设备能显示文字.让存储设备能激励文件
和数据.
在没有操作系统的情况下,可以根据硬件设备的特点自行定义接口,在有操作系统的情况下驱动的构架则由
相应的操作系统定义,驱动工程师必须按照相应的构架设计驱动,这样,驱动才能良好地整合进入操作系统当中.
简单的设备不必要存在操作系统,用单任务构架完全可以良好的支持他们的工作.一个无线循环当中对设备中
断的检测或者对设备的轮询这种系统中软件的典型构架.典型的代码如下.
int mian(1)
{
while(1)
{
if(serialInt ==1)
/*有串口中断*/
{
ProcessSerialInt();/*处理串口中断*/
serialInt = 0;
}
if(ketInt ==1)
/*由按键中断*/
{
ProcesskeyInt();/*处理串口中断*/
keyInt = 0;
}
status == CheckXXX();
switch(status)
{
...
}
...
}
}
在这样的系统当中,虽然不存在操作系统,但是设备驱动则无论如何都必须存在.一般情况下.每一种设备驱动
都会定义为一个软件模块.包含.h和.c文件.前者定义该设备驱动的数据结构并且申明外部函数.后者进行驱动
的具体实现.
其他模块这个设备的时候,只需要包含设备驱动的头文件,然后调用其中的外部函数接口.
今天的自学到这里
爱你YZ
计算机软件和硬件之间的悖论:软件和硬件不应该相互深透入对方的领地.也就是说,应用软件工程师需要看到
一个没有硬件的纯粹的软件世界.硬件必须透明的呈现给他.这个光荣而间距的任务就交给了驱动程序.
设备的驱动程序:按照硬件设备的具体工作方式,读写设备的寄存器,完成设备的轮询,中断处理,DMA通信
进行物理内存向虚拟内存的映射,最终让通信设备能收发数据.让显示设备能显示文字.让存储设备能激励文件
和数据.
在没有操作系统的情况下,可以根据硬件设备的特点自行定义接口,在有操作系统的情况下驱动的构架则由
相应的操作系统定义,驱动工程师必须按照相应的构架设计驱动,这样,驱动才能良好地整合进入操作系统当中.
简单的设备不必要存在操作系统,用单任务构架完全可以良好的支持他们的工作.一个无线循环当中对设备中
断的检测或者对设备的轮询这种系统中软件的典型构架.典型的代码如下.
int mian(1)
{
while(1)
{
if(serialInt ==1)
/*有串口中断*/
{
ProcessSerialInt();/*处理串口中断*/
serialInt = 0;
}
if(ketInt ==1)
/*由按键中断*/
{
ProcesskeyInt();/*处理串口中断*/
keyInt = 0;
}
status == CheckXXX();
switch(status)
{
...
}
...
}
}
在这样的系统当中,虽然不存在操作系统,但是设备驱动则无论如何都必须存在.一般情况下.每一种设备驱动
都会定义为一个软件模块.包含.h和.c文件.前者定义该设备驱动的数据结构并且申明外部函数.后者进行驱动
的具体实现.
其他模块这个设备的时候,只需要包含设备驱动的头文件,然后调用其中的外部函数接口.
今天的自学到这里
爱你YZ