ARM技术论坛
直播中

申换换

7年用户 1511经验值
私信 关注
[问答]

怎样对ARM中的uboot进行修改并烧写呢

前言
由于我们使用的友善之臂,他把我们boot loader 完全的固化了,我们无法阻止或者中断他的过程,我们无法进入boot loader,也无法对他进行修改
我们正常启动顺序应该是boot loader ->Linux Kernel -> file system
所有我们只能使用德国的uboot来进行裸板开发
uboot的修改
我们将我们提前准备好的uboot拷入我们的家目录
首先进行make distclean 来进行
但是我们我们的uboot还需要修改
首先我们需要关闭掉MMU,我们不能再uboot阶段打开MMU,不然会导致编译失败,我们只能在写驱动的时候打开MMU,我们只能在编译的时候取消MMU的编译,在他的配置文件中,取消对MMC的定义
vi ~/uboot/innclude/config/tiny4412.h
由于我们关闭了虚拟地址,所以我们需要修改,修改他的寻址范围
vi ~/uboot/board/samsug/tiny4412/congfig.mk
在里面将他的里面的地址改为

这些修改完以后,我们回到目录来进行make进行编译
uboot的烧写
这时候我们通过烧写工具,先将uboot烧写到sd卡上,现在我们将sd卡插入到我们开发板中,用sd卡来启动uboot
我们通过kermit来连接到我的板子上,这时候我们可以看见我们的uboot正常的运行,我们可以在这个环境下输入命令
比如 pri 查看当前的环境变量,ip地址
mmc list 可以看见我们板子挂载了两个设备信息,根据谁启动谁是0号,所以我们可以知道我们sd卡是0号,板载的是1号

到了这里,我们需要通过一个内存烧写工具 dnw来将文件写到内存中,将mmc卡中的superboot变为我们的uboot,用这种方式来模仿那个烧写脚本的动作
这时候注意,我们需要将dnw文件中的makefile做一些修改
现在我们先来看一下我们的mmc的分区
mmc disk -p //来查看分区

我们现在要他来给他分区和格式化
fdisk -c 1 320 2070 520
fatformat mmc  1:1 //将他第一个分区改为fat文件格式
ext3format mmc  1:2 //将他第二个分区改为ext3文件格式
ext3format mmc  1:3 //将他第三个分区改为ext3文件格式
ext3format mmc  1:4 //将他第四个分区改为ext3文件格式
分区完成以后,我们就需要来将我们的文件写入mmc卡中,我们通过dnw工具和MINI use线来传输
emmc open 1 //打开mmc卡,这时候记住一定要保存
dnw 50000000  //打开一个空闲地址,将文件发到这里
//在linux下通过命令 sudo dnw filexxx 来发送到这个地址中
mmc write 1  50000000 0 10 //将文件写到地址中,从0号地址开始到10
dnw 50000000  //打开一个空闲地址,将文件发到这里
//在linux下通过命令 sudo dnw filexxx 来发送到这个地址中,这是第二个文件
mmc write 1  50000000 10 20 //将文件写到地址中,从10号地址开始到20
..........
emmc close 1  //我们发送完我们的文件并写入后,我们关闭mmc卡,这样才可以保存
这些完成之后,我那将板子放到mmc卡启动,去掉sd卡,我们发现启动了我们的uboot,烧写完成。

原作者:东东7_7

更多回帖

发帖
×
20
完善资料,
赚取积分