简单初级bootloader的步骤

本文详细介绍了Bootloader的启动过程,包括从上电到启动C语言入口函数的各个步骤,涵盖了汇编及C语言阶段的主要任务,如内存初始化、MMU配置、image解压等。

1. 上电,start

2. disable watchdog,

3. disable interrupt,

4. set中断矢量地址,

5. 如果有mmu, 初始化mmu,

6. 初始化内存和flash控制器, 同时判断内存的size,

7. 使能mmu

8. 拷贝初级image到内存,

 

step 8 之前通常在在nor flash或者rom里面运行, 之后会跳到sdram里面运行. 如果是复杂的二级bootloader,应该是从ram跳到ram, 这个时候,如果需要拷贝image的话, 通常是在使能mmu之前(step 8 is done before step 7).

 

9. 跳转到内存,

10. 初始化stack, bss

11. 可能初始化串口等调试工具

12. 跳转到c语言入口函数

 

以上为汇编部分。

 

13. 初始化malloc,

14. 获取二级image的头,

15. 如果需要解密的话,解密

16. 拷贝二级image到ram

17. 如果该image是压缩的,解压到指定的位置

18. 如果二级image是类似linux这样的操作系统的,分别拷贝kernel和rootdisk到指定的位置。然后跳转到kernel执行。 否则,直接跳转到这个解压后image执行

 

以上为C语言部分。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值