Linux 下 Nand Flash 调用关系

Nand Flash 设备添加时数据结构包含关系

struct mtd_partition        partition_info[]

--> struct s3c2410_nand_set     nandset

--> struct s3c2410_platform_nand superlpplatfrom

--> struct platform_device      s3c_device_nand

在该数据结构的 name 字段的初始化值"s3c2410-nand",必须与 Nand Flash 设备驱动注册时 struct device_driver结构中的 name 字段相同,因为 platfrom bus 是依靠名字来匹配的.

--> struct platform_device      *smdk2410_devices[]

 Nand Flash 设备注册时数据结构包含关系

struct device_driver s3c2410_nand_driver

-->struct device *dev 该数据构由系统分配.

-->struct platform_device *pdev

-->struct s3c2410_platform_nand *plat

-->struct s3c2410_nand_set nset

-->struct mtd_partition

当发生系统调用时数据结构调用关系

struct mtd_info

它的*priv 指向 chip

-->struct
nand_chip 它的*priv 指向 nmtd

-->struct s3c2410_nand_mtd

它是 s3c2410_nand_info 的一个字段

-->s3c2410_nand_info

它被设为 Nand Flash 设备驱动的私有数据结构,在 Nand
Flash 设备驱动注册时分配空间.

-->struct device

原文地址:https://www.cnblogs.com/fanweisheng/p/11106193.html

时间: 2024-10-14 12:00:49

Linux 下 Nand Flash 调用关系的相关文章

【详解】如何编写Linux下Nand Flash驱动

From: http://www.crifan.com/files/doc/docbook/linux_nand_driver/release/html/linux_nand_driver.html 版本:v2.2 Crifan Li 摘要 本文先解释了Nand Flash相关的一些名词,再从Flash硬件机制开始,介绍到Nand Flash的常见的物理特性,且深入介绍了Nand Flash的一些高级功能,然后开始介绍Linux下面和Nand Flash相关的软件架构MTD的相关知识,最后介绍了

Linux 下 Nand Flash 驱动说明

注册 driver_register 通过 module_init(s3c2410_nand_init);注册 Nand Flash 驱动. 在 s3c2410_nand_init ()中通过 driver_register()注册 s3c2410_nand_driver 驱动程序,如下所示: static struct device_driver s3c2410_nand_driver = { .name          = "s3c2410-nand", .bus        

Linux 下 Nand Flash 驱动主要数据结构说明

s3c2410 专有数据结构 s3c2410_nand_set struct s3c2410_nand_set { int                    nr_chips;     /* 芯片的数目 */ int                    nr_partitions; /* 分区的数目 */ char                   *name;          /* 集合名称   */ int                   nr_map;       /* 可选

MPC8313ERDB在Linux从NAND FLASH读取UBoot环境变量的代码分析

[email protected] 一.故事起因 因为文件系统的增大,已经大大的超出了8MB的NOR FLASH,而不得不把内核,文件系统和设备树文件保存到NAND FLASH上.但是因为使用的是RAMDISK,而无法保存一些个别的配置和参数,最简单的需要就是设置系统的IP了,,, 要使用统一的RAMDISK,而实现LINUX启动之后,设置成不能的参数功能,比较方便的就是从UBOOT把这些参数传递过去,这个得到了大家的认证,我们可以直接添加启动参数,然后在内核里面读出来,这种方法比较方法,唯一不

​Linux下C如何调用PCI Lib函数

Linux下C如何调用PCI Lib函数 在Linux下,可以通过"setpci"和"setpci"命令来访问PCI设备的配置空间,那么能否用程序来访问PCI 配置空间呢?答案当然是肯定的,linux下提供了多个pci库以供应用程序访问.下面就以最常见的为例,从安装.使用和编译的角度分别进行说明. 安装在centos中,用超级用户权限,可用下面的命令查看到和pci访问相关的库包括:libpciaccess.i686 : PCI access librarylibpc

在linux下sh批处理文件调用java的方法

解密 java -classpath collection-impl-0.0.1.jar com.ai.toptea.collection.message.DESEncrypt 1EFE46638952F577 dec 加密 java -classpath collection-impl-0.0.1.jar com.ai.toptea.collection.message.DESEncrypt 123456 enc 本文主要介绍在linux下sh批处理文件调用java的方法. shell编程的代

LINUX下c语言调用math.h库函数的注意事项

在Ubuntu上做C语言程序练习时,用到了sqrt函数,尽管在源文件中已包含了math.h头文件,但在编译的时候总是提示sqrt未定义.后来在网上查阅了相关资料,得知:在Linux系统下,C源文件若调用了math库里的函数,则编译时要加上-lm(是字母l,不是数字1),表示链接到math库.例如编译调用了math库函数的C源文件foo.c,可以用如下命令对其进行编译: $gcc -o foo -g -W foo.c -lm

[转载]Linux下关于system调用

曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入.只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值.它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点.当初因为这个函数风险较多,故抛弃不用,改用其他的方法.这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它. 先来看一下system()函数的简单介绍: int system(const char *com

关于Linux下的system调用

曾经的曾经,被system()函数折磨过,之所以这样,是因为对system()函数了解不够深入.只是简单的知道用这个函数执行一个系统命令,这远远不够,它的返回值.它所执行命令的返回值以及命令执行失败原因如何定位,这才是重点.当初因为这个函数风险较多,故抛弃不用,改用其他的方法.这里先不说我用了什么方法,这里必须要搞懂system()函数,因为还是有很多人用了system()函数,有时你不得不面对它. 先来看一下system()函数的简单介绍: 2    int system(const char