关于烧写vivi后flash分区不正确的解决办法

实验环境要改成Linux 2.6内核,但实验室里的arm2410s开发板安装的Linux内核都是2.4的,不得不将所有开发板重新烧写内核!

由于内核镜像和根文件系统的改变,需要修改flash分区,即修改vivi源码smdk.c文件中的mtd_partition_t default_mtd_partitions[],重新编译vivi,再将vivi烧写到开发板上。但是烧写完vivi后,有些开发板的分区并不正确。其中,vivi是正确的,因为同样的vivi,在一些板上烧成功;但对于某些板上面修改的分区并不起作用,不管你把vivi重新烧上N遍,flash分区还是不正确。这样,我们只能在vivi中使用“bon part ”命令对flash进行重新分区(bon part命令的使用方法见下面)。重新分区后,可以通过“bon part info”命令查看新的bon分区列表(使用“part show”看到的是原来的MTD分区列表)。flash分区正确后,再重新烧写vivi。烧写完vivi后,启动vivi。这时,用“part show”查看到的分区信息就是正确的分区信息了。最后,再将Linux内核镜像和根文件系统烧写到开发板上就OK了。

 

 

 

1、part add 命令用于添加一个MTD 分区。
命令的详细格式如下:
part add name offset size flag
参数name 是要添加的分区的分区名称;
参数offset 是要添加的分区的偏移(相对于整个MTD 设备的起始地址的偏
移,在ARMer9 系统中不论配置的是NOR Flash,还是NAND Flash,都只
注册了一个mtd_info 结构,也就是说逻辑上只有一个MTD 设备,这个MTD
设备的起始地址为0x00000000);
参数size 是要添加的分区的大小,单位为字节;
参数flag 是要添加的分区的标志,参数flag 的取值只能为以下字符串(请注
意必须为大写)或者通过连接符“|”将以下字符串组合起来的组合字符串。
这个标志表示了这个分区的用途
“BONFS” —— 作为BONFS 文件系统的分区;
“JFFS2” —— 作为JFFS2 文件系统的分区;
“LOCK” —— 该分区被锁定了;
“RAM” —— 该分区作为RAM 使用。
 
2、bon part 命令用于建立系统的BON 分区表。
BON 分区表被保存到NANDFlash 的最后0x4000 个字节中,即在NAND Flash 的0x03FFC000 ~0x33FFFFFF 范围内,分区表起始于0x03FFC000(注意: BON 分区是只
针对NAND Flash 设备的一种简单的分区管理方式)。
命令的详细格式如下:
bon part offsets1[flag] offsets2[flag] offsets3[flag] ⋯⋯
参数offsetsN 是每个BON 分区的起始地址;
flag 是跟每个BON 分区的起始地址后面的标识符,这个标识的作用是前面数值的单位,‘k’’或‘K’表示kilo,千;‘m’或‘M’表示mega,兆。
如果再跟上‘:’,后面再跟上‘m’或‘M’,表示该分区被标记为MTD 分区,
如果没有‘:’以及后面的字母‘m’ 或‘M’,则表示该分区被标记为BON 分区。
bon part 命令在建立系统的BON 分区表,会检测每个分区是否有坏块
(Samsung 的NAND Flash 芯片K9S1208U0M,一个块含32 个页,一个
页有512 个字节,一个块有16K 字节,即0x4000),如果发现坏块将标记
出来,并且在分区表中体现,分区的大小将减去坏快的容量,得到实际可用
的分区容量。bon part info 命令执行后显示的信息中, number_of_badblock
所指示的就是分区中的坏块数目。
例子:bon part 0 128K 1M 4M 24M
表示(64M没有坏块的情况下)
分区号(NO.)     起始地址(offset)       大小(size)
0                              0x0000 0000                  0x0002 0000(128K)
1                              0x0002 0000                 0x000e 0000(896K)
2                              0x0010 0000                  0x0030 0000(3M)
3                              0x0040 0000                  0x0140 0000(20M)
4                              0x0180 0000                  0x0280 0000(40M)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值