看了几篇bootloader分析的文章,现总结一下我对bootloader的认识。
bootloader这里简称bl,bl的作用就是负责引导内核启动。一般分为两种启动模式“启动加载”和“下载启动”。
分为stage1 and stage2 两个部分。stage1初始化cpu和其他硬件,一般使用汇编编写。stage2用c语言编写,具有复杂的功能,具有可读性和可移植性。
启动过程:
1)定义入口地址,放在rom中0地址处,可以通过链接脚本来设置。
2)设置异常向量表,放在内存0处。当异常发生时,pc指针跳转到向量表中定义的异常处理例程处。