烧写Ramdisk文件系统(3730)

本文详细介绍了如何为嵌入式系统烧写内核和文件系统,包括使用mmcinit等命令初始化SD卡,设置内存区域,加载内核与文件系统至内存,擦除与写入Flash等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

修改文件系统内容及重新制作步骤:
gzip -v9 ramdisk
gunzip ramdisk.gz
mount -o loop ramdisk /haha/               
umount /haha




目前flash的分区如下:
dev:    size   erasesize  name
mtd0: 00080000 00020000 "X-Loader"
mtd1: 001e0000 00020000 "U-Boot"
mtd2: 00020000 00020000 "U-Boot Env"
mtd3: 00400000 00020000 "Kernel"
mtd4: 1f980000 00020000 "File System"  


Kernel地址:0x280000  
Kernel占用:0x400000




文件系统地址:0x680000
文件系统占用:0x800000 (根据ramdisk.gi文件大小的实际情况进行计算)


1、sd卡初始化:
mmc init
2、初始化一部分内存用于装载内核或文件系统,要保证所初始化的空间足够大
mw.b 0x82000000 0xff 0x800000
3、设置nand校验模式
nandecc sw
4、从sd卡加载内核到内存
fatload mmc 0 0x82000000 uImage
5、擦除kernel flash指定分区
nand erase 0x280000 0x400000
6、烧写内核到flash
nand write 0x82000000 0x280000 0x300000
7、重新初始化内存,用于加载文件系统
mw.b 0x82000000 0xff 0xA00000
8、设置nand校验模式
nandecc sw
9、从sd卡加载文件系统到内存
fatload mmc 0 0x82000000 ramdisk.gz
10、擦除文件系统 flash分区
nand erase 0x680000 0x800000
9、烧写文件系统到flash
nand write 0x82000000 0x680000 0x800000


烧写结束:




uboot修改:
setenv bootcmd  'nand read 0x80300000 0x280000 0x300000;nand read 0x8A000000 0x680000 0xa00000;bootm 0x80300000'
setenv bootargs 'console=ttyS2,115200n8 rw  mem=55M@0x80000000 mpurate=1000 mem=128M@0x88000000 omap_vout.vid1_static_vrfb_alloc=y omapfb.vram=8M root=/dev/ram0 rw ramdisk_size=65536 initrd=0x8A000000,64M rootfstype=ext2'




如果启动内核出现Error: unrecognized/unsupported machine ID (r1 = 0x00000ae9).这个错误,则修改如下文件的相应machine id内容arch/arm/tools/mach-types

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值