系统移植Bootloader——树莓派5

Bootloader是硬件启动的引导程序,是启动操作系统的根本;是在操作系统内核或用户应用程序运行之前运行的一段小程序。

1. Bootloader基本功能

Bootloader不属于操作系统内核,采用汇编语言编写,因此针对不同的CPU体系结构,这一部分代码不具有可移植性;Bootloader不但依赖于CPU的体系结构,而且依赖于嵌入式系统板级设备的配置。

启动加载模式:在这种模式下,Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。

下载模式:在这种模式下,目标机上的Bootloader将通过串口或网络等通信手段从开发主机(Host)上下载内核映像和根文件系统映像等到RAM中。然后可以再被 Bootloader写到目标机上的固态存储媒质中,或者直接进行系统的引导。

Bootloader基本功能:初始化硬件;将操作系统内核从Flash拷贝到SDRAM中,如果是压缩格式的内核,还要解压缩; 改写系统的内存映射,原先Flash起始地址映射为0地址,这时需要将RAM的起始地址映射为0; 提供Linux内核的启动参数; 启动Linux内核; 设置堆栈指针并将bss段清零将来执行C语言程序和调用子函数时要用到; 改变pc值,使得CPU开始执行真正的操作系统内核。

Bootloader启动:系统加电或复位后,所有CPU都会从某个地址开始执行;嵌入式系统的开发板都要把板上ROM或FLASH映射到这个地址。

2. 操作步骤:

  1. 解压:tar -zxvf uboot-ebf_v2020_10_imx.tar.gz -C ../

     2. 配置uboot:~/stp $ vim arm.sh

    3.编译脚本:source arm.sh 

    4. 安装:sudo apt install flex bison

    5. 添加变量:~/stp/uboot-ebf_v2020_10_imx $ echo $CROSS_COMPILE

    6. 清除配置文件:~/stp/uboot-ebf_v2020_10_imx $ make distclean

    7. 配置make选项: ~/stp/uboot-ebf_v2020_10_imx $ make mx6ull_fire_mmc_defconfig

       8. 生成Uboot镜像:make -j4(4线程)

      11. 创建一个out文件夹用于存放,复制imx文档:~/stp/uboot-ebf_v2020_10_imx $cp u-boot-dtb.imx ../out/

       12. 查看TF卡名字,清空SD卡前40M:sudo dd iflag=dsync oflag=dsync if=/dev/zero of=/dev/sda bs=512 count=8192

    13.烧写imx文件:sudo dd iflag=dsync oflag=dsync if=u-boot-dtb.imx of=/dev/sdb seek=2

 14.配置树莓派5另一个IP地址或者写成sh文件:~/stp $ vim net.sh

#!/bin/sh
sudo ifconfig eth0 xxx.xxx.xx.xx

   15. 提高权限:chmod +x net.sh

   16.执行:./net.sh

   17.安装服务:sudo apt install tftpd-hpa

   18.配置服务:sudo vim /etc/default/tftpd-hpa

TFTP USERNAME="tftp'
TFTP ADDRESS=":69"
TFTPDIRECTORY="/home/11/stp/out"  //存放 u-boot-dtb.imx 的绝对路径
TFTP OPTIONS="--secure

        19. 启动服务:sudo service tftpd-hpa restart

  20.验证

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值