BeagleBone Black的启动方式介绍

RAM Code:

RAM Code是固化在芯片中的一段代码,当芯片正常上 电时,芯片会首先执行此段代码。 

RAM Code startup:

ROM  Code首先会为自己的运行环境做一些基本的初始化,比如堆栈设置、关门狗设置、时钟设置。————这里只是为ROM Code自身的运行创建最基本的运行环境。

RAM Code Booting:

然后根据SYSBOOT引脚信息创建启动列表,接着根据启动列表按顺序检测可用的启动设备,当检测到可启动设备的的话,就从相应设备运行。当列表检测完之后还没有找到可启动设备,就进入死循环,等待看门狗来复位系统(看门狗在ARM Code startup阶段被设置为3min)。
BeagleBone Black 的 uBOOT 按键与启动列表

由BeagleBone Black的硬件原理图知道uBOOT按键接在BOOTPIN{2}上,按下时为0;根据AM335X系列的技术参考手册可得,

当按下uBOOT时的启动列表为

{SPI0,MMC0,USB0,UART0}

当没有按下时的启动列表为

{MMC1,MMC0,UART0,USB0}

在BeagleBone Black上板载eMMC接在MMC1上,SD卡槽接在MMC0上,故默认情况下BeagleBone Black由板载eMMC启动,当在eMMC上没有找到可启动文件时(RAM Code在MMC下可是支持FAT文件系统的哦,该启动文件就是MLO)就会从接在MMC0上的SD卡启动,按下uBOOT时就不从eMMC启动了 。

BeagleBone Black 的uBOOT 与系统更新的关系:

由上段可知,uBOOT只有改变启动设备的效果,并不决定是否更新eMMC,所以是否更新还是由系统镜像本身来决定的。

BeagleBone Black eMMC 系统更新流程

  1. 把下载好的eMMC系统镜像烧写到SD卡后,在SD卡上便存在两个分区,第一个为FAT32格式的BOOT分区(系统启动后在PC上出现的虚拟优盘便是这个分区),第二个为EXT4格式的ROOTFS分区(即LINUX的根文件系统),SD卡插入卡槽、按下uBOOT(直到4个LED同时点亮,大概一秒钟左右)(有串口的可以接上,可以在通过串口终端观察到相关启动信息),接通USB(供电)。
  2. 这时RAM Code便会选择从SD卡启动,先是找到MLO文件并加载运行,为u-boot.img运行做好环境准备,然后跳转到u-boot运行(此时就可以看到串口终端有信息出现了),接着加载内核运行,当系统运行起来后,便会出现虚拟U盘,同时开始更新eMMC的系统(可以用top命令查看到相关的进程占用大量的CPU资源),当4个LED同时持续性点亮时系统就更新到eMMC了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值