历史上的今天
今天是:2024年09月27日(星期五)
2021年09月27日 | ARM开发——uboot的修改和烧写
2021-09-27 来源:eefocus
前言
由于我们使用的友善之臂,他把我们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文件格式
有关文件系统和格式可以参考我的另一篇文章https://blog.csdn.net/dongdong7_77/article/details/106391889
分区完成以后,我们就需要来将我们的文件写入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,烧写完成
下一篇:ARM开发——搭建嵌入式开发环境
史海拾趣
|
步进电机是 1 种将数字脉冲信号转换成机械角位移或线位移的数模转换元件.研究了 1 种基于 PWM 的连续多倍细分控制的步进电机驱动方法 ,该方法可有效地提高位置控制精度.… 查看全部问答> |
|
“工程师是科学家;工程师是艺术家;工程师也是思想家。”一位伟大的工程师曾经提出过这样的一段感言。不错,工程师是利用自然科学来创造工程的人。工程既是物质的也是思想上的。许多不朽的工程,伟大的发明以及出神入化的技术方案,许多人往往只看 ...… 查看全部问答> |
|
大家请看下面的程序: void Show_BMP(unsigned int Width,unsigned int Height) { unsigned long int position; position=0x4d200+0x3e+Width/7+Height*408; ... ... } 以上程序的写法绝对没有任何语法错误!!Code ...… 查看全部问答> |
|
版主: 您好,使用STM32F有一段时间了,感觉STM32的性价比较高,最近在了解使用FSMC驱动rgb接口的相关内容,在ST官方网站上下载了与之相关的AN3241文档,看到有个基于STM3210E-EVAL的demo板的支持直接驱动TFT液晶的函数库,我 ...… 查看全部问答> |
|
我们设计了一个视频系统。目前只把电源芯片 dsp sdram和flash以及他们所需的周边器件,电压已经满足要求,也有时钟信号,复位电平始终为高,但是当连接后ccs无法打开,不知道是什么问题,清高受指点。… 查看全部问答> |
|
#include \"DSP28_Device.h\" #include \"DSP28_Sci.h\" unsigned int y[3]; int i,j; void main() { /*初始化*/ InitSysCtrl(); DINT; &nb ...… 查看全部问答> |




