Cortex-A8中bootloader研究(1)

本文档对Cortex-A8芯片Bootloader进行分析研究,借此实现以下三个目的:

  1. 用A8芯片构成一个最小系统需要做哪些配置
  2. 配置的具体流程是什么
  3. 对A8芯片的架构做初步的探讨

综述

AM335X芯片采用SD卡启动时,其SD卡中需放置两个文件:MLO和app。其中,MLO即为bootloader编译产生的bin文件,app为应用层程序编译产生的bin文件。由此猜测,bootloader应该实现两个方面的功能:一是完成配置硬件的配置,搭建运行环境;二是引导应用程序的启动,为应用程序提供入口点。研究验证了这种猜想,对bootloader的论述也围绕这两方面展开。

2.bootloader配置流程

整个bootloader配置流程如下:

3.bootloader中芯片底层配置

如上图所示,bootloader中底层配置经历三个过程,分别是模块电压配置,系统时钟配置以及RAM配置。

3.1电源配置模块

A8芯片的电源系统非常复杂,就目前了解的情况看,分为核心电压区,MPU电压区,AD转换电压等等,各个模块电压供电值亦不相同,需要对其进行配置。beaglebone开发板上采用一枚TP65217电源管理芯片来实现电源的管理,该芯片作用是将5V输入或者USB输入电压转换为各个模块需求电压。如下图所示:

注意,该芯片配置接口为I2C,A8芯片正是通过I2C接口实现对该芯片的访问和配置的,具体的流程,一方面需要配置A8芯片上与TPS65217芯片相连的I2C总线,另一方面需要对该款电源芯片的功能做详细的了解,这两部分尚未深入探讨。

3.2系统时钟的配置

这一部分主要配置系统的时钟,A8的时钟结构较为复杂,从代码上理解,配置的流程依次为:MPU时钟初始化,核心模块时钟初始化,外设时钟初始化,DDR时钟初始化,接口时钟初始化,电源管理区时钟初始化以及显示模块时钟初始化。初始化的流程一定程度上反映了A8时钟模块的结构(类似于树状),这一部分需要花时间去理清。

3.3 外部RAM配置

A8芯片的EMIF(External Memory Interfaces外部存储器接口)模块专门负责对外部RAM的管理,配置该模块即可。
至此,A8底层配置完成,一个最小系统搭建完成。

最小系统搭建完成之后,即可引导进入应用程序,这一部分内容后面再分析。

参与评论 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

iemink

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值