Bootloader的作用、为什么需要Bootloader?
2016-08-09 21:51
162 查看
1、Bootloader的作用
简单的说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。对于Bootloader的启动过程又分为两个阶段stage1和stage2。
stage1全部由汇编编写,它的主要工作是(1)初始化硬件设备、(2)为加载Bootlodader的stage2准备RAM空间(3)拷贝Bootloader的stage2到RAM空间(4)设置好堆栈段为stager2的C语言环境做准备。
stage2全部由C语言编写,其的主要工作是(1)初始化本阶段要使用到的硬件设备(2)将内核映像和根文件系统映像从 flash 上读到RAM (3)调用内核
2、为什么需要Bootloader?
每种不同的CPU体系结构都有不同的Bootloader。除了依赖于CPU的体系结构外,Bootloader还依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,外设芯片类型等。也就是说,对于两块不同的开发板而言,即使他们是基于同一种CPU而构建的,但是如果他们的硬件资源或配置不一致的话,想要在一块开发板上运行Bootloader程序也能在另一块板子上运行,还是需要做修改。
简单的说,BootLoader就是在操作系统运行之前运行的一段小程序。通过这段小程序,可以初始化硬件设备,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统做好准备。对于Bootloader的启动过程又分为两个阶段stage1和stage2。
stage1全部由汇编编写,它的主要工作是(1)初始化硬件设备、(2)为加载Bootlodader的stage2准备RAM空间(3)拷贝Bootloader的stage2到RAM空间(4)设置好堆栈段为stager2的C语言环境做准备。
stage2全部由C语言编写,其的主要工作是(1)初始化本阶段要使用到的硬件设备(2)将内核映像和根文件系统映像从 flash 上读到RAM (3)调用内核
2、为什么需要Bootloader?
每种不同的CPU体系结构都有不同的Bootloader。除了依赖于CPU的体系结构外,Bootloader还依赖于具体的嵌入式板级设备的配置,比如板卡的硬件地址分配,外设芯片类型等。也就是说,对于两块不同的开发板而言,即使他们是基于同一种CPU而构建的,但是如果他们的硬件资源或配置不一致的话,想要在一块开发板上运行Bootloader程序也能在另一块板子上运行,还是需要做修改。
相关文章推荐
- obj.getClass()==JTest.class作用和JTest ad=(JTest)obj为什么需要强制类型转换
- 端口号的作用,及为什么需要端口号
- 为什么需要maven及其作用及其生命周期与入门的构建方法
- 有了函数名为什么还需要函数指针,函数指针有什么作用
- 回程路由 的作用 为什么 什么时候需要回程路由
- 为什么需要内部类,内部类的作用
- jdk1.5为什么需要使用@Override标记,其作用是什么
- Android服务Service详解(作用,生命周期,AIDL)系列文章-为什么需要服务呢?
- 为什么需要bootloader
- Coursera | Andrew Ng (01-week-3-3.7)—为什么需要非线性激活函数?
- Semantic Web:为什么需要语义网?
- 我们为什么需要DTO(数据传输对象)
- 面试题:C++有了malloc/free,为什么还需要new、delete?
- 为什么C初始化链表需要二级指针
- 从头认识Spring-1.1 什么是依赖注入?为什么需要依赖注入?
- 为什么需要在TypedArray后调用recycle
- 为什么CDMA需要对整个网络同步
- 为什么微信撤回消息需要在2分钟以内?(大数据的应用)
- Python 为什么需要使用__name__=='__main__'
- 为什么网站需要个使用手册