打印

BeagleBone Black——AM335X——启动流程

[复制链接]
535|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
FCCdsp|  楼主 | 2017-10-2 16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
BeagleBone Black——AM335X——启动流程


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


相关帖子

沙发
isseed| | 2017-10-2 22:50 | 只看该作者

使用特权

评论回复
板凳
isseed| | 2017-10-2 22:53 | 只看该作者
AM335X嵌入式开发流程都有,uboot开发。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

967

主题

1447

帖子

9

粉丝