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
  • 相关阅读:
    Java核心技术(初阶)知识点复习——[2]面向对象思想
    Java核心技术(初阶)知识点复习——[1]Java的类结构和main函数
    printStream与printWriter
    java反射的初步探索
    JDKJREJVM的关系
    树链剖分模板
    树状数组模板2
    树状数组模板1
    树状数组+欧拉降幂
    线段树模板二
  • 原文地址:https://www.cnblogs.com/brep/p/13343668.html
Copyright © 2011-2022 走看看