ARM flash文件系统分区
发布时间:2020-12-15 17:22:56 所属栏目:百科 来源:网络整理
导读:在实际应用中我们有时候需要把ARM的一个文件系统分为多个区域,就像电脑一样有C、D、E一样。 前提:你编译的内核必须支持各种不同类型文件系统,如果你不太了解你的内核是否支持,可以找 博客学习一下,网上文章一大把。 先直接上图,说明效果! # mount -t
在实际应用中我们有时候需要把ARM的一个文件系统分为多个区域,就像电脑一样有C、D、E一样。 前提:你编译的内核必须支持各种不同类型文件系统,如果你不太了解你的内核是否支持,可以找 博客学习一下,网上文章一大把。 先直接上图,说明效果! # mount -t jffs2 /dev/mtdblock3 /ybq # df Filesystem?????????? 1K-blocks????? Used Available Use% Mounted on /dev/root???????????????? 6144????? 4512????? 1632? 73% / tmpfs??????????????????? 29392???????? 4???? 29388?? 0% /dev /dev/mtdblock3??????????? 5120?????? 260????? 4860?? 5% /ybq # umount /ybq 这里有两个分区,一个是/dev/root,另一个为/dev/mtdblock3,而这两个分区是一块flash中分离出来的, 就像电脑里的硬盘分区一样。同时你还可以将这两个分区分为不同的格式,比如jffs2,yaffs等。 下面以hisi350d开发板为例讲解,它提供一块16M的flash。 内核编译(linux_3.0.8)时支持uboot 命令参数分区: Device Drivers ---> ?? ??? ??? ?<*> Memory Technology Device (MTD) support ---> ?? ??? ??? ??? ??? ??? ??? ??? ?[*] Command line partition table parsing 官方SDK提供的少写方法如下(不懂的话,可以查资料这几句话的意思): setenv serverip 192.168.210.62;setenv ipaddr 192.168.210.218;setenv ethaddr 192.168.210.1;setenv netmask 255.255.255.0;setenv gatewayip 192.168.210.1;ping 192.168.210.62 sf probe 0;mw.b 82000000 ff 100000;tftp 0x82000000 u-boot_hi3520d.bin;sf probe 0;sf erase 0 100000;sf write 82000000 0 100000?? ?;reset setenv serverip 192.168.210.62;setenv ipaddr 192.168.210.218;setenv ethaddr 192.168.210.1;setenv netmask 255.255.255.0;setenv gatewayip 192.168.210.1;ping 192.168.210.62 mw.b 82000000 ff 400000;tftp 82000000 uImage_hi3520d_full;sf probe 0;sf erase 100000 400000;sf write 82000000 100000 400000 mw.b 82000000 ff b00000;tftp 0x82000000 rootfs_hi3520d_64k.jffs2;sf probe 0;sf erase 500000 b00000;sf write 82000000 500000 b00000 setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000' setenv bootargs 'bootargs=mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),11M(rootfs) ipaddr=192.168.210.218' save reset 地址空间说明 ??????? |????? 1M?????? |????? 3M?????? |????? 11M????? | ??????? |---------------|---------------|---------------| ??????? |???? boot????? |???? kernel??? |???? rootfs??? | 自己烧写方法如下: sf probe 0;mw.b 82000000 ff 100000;tftp 0x82000000 u-boot_hi3520d.bin;sf probe 0;sf erase 0 100000;sf write 82000000 0 100000?? ?;reset mw.b 82000000 ff 400000;tftp 82000000 uImage_hi3520d_full;sf probe 0;sf erase 100000 400000;sf write 82000000 100000 400000 mw.b 82000000 ff 600000;tftp 0x82000000 rootfs_hi3520d_64k.squashfs;sf probe 0;sf erase 500000 600000;sf write 82000000 500000 600000 setenv bootargs 'mem=64M console=ttyAMA0,6M(rootfs),5M(ybq) ipaddr=192.168.210.218' setenv bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x400000;bootm 0x82000000' save reset 开机后挂载:mount -t jffs2 /dev/mtdblock3 /ybq 地址空间说明 ??????? |????? 1M?????? |????? 3M?????? |????? 6 M????? |?? ??? ??? ?5 ?? ??? ??? ?| ??????? |---------------|---------------|---------------|-------------- ??????? |???? boot????? |???? kernel??? |???? rootfs??? |?? ??? ? ybq?? ??? ??? ?|
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |