首先

内核配置需要打开MTD选项Memory Technology Devices (MTD)  --->

如果是NOR Flash,需要选择Common Flash Interface (CFI)相关的选项;而且需要配置映射首地址(和uboot中配置的flash首地址一致)、映射地址大小和位宽CFI Flash device in physical memory map

(0xff800000) Physical start address of flash mapping

(0x2000000) Physical length of flash mapping

(2)   Bank width in octets

如果是NAND Flash,需要选择NAND Flash相关的选项

修改内核文件

linux-2.6.15.b/drivers/mtd/maps/physmap.c//linux

#define FLASH_PARTITION1_ADDR 0x00000000//偏移地址

#define FLASH_PARTITION1_SIZE 0x001C0000//大小

//ramdisk

#define FLASH_PARTITION2_ADDR 0x001C0000

#define FLASH_PARTITION2_SIZE 0x00240000

//ramdisk reserve

#define FLASH_PARTITION3_ADDR 0x00400000

#define FLASH_PARTITION3_SIZE 0x00380000

//uboot Environment

#define FLASH_PARTITION4_ADDR 0x00780000

#define FLASH_PARTITION4_SIZE 0x00020000

//uboot

#define FLASH_PARTITION0_ADDR 0x007A0000

#define FLASH_PARTITION0_SIZE 0x00060000

static struct mtd_partition mtd_parts[] = {

{

.name =         "Bootloader",

.offset =       FLASH_PARTITION0_ADDR,

.size =         FLASH_PARTITION0_SIZE

},

{

.name =         "Kernel image",

.offset =       FLASH_PARTITION1_ADDR,

.size =         FLASH_PARTITION1_SIZE

},

{

.name =         "Initial ramdisk image",

.offset =       FLASH_PARTITION2_ADDR,

.size =         FLASH_PARTITION2_SIZE

},

{

.name =         "ramdisk reserve",

.offset =       FLASH_PARTITION3_ADDR,

.size =         FLASH_PARTITION3_SIZE

},

{

.name =         "uboot Environment",

.offset =       FLASH_PARTITION4_ADDR,

.size =         FLASH_PARTITION4_SIZE

},

};

#define PARTITION_COUNT (sizeof(mtd_parts)/sizeof(struct mtd_partition))

可参考地址:https://blog.csdn.net/wenlifu71022/article/details/4334962

修改分区方式二setenv bootargs root=/dev/mtdblock3 rootfstype=yaffs2 mtdparts=hinand:1M(u-boot)ro,64k(u-boot envs),32M(appfs)

linux 内核 mtd读取,linux内核 mtd分区相关推荐

  1. Linux电池电量信息读取,linux内核 – 如何在Linux内核模块中获取电池电量?

    我正在尝试在 Linux内核模块中获得电池电量(该模块通过modprobe插入).我最好是使用内核API调用来获取电池信息.我已经在网上搜索了解决方案,我还探讨了Linux内核源代码和Michael ...

  2. linux 内核 mtd读取,MTD坏块管理(二)-内核获取Nandflash的参数过程

    MTD坏块管理机制中,起着核心作用的数据结构是nand_chip,在此以TCC8900-Linux中MTD的坏块管理为例作一次介绍. MTD在Linux内核中同样以模块的形式被启用,TCC_MTD_I ...

  3. linux读取内存文件,linux – 使用模块读取内核内存

    首先让我先说读任意内核内存是一件棘手的事!并且有很多方法可以做到这一点,它们的复杂程度和灵活性各不相同. 1)硬编码地址. 在内核版本的System.map文件中搜索它: # grep sys_cal ...

  4. Linux内核机器ID,linux-如何强制内核重新读取/重新初始化PCI设备ID?

    我的机器(正在运行Linux内核3.2.38的计算机)在引导时具有错误的PCI设备的子系统ID(子设备和子供应商ID).如果我然后在系统仍处于启动状态(即热插拔)时物理地拔出PCI设备并重新插入,则它 ...

  5. linux内核源码lxr,配置glimpse与LXR读取linux内核源码

    配置glimpse与LXR读取linux内核源码 1.安装 源代码编译glimpse sudo apt-get install flex sudo apt-get install lxr 2.设置Ap ...

  6. mtd分区创建linux,浅析linux下mtd设备onenand存储器的分区和节点创建流程及yaffs2文件系统挂载...

    浅析linux下mtd设备onenand存储器的分区和节点创建流程及yaffs2文件系统挂载 在arch/arm/mach-pxa/luther.c这个产品平台文件中,即: MACHINE_START ...

  7. linux mtd 命令,Linux MTD介绍

    1. 介绍 MTD,即Memory Technology Device,值得是内存技术设备 字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问:同时,两者读写数据的基本单元不同 字符设备: ...

  8. [转]Linux 2.6.19.x 内核编译配置选项简介

    Linux 2.6.19.x 内核编译配置选项简介 作者:金步国,转载地址:http://lamp.linux.gov.cn/Linux/kernel_options.html 版权声明 本文作者是一 ...

  9. Linux 2.6.19.x 内核编译配置选项简介(内核裁剪)

    Linux 2.6.19.x 内核编译配置选项简介 Code maturity level options 代码成熟度选项 Prompt for development and/or incomple ...

最新文章

  1. 信息流推荐的用户增长机制
  2. CCNP张SIR的视频教程(完全可以下载)
  3. 专访资深DBA赵振平:如何成为一名优秀的DBA
  4. Hash冲突的解决--暴雪的Hash算法
  5. c语言不能在函数中求数组大小,C语言中数组长度不能用变量定义吗?
  6. 瑞幸咖啡公布对董事长兼CEO郭谨一调查结果:未发现不当行为
  7. ecstore 定时任务配置
  8. 【学习目录】天天生鲜项目页面设计
  9. 【老生谈算法】基于matlab的车牌识别算法详解及程序源码——车牌识别算法
  10. 网络安全七大赛道:全面梳理(重磅深度)
  11. qt打开xls文件_Qt读取excel文件的两种方法
  12. net空间一次购买终身使用_西部数码使用指南:如何选择合适的虚拟主机
  13. C++实现尺取法——以彩色宝石项链为例
  14. 真正的爱情是日久生情
  15. 2021-2027全球与中国乳胶机械稳定性测试仪市场现状及未来发展趋势
  16. 叮咚~您的MySQL云备份已上线
  17. [译]ng指令中的compile与link函数解析 转
  18. COBOL 知识点集锦(下)
  19. Windows 8 平板(推荐)
  20. 想运营好拼多多店铺,做好产品规划必不可少!

热门文章

  1. Java咖啡馆(2)——第一杯咖啡
  2. 一种永不止步的进取精神的勤奋
  3. 23.敏捷优秀实践 - 产品开发流程
  4. 宝元系统通讯软件recon_优软科技会场式电话录音系统
  5. Unity|一键复制log日志|小技巧
  6. 语言模型及RNN模型
  7. linux 读取内存颗粒,Linux中的内存管理模型浅析
  8. C++关于引用的分析
  9. 说说自己工作中的测试流程
  10. 8句极易踩中买家雷点的口头禅,你中了哪几条?