天嵌 ARM开发社区

 找回密码
 注册
查看: 3369|回复: 13

uboot超过420K无法启动!

[复制链接]
亚瑟王 发表于 2013-2-25 17:34:43 | 显示全部楼层
亲,可以使用yaffs文件系统的。你看行不行?
不知道怎么回事,他的一楼没了。下面内容为楼主的问题描述:
使用的板子为TQ2416一个工业级ARM9开发板,目前为这个板子的uboot添加了TCP/IP网络烧写功能,但是添加完成后uboot根本无法运行,将功能去掉逐行添加代码当uboot.bin增大至408K时 uboot仅运行一部分代码便崩溃,继续添加至412K时uboot根本无法进入C语言阶段。后经客服帮助建议我去掉烧写ubi文件系统功能,TCP/IP功能编译后,文件大小小于400K可以正常运行,但是uboot不支持UBI文件系统,我又如何烧写ubi文件系统呢?
现在我想要TCP/IP功能又想要具备ubi。希望大神指引!!
亚瑟王 发表于 2013-2-25 17:45:39 | 显示全部楼层
dongchong229248 发表于 2013-2-25 17:40
因为是公司领导的要求希望文件读写更快,所以公司要求使用ubi 文件系统!如果有商量的空间我也希望省事儿啊 ...

你把uboot源码下的include/movi.h的20行从
#define CopyMovitoMem(a,b,c,d)        (((uint(*)(uint, ushort, uint *, int))(0x1B68))(a,b,c,d))
改为:
#define CopyMovitoMem(a,b,c,d)        (((uint(*)(uint, ushort, uint *, int))(0x40004008))(a,b,c,d))
然后试一下。
你说的问题的原因应该是u-boot在内存中使用的实际长度大于了预设的长度引起的。这个修改太麻烦了。
换个做法,不用uboot自带的ubi烧写方式了,改用ubi工具制作好的针对Nand的镜像。
大致方法如下:
下载ubit的制作工具,编译好之后。
先制作一个ubi的镜像,比如aaa.ubi。
创建一个配置文件,名为ubinize.cfg,内容如下:
[ubifs]
    mode=ubi
    image=ubifs.img
    vol_id=0
    vol_size=192MiB
    vol_type=dynamic
    vol_name=rootfs
    vol_flags=autoresize

然后执行命令ubinize -o aaa.ubi -m 2048 -p 128KiB -s 512 -o 2048 ubinize.cfg,
然后就可以将ubi镜像转换为符合Nand格式的镜像。
烧写方法:用nand write命令直接将这个镜像完整的写到Nand的root分区,启动即可。
至于参数方面,请参考命令对应的帮助文件。
 楼主| dongchong229248 发表于 2013-2-27 18:01:50 | 显示全部楼层
亚瑟王 发表于 2013-2-25 17:45
你把uboot源码下的include/movi.h的20行从
#define CopyMovitoMem(a,b,c,d)        (((uint(*)(uint, us ...

啊!大神我从心里特别的感谢您的帮助!以及对你高超技术的仰慕!这两天我就试试!到时候我再来向您汇报!
亚瑟王 发表于 2013-2-28 09:06:30 | 显示全部楼层
dongchong229248 发表于 2013-2-27 18:01
啊!大神我从心里特别的感谢您的帮助!以及对你高超技术的仰慕!这两天我就试试!到时候我再来向您汇报!

用ubinize命令做的镜像有个不好的地方,就是镜像容量是固定的,在ubinize.cfg文件中的vol_size定义。
如果问题解决了,请把帖子类型改为“已解决”(参考帖子:http://www.armbbs.net/forum.php?mod=viewthread&tid=15200即可)
 楼主| dongchong229248 发表于 2013-2-28 15:12:28 | 显示全部楼层
亚瑟王 发表于 2013-2-28 09:06
用ubinize命令做的镜像有个不好的地方,就是镜像容量是固定的,在ubinize.cfg文件中的vol_size定义。
如 ...

请问这个ubinize是在哪里下载的?
亚瑟王 发表于 2013-3-1 09:16:26 | 显示全部楼层
dongchong229248 发表于 2013-2-28 15:12
请问这个ubinize是在哪里下载的?


亲,附件中的,试用一下吧。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
 楼主| dongchong229248 发表于 2013-3-1 15:07:15 | 显示全部楼层
亚瑟王 发表于 2013-3-1 09:16
亲,附件中的,试用一下吧。

嗯 那个东西我在网上找到了!
使用方法是先制作一个aaa.ubi 然后创建配置文件名为ubinize.cfg内容如下:
[ubifs]
    mode=ubi
    image=aaa.ubi (原UBI文件)
    vol_id=0
    vol_size=192MiB
    vol_type=dynamic
    vol_name=rootfs
    vol_flags=autoresize
然后执行命令ubinize -o(小写o) ubifs.img -m 2048 -p 128KiB -s 512 -O(大写O) 2048 ubinize.cfg
然后可以生成一个ubifs.img这个就是可以烧写到nand flash 的文件 使用nand write (文件内存地址)(rootfs 写入地址) (文件大小) 现在已经证实可以实现目的
 楼主| dongchong229248 发表于 2013-3-1 15:14:50 | 显示全部楼层
亚瑟王 发表于 2013-3-1 09:16
亲,附件中的,试用一下吧。

大神怎么给你结贴啊 !显示LZ好像是你啊!
亚瑟王 发表于 2013-3-1 18:24:53 | 显示全部楼层
dongchong229248 发表于 2013-3-1 15:14
大神怎么给你结贴啊 !显示LZ好像是你啊!

我来搞吧。
 楼主| dongchong229248 发表于 2013-3-6 15:22:23 | 显示全部楼层
亚瑟王 发表于 2013-3-1 18:24
我来搞吧。

嗯好的谢谢!
hbyiwen 发表于 2013-3-8 09:45:01 | 显示全部楼层
这个学习了,LZ牛人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-6-1 15:05 , Processed in 1.062500 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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