zoukankan      html  css  js  c++  java
  • 君正X2000开发板试用体验之二:君正X2000引导过程分析

    X2000内部集成了32KB Boot ROMCPU上电复位后先执行Boot ROM中的程序。

    X2000芯片上的三个引脚 BOOT_SEL0, BOOT_SEL1, BOOT_SEL2 决定了X2000的启动方式。

    默认情况下,开发板的CON1CON2两个跳线帽连接2-3插针,BOOT_SEL0BOOT_SEL2通过下拉电阻接地,因此默认的启动方式为SFC0@PE3.3V;如果将两个跳线帽连接1-2插针,

    BOOT_SEL0BOOT_SEL2上拉至1.8V则启动方式可以更改为MSC0@PD1.8V

    CPU启动时,首先执行Boot ROM中的代码,引导程序进行一些基本的初始化动作(主要是SPI控制器初始化)之后,将SPI Flash上的辅助程序装载器(Secondary Program Loader, SPL)装入SRAM中。X2000中集成了32K SRAM,其地址范围为0xB2400000 ~ 0xB2408000

    SRAM的内存布局如上图所示,其中开头的4K用于堆栈和数据空间。因此引导程序会跳转到0xb2401000处开始执行SPL代码。spl signature (512B)用于存储启动类型信息,随后的 sc boot keys (1.5K)用于安全引导,spl.text(不到22K512字节对齐)是真正的代码段。

    之所以需要SPL,是因为SRAM数量有限(X2000只有32KB),通常uboot可执行文件的大小远远大于SRAM大小,而此时DRAM尚未初始化,因而DRAM不可用。SPL将初始化DRAM,将uboot装入内存并跳转去执行。

    启动顺序大体上是:

    Boot ROM --> SPL --> uboot --> kernel

    类似于X86 PC的启动顺序:

    BIOS --> MBR --> GRUB --> kernel
  • 相关阅读:
    【NOIP2017】跳房子
    MySQL的多表查询(笛卡尔积原理)
    MySQL的delete误操作的快速恢复方法
    MYSQL高可用集群架构-MHA架构
    mysql数据库的创建问题
    Python中xlrd和xlwt模块使用方法----》》数据库数据导出(之一)
    mysql数据库的批量数据导入与导出,性能提升。
    使用Python对ElasticSearch获取数据及操作
    SQL语句
    ElasticSearch-排序
  • 原文地址:https://www.cnblogs.com/brep/p/13343668.html
Copyright © 2011-2022 走看看