社区导航

 

搜索
查看: 176|回复: 0

[经验] iTOP-4412开发板-uboot-烧写大于300M文件的方法

[复制链接]

352

TA的帖子

1

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-7-17 10:44 | 显示全部楼层 |阅读模式

iTOP-4412 开发板,在使用自带 uboot 烧写文件系统的时候,如果文件系统大于
300M,会出现无法烧写的情况。我们可以通过分段烧写的方式来烧写大文件系统,uboot 源
码和镜像默认已经支持这个功能。
本文档以 Qt 为例,Android 系统和根文件系统也是可以采用分段烧写的方式。
1 fastboot 工具的更新
首先需要用高版本的 fastboot 工具,和文档打包在一起的“fastboot.zip”压缩包是高
版本 fastboot,使用这个 fastboot 工具替换 4412 默认的烧写工具。
解压高版本的 fastboot 压缩包,打开之后,使用命令“fastboot.ext -help”,如下图所
示。

01.jpg

如下图所示,可以看到有-S 参数,表明支持分段烧写功能,如下图所示,这个功能老版
本的 fastboot 是没有的。

02.jpg

2 编译和烧写命令
如下图所示,作者将 Qt 文件系统中放了几个重复的大文件,确保压缩包大于 300M,如
下图所示。

03.jpg

未打包的 root 文件为 420M。

04.jpg

如果文件太大,编译打包命令也要修改下,默认的打包命令是“make_ext4fs -s -l
314572800 -a root -L linux system.img root”。
注意上面的 314572800,314572800=1024*1024*300,也就是 300M,现在是
420M,肯定打包不了。
我们将命令修改为能够打包 900M 的,943718400=1024*1024*900
“make_ext4fs -s -l 943718400 -a root -L linux system.img root”。
如下图所示,使用 900M 的命令编译通过。

05.jpg

一般情况下,900M 的文件系统已经很大了,如果需要更大的,用户可以自己修改这个参
数。
接着介绍烧写,在烧写前,介绍下分区参数,如果文件系统太大(例如大于 1G),那么
分区的时候也要修改下,如下图所示,进入 uboot 模式,使用命令“fdisk -c 0 2048 300
300”,将文件系统分区为 2G。

06.jpg

接着用户执行分区格式化命令。
fatformat mmc 0:1
ext3format mmc 0:2
ext3format mmc 0:3
ext3format mmc 0:4
最后我们测试下烧写,如下图所示,作者要烧写的 system.img 大于 300M。

07.jpg

打开 cmd.exe,如下图所示,使用命令“fastboot.exe flash system system.img -S
200M”,分段烧写,每次烧写 200M 的二进制文件。

08.jpg

如上图所示,可以看出它分为多段来烧写。
烧写完成之后,重启开发板,进入文件系统,可以正常运行,烧写大文件完成,如下图所
示。

09.jpg

来源:EEWorld 嵌入式系统编程板块,转载请附上链接
更多开发板详情了解哦

1.https://arm-board.taobao.com
2.www.topeetboard.com
Q: 2551456065



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-8-22 23:20 , Processed in 0.080459 second(s), 16 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表