嵌入式Linux驱动
肥仔不肥
不会编程的程序猿
展开
-
Linux内核体系架构
一、操作系统介绍一个完整的操作系统包括四个部分:硬件系统,操作系统内核,操作系统服务,用户应用程序。用户应用程序通过操作系统服务调用操作系统内核提供的接口函数,内核操作硬件。 二、操作系统内核介绍内核包含五个模块:文件系统,进程调度,进程间通信,内存管理,网络接口。1)文件系统:支持对外部设备的驱动和存储;2)进程调度:控制进程对CPU资原创 2014-03-26 23:20:06 · 767 阅读 · 0 评论 -
【嵌入式Linux驱动开发】一、简介
1. 分类(1)字符设备驱动(占驱动的绝大部分)像字节流一样存储的设备(如同文件),对它的读写是以字节为单位通常至少需要实现open、close、read和write等系统调用应用程序可以通过/dev下的文件系统结点来访问字符设备只能顺序访问的数据通道,不能前后移动访问指针(2)块设备驱动块设备上的数据以块的形式存储块设备驱动程序向用户层提供的接口与字符设备一样原创 2014-04-01 21:37:57 · 856 阅读 · 0 评论 -
【嵌入式Linux驱动开发】二、模块
1. 内核模块的程序结构1)module_init() ——模块加载函数(必须)通过insmod或modprobe命令加载内核模块时,模块的加载函数会自动被内核执行,完成模块的相关初始化工作2)module_exit() ——模块卸载函数(必须)当通过rmmod命令卸载某模块时,模块的卸载函数会自动被内核执行,完成与模块装载函数相反的功能3)MODULE_LIC原创 2014-04-01 22:18:15 · 735 阅读 · 0 评论 -
【Linux2.6内核模块编程实例指导】内核模块编程之入门(二)必备知识
模块编程属于内核编程,因此,除了对内核相关知识有所了解外,还需要了解与模块相关的知识。1.应用程序与内核模块的比较为了加深对内核模块的了解,下表给出应用程序与内核模块程序的比较。 C语言应用程序内核模块程序使用函数Libc库内核函数运行空间用户空间内核空间转载 2014-04-04 10:57:54 · 629 阅读 · 0 评论 -
【Linux2.6内核模块编程实例指导】内核模块编程之入门(一)话说模块
内核模块是Linux内核向外部提供的一个插口,其全称为动态可加载内核模块(Loadable Kernel Module,LKM),我们简称为模块。Linux内核之所以提供模块机制,是因为它本身是一个单内核(monolithic kernel)。单内核的最大优点是效率高,因为所有的内容都集成在一起,但其缺点是可扩展性和可维护性相对较差,模块机制就是为了弥补这一缺陷。一、 什么是模块模块是具有转载 2014-03-28 09:34:36 · 787 阅读 · 0 评论 -
【嵌入式Linux驱动开发】四、输入设备驱动
1. 输入设备概述像键盘、鼠标、等设备,属于输入设备原创 2014-04-22 19:29:36 · 896 阅读 · 0 评论 -
【嵌入式Linux驱动开发】三、字符设备驱动(二)
1. open函数int open(struct inode, );原创 2014-04-08 22:33:23 · 951 阅读 · 0 评论 -
【嵌入式Linux驱动开发】三、字符设备驱动(一)
基本步骤(1)确定主设备号和次设备号(2)实现字符驱动程序实现file_operations结构体;实现初始化函数,注册字符设备;实现销毁函数,释放字符设备;实现字符设备其他基本程序函数。(3)创建设备文件节点原创 2014-04-08 20:31:11 · 843 阅读 · 0 评论