rtd1296 mtd 设备驱动分析】的更多相关文章

mtd 分区一般采用3种方式实现 1.内核写死  mtd_partition 2.u-boot 传参 为了使kernel能够解析mtdparts信息,我们需要将内核中的Device Drivers -> Memory Technology Device (MTD) support ->Command line partition table parsing选项开启 3.dts 传参 1296的实现方式是u-boot传参 linux 调用 parse_mtd_partitions (注意part…
MTD(memory technology device):内存技术设备 是linux用于描述ROM,NAND,NOR等内存设备的子系统的抽象 MTD设备可以按块读写也可以按字节读写,也就是说MTD设备既可以是块设备也可以是字符设备 一.MTD设备基础 1.关键结构体对象 在MTD中用mtd_info来描述一个内存设备 struct mtd_info { u_char type; //mtd设备类型 uint32_t flags; //标志 uint64_t size; //mtd设备总容量 u…
之前做过STM32的usb HID复合设备,闲来看看linux下USB设备驱动是怎么一回事, 参考资料基于韦东山JZ2440开发板,以下,有错误欢迎指出. 1.准备知识 1.1USB相关概念: USB枚举过程:https://blog.csdn.net/go_str/article/details/80802452 USB其它概念: Linux platform平台总线.平台设备.平台驱动 (1)usb是主从结构,usb的传输都是主机发起: (2)usb右四种传输类型:控制.批量.中断.实时传输…
一.设备驱动相关文件 1.1. 驱动框架相关文件 1.1.1. drivers/video/fbmem.c a. 创建graphics类.注册FB的字符设备驱动 fbmem_init(void) { proc_create(, NULL, &fb_proc_fops); if (register_chrdev(FB_MAJOR,"fb",&fb_fops)) printk("unable to get major %d for fb devs\n",…
PMBus协议规范介绍 PMBus是一套对电源进行配置.控制和监控的通讯协议标准.其最新版本为1.3,该规范还在不断演进中,比如新标准中新增的zone PMBus.AVSBus等特性.在其官网上有详细的规范文档,本节不尝试翻译规范文档,重点记录作者在了解PMBus过程中的疑问和解答. PMBus与I2C.SMBus的区别? PMBus在SMBus(System Management Bus)基础上增加了一套电源配置.控制和监控规范.SMBus最初是为电池智能管理而开发的一套标准,其基于I2C协议…
今晚在研究EVM5728开发板上面Linux系统的IIC设备驱动程序,偶然之间看到驱动程序中有一处使用了kzalloc函数,本人之前都是使用Linux内核提供的kmalloc / kfree函数来给设备相关结构体分配 / 释放内存的,第一次看到kzalloc函数的使用,因此觉得很好奇,于是乎google了一下这个函数的用法,并与kmalloc函数进行了对比,顺便记录一下,方便以后学习查询. 首先,先看下面这个驱动程序的设备检测函数,在该函数的第10行调用了一个kzalloc函数给yyy_data…
通过上节的块设备驱动分析,本节便通过内存来模拟块设备驱动  参考内核自带的块设备驱动程序: drivers/block /xd.c drivers/block /z2ram.c 1.本节需要的结构体如下: 1.1 gendisk磁盘结构体: struct gendisk { int major; //设备主设备号,等于register_blkdev()函数里的major int first_minor; //起始次设备号,等于0,则表示此设备号从0开始的 int minors; //分区(次设备…
MTD(Memory Technology Device)即常说的Flash等使用存储芯片的存储设备,MTD子系统对应的是块设备驱动框架中的设备驱动层,可以说,MTD就是针对Flash设备设计的标准化硬件驱动框架.本文基于3.14内核,讨论MTD驱动框架. MTD子系统框架 设备节点层:MTD框架可以在/dev下创建字符设备节点(主设备号90)以及块设备节点(主设备号31), 用户通过访问此设备节点即可访问MTD字符设备或块设备. MTD设备层: 基于MTD原始设备, Linux在这一层次定义出…
Linux设备驱动故障定位指引 Linux设备驱动种类繁多,涉及的知识点多,想写一个通用的故障定位方法指引,是个难度颇大且不容易做好的工作.限于笔者的经验,难以避免存在疏漏之处,欢迎大家留言指正补充. Linux设备驱动的知识点涉及硬件和软件,其故障原因也各种各样.不过从笔者多年的维护经验来看,与内核驱动相比,硬件相关问题导致的设备驱动故障还是占了较大的比例,而且大部分的硬件问题特别是环境问题也是相对来说较容易排查的.下图是Linux设备驱动故障定位脑图(大图),图中按硬件和软件分为两类,硬件分…
引子 Linux操作系统的一大优势就是支持数以万计的芯片设备,大大小小的芯片厂商工程师都在积极地向Linux kernel提交设备驱动代码.能让这个目标得以实现,这背后隐藏着一个看不见的技术优势:Linux内核提供了一套易于扩展和维护的设备驱动框架.Linux内核本身提供一套设备驱动模型,此模型提供了Linux内核对设备的一般性抽象描述,包括设备的电源管理.对象生命周期管理.用户空间呈现等等.在设备模型的帮助下,设备驱动开发工程师从设备的一般性抽象中解脱出来.但是每个设备的具体功能实现还需要大量…