Linux设备驱动12

来源:互联网 发布:linux echo用法 编辑:程序博客网 时间:2024/05/02 01:15

http://blog.csdn.net/livingpark/category/525871.aspx?PageNumber=3

  1.  Linux设备驱动
  •   设备的分类及特点

       计算机系统硬件主要由CPU、存储器和外设组成。

       驱动针对的对象是存储器和外设(包括CPU内部集成的存储器和外设),而不是针对CPU  核。Linux将存储器和外设分为3个基础大类:

     字符设备;

     块设备;

      网络设备。

字符设备不经过系统的快速缓冲,而块设备经过系统的快速缓冲。


  • Linux设备驱动与整个软硬件系统的关系

除网络设备外,字符设备与块设备都被映射到Linux文件系统的文件和目录。

 

       在嵌入式系统的设计中,LED一般直接由CPUGPIO(通用可编程的I/O口)控制。GPIO一般由两组寄存器控制,即一组控制寄存器和一组数据寄存器。

 

 

2. Linux内核的组成部分

       Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)等5个子系统组成。

       一般而言,Linux的每个进程享有4GB的内存空间,0~3GB属于用户空间,3~4GB属于内核空间。

 

3 模块的编译

       单文件:obj-m := hello.o(Makefile文件)

                     make–C /usr/src/linux-2.6.xx.x  M=$(pwd)modules

       若一个模块包括多个.c文件(如file1.cfile2.c),则应以如下方式编写Makefile

       obj-m :=modulename.o

       module-objs:= file1.o file2.o

 



原创粉丝点击