Bootloader启动大多数都分为两个阶段.第一个阶段主要包含依赖于CPU的体系结构硬件初始化的代码,通常都用汇编语言来实现。这个阶段的任务有:
1、基本的硬件设备初始化(屏蔽所有的中断、关闭处理器内部指令/数据cache等)。
2、为第二阶段准备RAM空间。
3、如果是从某个固态存储煤质中,则复制Bootloader的第二阶段代码到RAM。
4、设置堆栈。
5、跳转到第二阶段的c程序入口点。
特别注意的地方:
在第一阶段中为什么要关闭cache?通常使用cache以及写缓冲是为了提高系统性能。但由于cache的使用可能改变访问主存的数量、类型和时间,因此Bootloader通常是不需要的。
第二阶段通常用C语言完成,以便实现更复杂的功能,也使程序有更好的可读性和可移植性,这个阶段的任务有:
1、初始化本阶段要使用到的硬件设备。
2、检测系统内存映射。
3、将内核映像和根文件系统映像从Flash读到RAM。
4、为内核设置启动参数。
5、调用内核。
关键字:ARM9 Bootloader 启动流程
引用地址:
ARM9 Bootloader的启动流程
推荐阅读最新更新时间:2024-10-31 15:55
最简单bootloader的实现与分析
学习嵌入式,我是从bootloader入手的。前些日子写了一个bootloader,趁今天有时间发出来,以记录自己实现的过程,巩固所学到的知识,并且希望给需要帮助的人带来一些灵感,如果有不对的地方,还望大家能给予指正。 操作系统:Ubuntu 11.04 开发板:友善之臂mini2440 (如果用其它s3c2440或s3c2410 cpu的也差不多,大同小异) 串口调试终端:minicom 编译器:GNU工具链 先修知识:arm汇编,c语言,GNU汇编的一些特殊伪指令,makefile,链接脚本等知识。对于我的这个bootloader,这些知识除C语言外,其它的能看得懂,会一些基本的东西就足够了。 学习一门
[单片机]
ARM7、ARM9、ARM11、ARM-Cortex的关系
1. ARM7、ARM9、ARM11、ARM-Cortex的关系 ARM7:ARMv4架构,ARM9:ARMv5架构,ARM11:ARMv6架构,ARM-Cortex 系列:ARMv7架构 ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统, 因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间 。ucOS、ucLinux这些精简实时的RTOS不需要MMU,当然可以在ARM7上运行。 ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行诸如Linux等多用户多进程的操作系统,应用场合也不同于ARM7。 到了ARM
[单片机]
基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案
随着高科技技术逐渐融入到传统的农副业,温室培养已成为生产反季节作物的方式。介绍了基于S3C2410处理器的温室监测控制系统的设计,并设计了一种基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案,用户通过以太网对温室内的环境进行监测和一些设备的控制,提高远端机器的安全可靠性。 随着经济的快速发展和科技的进步,人们的生活水平不断提高,对生活质量的要求越来越高,对春茶的需求也大大增加。使得春茶供不应求,从而提出了温室培养茶树,以缓解人们对春茶的需求。 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚
[单片机]
基于ARM9和USB摄像头的网络视频采集系统设计
0 引言 通信网络已经普及到人类生活的各个方面,布控区域广阔的网络视频采集系统也在迅速的发展,嵌入式视频采集系统的服务器直接连入已经建成的网络,既没有线缆长度的限制,也没有信号衰减的限制,通过没有距离概念的网络,彻底抛弃了地域的限制。系统具有几乎无限的无缝扩展能力,所有设备都以IP地址划分,增加设备只是意味着IP地址的增加,可组成非常复杂的视频采集系统,服务器输出的视频数据已完成模拟到数字的转换并压缩,采用TCP/IP协议在网络上传输,支持跨网关、跨路由器的远程视频信息传输。 本文根据网络视频采集的需要,将网络传输与视频采集相结合,设计了以S3C2440为核心的USB摄像头视频采集和嵌入式Linux系统下的视频服务器,从而实
[单片机]
单片机程序远程升级的设计
1.引言 单片机的应用非常广泛,在某些情况下,单片机内部程序的升级在所难免,但是往往需要对单片机产品进行收回才能实现,这样在一些远程设备的程序升级问题上就显得非常不方便。但是有些远程设备本身留有远程通讯的方式:例如某些远程数据传输模块,为了把数据上报总会留有通讯的接口,比如422、485甚至 GPRS或者局域网接口;又或者某些车载定位设备,为了和监控中心通讯会留有GSM、CDMA或者GPRS等通讯方式。在这种情况下就可以利用其现有的通讯方式对其内部单片机程序进行升级而不需要收回产品。 本文的主要内容就是来研究这种远程升级单片机程序的方法。 由于近年来凌阳科技的单片机,尤其是16位单片机,得到了越来越多的推广,其应用领域越来越
[单片机]
OpenCV2.0.0移植到ARM9(二)(JZ2440----S3c2440)
1、交叉编译libjpeg 为了使OpenCV能处理jpeg图像,我们必须事先交叉编译好libjpeg这里使用的版本是jpegsrc.v6b。 下载地址:https://sourceforge.net/projects/libjpeg/files/libjpeg/6b/ 这里使用的安装包:jpegsrc.v6b.tar.gz。 (1)解压、配置 jpegsrc.v6b.tar.gz放在/work/system/目录下. 解压:$tar –zvxf jpegsrc.v6b.tar.gz 进入目录:$cd jpeg-6b 在/work/system/目录下新建一个libjpeg-arm目录,命令为:$sudo mkdir
[单片机]
STM32 Bootloader 跳转
1. Bootload #define ApplicationAddress 0x08003000 2. App 修改
[单片机]