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) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!