linux 内核 mtd读取,linux内核 mtd分区
首先
内核配置需要打开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分区相关推荐
- Linux电池电量信息读取,linux内核 – 如何在Linux内核模块中获取电池电量?
我正在尝试在 Linux内核模块中获得电池电量(该模块通过modprobe插入).我最好是使用内核API调用来获取电池信息.我已经在网上搜索了解决方案,我还探讨了Linux内核源代码和Michael ...
- linux 内核 mtd读取,MTD坏块管理(二)-内核获取Nandflash的参数过程
MTD坏块管理机制中,起着核心作用的数据结构是nand_chip,在此以TCC8900-Linux中MTD的坏块管理为例作一次介绍. MTD在Linux内核中同样以模块的形式被启用,TCC_MTD_I ...
- linux读取内存文件,linux – 使用模块读取内核内存
首先让我先说读任意内核内存是一件棘手的事!并且有很多方法可以做到这一点,它们的复杂程度和灵活性各不相同. 1)硬编码地址. 在内核版本的System.map文件中搜索它: # grep sys_cal ...
- Linux内核机器ID,linux-如何强制内核重新读取/重新初始化PCI设备ID?
我的机器(正在运行Linux内核3.2.38的计算机)在引导时具有错误的PCI设备的子系统ID(子设备和子供应商ID).如果我然后在系统仍处于启动状态(即热插拔)时物理地拔出PCI设备并重新插入,则它 ...
- linux内核源码lxr,配置glimpse与LXR读取linux内核源码
配置glimpse与LXR读取linux内核源码 1.安装 源代码编译glimpse sudo apt-get install flex sudo apt-get install lxr 2.设置Ap ...
- mtd分区创建linux,浅析linux下mtd设备onenand存储器的分区和节点创建流程及yaffs2文件系统挂载...
浅析linux下mtd设备onenand存储器的分区和节点创建流程及yaffs2文件系统挂载 在arch/arm/mach-pxa/luther.c这个产品平台文件中,即: MACHINE_START ...
- linux mtd 命令,Linux MTD介绍
1. 介绍 MTD,即Memory Technology Device,值得是内存技术设备 字符设备和块设备的区别在于前者只能被顺序读写,后者可以随机访问:同时,两者读写数据的基本单元不同 字符设备: ...
- [转]Linux 2.6.19.x 内核编译配置选项简介
Linux 2.6.19.x 内核编译配置选项简介 作者:金步国,转载地址:http://lamp.linux.gov.cn/Linux/kernel_options.html 版权声明 本文作者是一 ...
- Linux 2.6.19.x 内核编译配置选项简介(内核裁剪)
Linux 2.6.19.x 内核编译配置选项简介 Code maturity level options 代码成熟度选项 Prompt for development and/or incomple ...
最新文章
- 信息流推荐的用户增长机制
- CCNP张SIR的视频教程(完全可以下载)
- 专访资深DBA赵振平:如何成为一名优秀的DBA
- Hash冲突的解决--暴雪的Hash算法
- c语言不能在函数中求数组大小,C语言中数组长度不能用变量定义吗?
- 瑞幸咖啡公布对董事长兼CEO郭谨一调查结果:未发现不当行为
- ecstore 定时任务配置
- 【学习目录】天天生鲜项目页面设计
- 【老生谈算法】基于matlab的车牌识别算法详解及程序源码——车牌识别算法
- 网络安全七大赛道:全面梳理(重磅深度)
- qt打开xls文件_Qt读取excel文件的两种方法
- net空间一次购买终身使用_西部数码使用指南:如何选择合适的虚拟主机
- C++实现尺取法——以彩色宝石项链为例
- 真正的爱情是日久生情
- 2021-2027全球与中国乳胶机械稳定性测试仪市场现状及未来发展趋势
- 叮咚~您的MySQL云备份已上线
- [译]ng指令中的compile与link函数解析 转
- COBOL 知识点集锦(下)
- Windows 8 平板(推荐)
- 想运营好拼多多店铺,做好产品规划必不可少!