bootloader移植

启动【u-boot】

1【bootloader】

1.1【bootloader】简介

bootloader的本质是一个裸机程序,是为了能够正确地启动linux操作系统,在系统初上电时需要对系统做一些硬件的初始化操作。bootloader会将linux内核(kernel)加载到ram中,并引导系统去执行linux代码,完成linux的启动。

所以bootloader是系统上电或者重新启动所执行的第一个程序。
几乎所有运行大型操作系统的硬件平台在启动操作系统前都需要一个定制化的bootloader。

1.2【bootloader】分类

行业中电脑系统使用的bootloader是cmos。
嵌入式系统中使用最为广泛的是u-boot。

1.3【bootloader】作用

1.初始化异常向量表;
2.初始化工作模式;
3.初始化栈指针寄存器;
4.初始化时钟;
5.初始化串口等必要的外设

6.关闭MMU;
7.关闭DCache;
8.初始化sdram;
9.初始化nand flash;
10.初始化网卡并集成一些必要的协议,如tcp,tftp等;
11.提供一个类似于linux那样的终端,方便与操作人员互动;
12.能够设置并保存一些参数;
13.能够复制linux内核程序到指定的内存空间,并引导系统运行

1.4【bootloader】移植

1.4.1【u-boot】移植

1.4.1.1目标平台

1.【s3c2440】
2.【mini2440】板载资源:
(1)64MB sdram;
(2)256MB nand-flash;
(3)2MB nor-flash;
(4)s3c2440内部还有4KB iram;

	3.如果选择的是nand-flash启动(右图),那么此时内部iram的首字节地址就是0x00000000,也就是说第一条指令要从内部iram取。如果是这种情况的话,2440在运行iram中的程序之前,它会自动把nand-flash中的前4KB数据拷贝到iram去,这段程序是2440固化好的,称之为“垫脚石”。
1.4.1.2前置条件

1.明确启动方式:开发板以nor-flash启动
2.获取到【u-boot】源码

1.4.1.2移植流程

【STEP1】:通过【J-LINK】方式下载【u-boot】到【nor-flash】
启动【J-FLASH】:
在这里插入图片描述
打开工程文件:
在这里插入图片描述
在这里插入图片描述

打开数据文件:
在这里插入图片描述

在这里插入图片描述

建立连接:
在这里插入图片描述
下载:
在这里插入图片描述
【STEP2】:断开【J-FLASH】,PC与开发板通过串口连接

【STEP3】:配置【minicom】
【sudo minicom -s】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
【STEP4】:启动【minicom】
【sudo minicom -con】
在这里插入图片描述
可见成功启动
在这里插入图片描述
【STEP5】:给开发板上电
上电效果如图
在这里插入图片描述
至此,【u-boot】已经成功移植到开发板。

补充:
1【u-boot】相关命令
(1)通过help命令可以打印u-boot的命令
(2)内存操作:
命令修饰符:
【.b】:
【.w】:
【.l】:

【md】:查看内存
【mm】:修改内存(地址自增)
【nm】:修改内存(地址不自增)
【cp source target count】:拷贝内存
(3)内存信息:
【nand info】:查看内存信息
【nand bad】:查看坏块信息
【nand dump[.OOB] off-dump page】:打印从0ff开始的dump page页的数据
【nand erase.chip nand-flash】:整片擦除

(4)u-boot环境变量:
键-值:全是文本数据(字符串),(值一般用【‘’】括起来)
【setenv 键 值】:添加环境变量
【setenv 键 值】:删除环境变量,【值】为空即可删除
【printenv】:打印所有环境变量
【setenv 键 值】:设置(修改)环境变量
【saveenv】:保存,保存就是把参数写入到nand-flash中去

(5)配置环境变量
在这里插入图片描述
在这里插入图片描述

2【TFTP】服务搭建

完成【u-boot】移植后,需要搭建一个【TFTP】服务

2.1【TFTP】服务简介

2.2【TFTP】服务搭建流程
(1)安装软件:
安装【xinetd】:
【sudo apt-get install xinetd】
在这里插入图片描述
安装【tftp-hpa】和【tftpd-hpa】:
【sudo apt-get install tftp-hpa tftpd-hpa】

(2)新建目录并修改目录权限
【mkdir tftpboot】
在这里插入图片描述
修改为最高权限:
【chmod 777 tftpboot/】
在这里插入图片描述
(3)修改配置文件
在这里插入图片描述
在这里插入图片描述
(4)重启网络服务
【sudo service tftpd-hpa restart】
【sudo /etc/init.d/xinetd reload】
【sudo /etc/init.d/xinetd restart】
在这里插入图片描述
在这里插入图片描述

(5)双网卡配置
配置虚拟机为双网卡模式:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
修改虚拟机双网卡配置文件:
注意网段配置要相同
在这里插入图片描述
在这里插入图片描述
重启网络服务或者重启【Ubuntu】使得网络配置生效。

(6)配置开发板环境变量
更改服务器ip为配置好的静态ip,保存之后重启开发板,使得配置生效。
在这里插入图片描述
检查网络配置是否成功:
在这里插入图片描述
(6)下载linux内核的可执行程序:此时linux内核便已经下载到开发板内存中。
在这里插入图片描述
启动内核:
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值