- 博客(7)
- 收藏
- 关注
转载 Linux设备驱动初探_准备Linux源码树
刚看 O'REILLY 写的《LINUX 设备驱动程序》时。作者一再强调在编写驱动程序时必须 建立内核树。所谓内核树,我的理解和网上资料说的一致就是内核源码的一种逻辑形式。那怎么建立呢?为此上网“翻云覆雨”起来而结果却是“惨败而归“。 为 此托了一天又4个小时(当然包括吃饭睡觉的时间),连个简单的 hello wrold 都没实现。(书中p22页最简单也最没用的驱动事列) 不 过功夫不负有
2016-12-30 09:46:55 343
转载 Linux设备驱动初探_多源文件Makefile
首先介绍一下__init这个标志在驱动源文件中的作用吧。内核中带“__”的函数:内核API函数具有这种名称的,通常都是一些接口的底层函数,应该谨慎使用。实质上,这里的双下划线就是要告诉程序员:谨慎调用,否则后果自负。以__init为例,__init表明该函数仅在初始化期间使用。在模块被装载之后,模块装载器就会将初始化函数扔掉,这样可以将函数占用的内存释放出来,已做它用。注意,不要在结束
2016-12-30 09:35:55 1126
转载 Linux字符驱动-scull
源代码调试环境:Ubuntu14.04内核版本:3.13.0-32代码参考《LINUX设备驱动程序》第三章 字符设备驱动程序功能:向字符设备写入字符串;从字符设备读出字符串scull.c#include #include #include #include #include #include #include #include #include "sc
2016-12-23 11:00:27 462
转载 Linux驱动基础
设备驱动充当了硬件和应用软件之间的纽带,它使得应用软件只需要调用系统软件的应用编程接口(API)就可让硬件去完成要求的工作。本文主要讲解了Linux设备驱动与硬件的关系,Linux设备驱动的开发模式以及内核中相关的重要基础数据结构。设备驱动与硬件的关系对设备驱动最通俗的解释就是“驱使硬件设备行动”。驱动与底层硬件直接打交道,按照硬件设备的具体工作方式,读写设备的寄存器,完成设备
2016-12-23 09:58:58 239
原创 Linux驱动框架解析
Linux是单内核系统,可通用计算平台的外围设备是频繁变化的,不可能将所有的(包括将来即将出现的)设备的驱动程序都一次性编译进内核,为了解决这个问题,Linux提出了可加载内核模块(Loadable Kernel Module,LKM)的概念,允许一个设备驱动通过模块加载的方式,在内核运行起来之后"融入"内核,加载进内核的模块和本身就编译进内核的模块一模一样。一个程序在编译的地址的相对关系就已
2016-12-23 09:45:46 526
原创 一天一条Linux指令-uname -a
uname -a的显示内容具体包括各个段代表:Linux - 内核名audit - 主机名2.6.18-128.el5 - 内核版本#1 SMP Wed Jan 21 10:41:14 ....2009 - 内核编译日期x86_64 - 操作系统版本x86_64 - 处理器类型x86_64 - 硬件平台(以上3 个可能顺序不对,都是一样的不要区别,x86_64表示
2016-12-23 09:06:26 632
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人