摘要:
二。回环网卡的程序设计 /**********************************回环网卡的驱动程序**************吕晓宁********************2015.12.26************************************/#include ... 阅读全文
摘要:
一。网卡驱动架构分析 1. Linux 网络子系统 #系统调用接口层 为应用程序提供访问网络子系统的统一方法。 #协议无关层 提供通用的方法来使用传输层协议。 #协议栈的实现 实现具体的网络协议 #设备无关层 协议与设备驱动之前通信的通用接口... 阅读全文
摘要:
字符设备控制技术一。字符设备控制理论 1.作用 大部分设备除了具有《读写设备》的能力,还应该有《控制设备》的能力。比如改变 波特率 2. 应用程序接口 在用户空间中使用 Ioctl系统来控制设备,原型如下: int ioctl (int fd,unsigned long cmd... 阅读全文
摘要:
一。使用字符设备驱动程序 1. 编译/安装驱动 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此,编译/安装一个驱动程序,其实质就是编译/安装一个内核模块 2. 创建设备文件 通过字符设备文件,应用程序可以使用相应的字符设备驱动程序来控制字符设备。 创建字... 阅读全文
摘要:
驱动开发概述 1.驱动分类 1.1 常规分析法 1.1.1 字符设备 字符设备是一种按字节来访问的设备,字符驱动则负责驱动字符设备, 这样的驱动通常实现open, close, read和write 系统调用。例:串口,LED,按键。 1.1.2 块... 阅读全文
摘要:
一 。 Linux内核链表 1 . 内核链表函数 1.INIT_LIST_HEAD:创建链表 2.list_add:在链表头插入节点 3.list_add_tail:在链表尾插入节点 4.list_del:删除节点 5.list_entry:取出节点 ... 阅读全文
摘要:
一。进程管理子系统 1.进程要素 (1). 程序与进程 程序:存放在磁盘上的一系列代码和数据的可执行映像,是一个静止的实体 进程:是一个执行中的程序,他是一个动态的实体。 (2). 进程4要素 1.有一段程序供其执行。这段程序不一定是某个进程所专有,可以与其他... 阅读全文
摘要:
一。内存管理子系统 1 . 内存管理模块 功能: 虚拟地址到物理地址的映射 32位系统访问的地址一共4G: 0-3G : 应用程序 3G+896M :直接映射 , Vmollat区,永久内存映射,固定映射的线性地址 2. 地址映射管理 (1). 虚拟地址... 阅读全文
摘要:
一 。 内核模块可选信号 1 . 模块申明 (1). MODULE_LICENSE(遵守的协议) 申明该模块遵守的许可证协议,如:“GPL”、"GPL V2" (2). MODULE_AUTHOR(作者) 申请模块的作者 (3). MODULE_DESCRIP... 阅读全文
摘要:
一. 内核模块 1. 头文件 Linux/init.h 和 Linux/module.h 2. 装载内核 insmod 对应的转载函数 module_init(); 3. 卸载内核 rmmod 对应的卸载函数 module_exit();二. 编写 helloworld.c 三。编写Make... 阅读全文