摘要: 前言 通用块层是一个内核组件,处理来自系统其他组件发出的块设备请求。换句话说,通用块层包含了块设备操作的一些通用函数和数据结构,如通用磁盘结构gendisk,请求队列结构request_queue、请求结构request、块设备I/O操作结构bio和块设备操作结构block_device_opera 阅读全文
posted @ 2024-02-07 22:57 嵌入式与Linux那些事 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 什么是pstore pstore最初是用于系统发生oops或panic时,自动保存内核log buffer中的日志。不过在当前内核版本中,其已经支持了更多的功能,如保存console日志、ftrace消息和用户空间日志。同时,它还支持将这些消息保存在不同的存储设备中,如内存、块设备或mtd设备。 为 阅读全文
posted @ 2024-02-07 17:52 嵌入式与Linux那些事 阅读(101) 评论(0) 推荐(1) 编辑
摘要: 前言 块设备驱动程序是Liux块子系统中的最底层组件。它们从IO调度程序中获得请求,然后按要求处理这些请求。一个块设备驱动程序可能处理几个块设备。例如,IDE设备驱动程序可以处理几个IDE磁盘,其中的每个都是一个单独的块设备。而且,每个磁盘通常是被分区的,每个分区又可以被看作是一个逻辑块设备。 核心 阅读全文
posted @ 2024-02-05 13:51 嵌入式与Linux那些事 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 前言 每个块设备驱动程序都维持着自己的请求队列,它包含设备待处理的请求链表。如果磁盘控制器正在处理几个磁盘,那么通常每个物理块设备都有一个请求队列。在每个请求队列上单独执行1/O调度,这样可以提高磁盘的性能。 关键API struct request_queue 请求队列是由一个大的数据结构requ 阅读全文
posted @ 2024-02-05 13:48 嵌入式与Linux那些事 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 前言 通用块层是一个内核组件,处理来自系统其他组件发出的块设备请求。换句话说,通用块层包含了块设备操作的一些通用函数和数据结构,如通用磁盘结构gendisk,请求队列结构request_queue、请求结构request、块设备I/O操作结构bio和块设备操作结构block_device_opera 阅读全文
posted @ 2024-02-05 13:43 嵌入式与Linux那些事 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 块设备的定义 块设备是针对存储设备的,比如 SD 卡、EMMC、NAND Flash、Nor Flash、SPI Flash、机械硬盘、固态硬盘等。因此块设备驱动其实就是这些存储设备驱动,块设备驱动相比字符设备相比,块设备有以下几个特殊之处: 块设备可以从数据的任何位置进行访问 块数据总是以固定长度 阅读全文
posted @ 2024-02-05 13:41 嵌入式与Linux那些事 阅读(192) 评论(1) 推荐(1) 编辑
摘要: 内联函数定义 inline关键字是C99标准的型关键字,其作用是将函数展开,把函数的代码复制到每一个调用处。这样调用函数的过程就可以直接执行函数代码,而不发生跳转、压栈等一般性函数操作。可以节省时间,也会提高程序的执行速度。 为什么需要内联函数 在C语言中,如果一些函数被频繁的调用,不断地用函数入栈 阅读全文
posted @ 2024-02-03 22:19 嵌入式与Linux那些事 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Linux系统上的/proc目录是一种文件系统,即proc文件系统。与其它常见的文件系统不同的是,/proc是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可以通过更改其中某些文件来改变内核的运行状态。 阅读全文
posted @ 2024-01-21 21:04 嵌入式与Linux那些事 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 前言 Linux I2C驱动是嵌入式Linux驱动开发人员经常需要编写的一种驱动,因为凡是系统中使用到的I2C设备,几乎都需要编写相应的I2C驱动去配置和控制它,例如 RTC实时时钟芯片、音视频采集芯片、音视频输出芯片、EEROM芯片、AD/DA转换芯片等等。下面我们看下如何写一个基本的I2C驱动。 阅读全文
posted @ 2024-01-18 22:58 嵌入式与Linux那些事 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 在drivers/i2c/busses下包含各种I2C总线驱动,使用GPIO模拟I2C总线的驱动i2c-gpio.c,这里只分析i2c-gpio.c。 i2c-gpio.c它是gpio模拟I2C总线的驱动,总线也是个设备,在这里将总线当作平台设备处理,那驱动当然是平台设备驱动,看它的驱动注册和注销函 阅读全文
posted @ 2024-01-18 22:57 嵌入式与Linux那些事 阅读(7) 评论(0) 推荐(0) 编辑