Linux_kernel
文章平均质量分 71
诗小法
no
展开
-
Linux内核代码结构简要分析
kernel下载地址:https://www.kernel.org/ 在Linux下,也可以使用命令:wget http://kernel.org/pub/linux/kernel/<版本>本文的内核版本为4.8.11 注意:使用kernel要遵守GPL协议,有兴趣的可以自己去看看。1.Linux内核模块结构图在图中可以看到字符设备是没有缓存,直接输入输出的,而网卡和文件系统有缓存器件。2.Li原创 2016-11-28 17:28:13 · 669 阅读 · 0 评论 -
Linux内核配置与编译流程
配置1.使用make menuconfig使用命令: # make ARCH=arm menuconfig命令解析 :按空格键选中(*编译进内核,M编译成模块)或编辑参数 :退到上一级或是退出menuconfig :查看该选项的说明信息,及出处 Defined at arch/arm/Kconfig:1450 :保存选择结果,且不退到上一级或是退出menuconfi原创 2016-11-28 22:19:06 · 791 阅读 · 0 评论 -
Linux内核配置Kconfig语法
何为Kconfig 它的作用是什么内核源码编译过程遍历每个源码目录(或配置指定的源码目录)Makefile 每个目录的Makefile 会根据Kconfig来定制要编译对象 回到顶层目录的Makeifle执行编译那么我们就得出各个文件的作用:Kconfig ---> (每个源码目录下)提供选项.config ---> (源码顶层目录下)保存选择结果Makefile---> (每个源原创 2016-11-29 20:20:01 · 28725 阅读 · 11 评论 -
IOCTL接口函数解析
什么是IOCTLIOCTL是设备驱动程序中对设备的I/O通道进行管理的函数。所谓的I/O通道管理即设备参数读写、设备状态读、以及控制设备。例如:控制串口传输的波特率、马达的转速等等。IOCTL参数命令long (*unlocked_ioctl)(struct file *filp, unsigned int cmd, unsigned long arg)工程实例原创 2016-12-05 15:29:12 · 570 阅读 · 0 评论 -
字符设备驱动剖析
整体流程 这是字符设备里面主要写的函数,我们接下来一个一个分析他们在系统中运作的原理。字符设备打开过程int fd = open("/dev/demo0", O_RDWR);^ | 用户空间(3G) —-系统调用—————————————– | 内核空间(1G) V 1、找inode节点,得到设备号 2、原创 2016-12-05 22:38:12 · 331 阅读 · 0 评论 -
ARM设备树解析
linux-4.8.5\arch\arm\boot\dts ARM设备树文件所在位置include/linux目录下的of_xxx.h为设备树函数头文件所在位置概念设备树是一种描述硬件的数据结构,采用设备树后,许多硬件的细节可以直接通过它传给Linux。组成 它是由命令的节点(Node)和属性(Property)组成,而节点本身可以包含子节点。DTS文件 (Device Tr原创 2016-12-08 09:02:49 · 1106 阅读 · 0 评论 -
MISC设备驱动分析及实现
MISC设备属于字符设备,是因为字符设备多种多样,很多无法归类的字符设备都归在misc设备中原创 2017-02-04 20:35:01 · 586 阅读 · 0 评论 -
Platform总线、设备与驱动浅析
设备模型就需要设备和驱动挂接在一个总线上面,对有实际总线的设备和驱动那是没问题的,但有一些挂接在soc内存空间的外设,则没有对应的总线来挂接,由此引入了platform总线的概念原创 2017-02-05 20:41:52 · 484 阅读 · 0 评论 -
Input子系统浅析
为何要有input子系统输入设备工作原理输入设备(如鼠标、键盘、触摸屏、按键灯)是典型的字符设备,其工作机理: 1. 底层在按键。触摸等动作产生一个中断(或者定时查询,设置一个定时器) 2. 就进入中断或定时器处理程序,CPU通过SPI、I2C或外部存储总线(还有platfrom虚拟总线)读取键值、坐标等数据,放入一个缓冲区; 3. 字符设备驱动管理这个缓冲区,驱动的read()可以让用原创 2017-02-17 19:15:53 · 479 阅读 · 2 评论