ARM9 Bootloader的启动流程

    Bootloader启动大多数都分为两个阶段.第一个阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:
    1、基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据cache等)。
    2、为第二阶段准备RAM空间。
    3、如果是从某个固态存储煤质中,则复制Bootloader的第二阶段代码到RAM。
    4、设置堆栈。
    5、跳转到第二阶段的c程序入口点。
    特别注意的地方:

    在第一阶段中为什么要关闭cache?通常使用cache以及写缓冲是为了提高系统性能。但由于cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。

第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性,这个阶段的任务有:

1、初始化本阶段要使用到的硬件设备。

2、检测系统内存映射。

3、将内核映像和根文件系统映像从Flash读到RAM。

4、为内核设置启动参数。

5、调用内核。

猜你喜欢

转载自blog.csdn.net/MyLovelyJay/article/details/88396996