嵌入式爱好者

嵌入式爱好者 门户 知识库 查看内容

335启动过程

2018-1-3 10:55| 发布者: Forever| 查看: 818| 评论: 0|来自: 自创

类目:  >  知识库     文档编号: 159

Rom Code:
    am335x 系列soc在芯片内部的flash中固化了一段代码,称为rom code,在芯片上电或复位后首先执行芯片内部固化的这段代码,这段代码的作用为引导二级bootloader(SPL)的镜像文件到内部sram中运行。
AM335x引导模式:
    所谓AM335x的引导模式其实就是二级bootloder(SPL)镜像的读取方式,刚才提到rom code的作用是将二级bootloader加载到内部的sram运行。那么AM335x的引导方式决定了rom code从什么地方以及通过什么样的方式获取SPL的可执行镜像文件。
    AM335x支持两大类的引导模式,分别为memory模式及外设模式。memary模式可以从NAND flash、NOR flash及eeprom中读取SPL镜像文件并加载到内部sram中运行。外设模式是指rom_code可以通过芯片的一些通信接口(比如EMAC、Serial、USB)获取SPL镜像文件并加载到内部sram中运行。
    am335x的引导模式取决于上电或复位时芯片一组引脚的状态,称作SYSBOOT[15:0]共16位(详见cpu手册4106页)。

rom code的运行流程:

1、 芯片复位后PC指针首先跳转到0x20000地址开始执行rom_code并做芯片的简单初始化
2、 rom_code根据SYSBOOT的配置生成引导设备列表
3、 查看当前的引导类型是memory模式还是外设模式,并通过相应的接口或地址读取SPL
4、 SPL image读取成功,执行SPL镜像,SPL开始运行
5、 SPL image读取失败,尝试启动列表中的下一个外设或接口
6、 若所有外设都没有正确读取到SPL image,则进入死循环(dead loop)等待看门狗复位

SPL(secondary program loader)
SPL作用:
    SPL是紧接着rom_code的第二级bootloader,主要负责板载的部分初始化、加载及运行u-boot

SPL执行流程:

内存重映射
保存启动参数(Dowloaded Image区域:用来保存SPL文件)
CPU的初始化

    设置堆栈区,将会调用C函数来实现CPU的初始化。(6KB Public stack)
    执行s_init()函数,实现CPU的初始化

        给外设设置好PLL和时钟频率等
        使能32-KHz频率的实时时钟
        使能UART0
        初始化定时器
        初始化控制台,通过UART可以查看相关信息
        配置DDR
第三级bootlodar:

    引导内核加载到DDR。




已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-11-27 04:16

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部