arm嵌入式bootloader启动过程详解
启动内存管理、任务调度、加载驱动程序等,最后执行应用程序或等待用户命令;对于没有操作系统的系统直接执行应用程序或等待用户命令。
启动代码是用来初始化电路以及用来为高级语言写的软件做好运行前准备的一小段汇编语言,在商业实时操作系统中,启动代码部分一般被称为板级支持包,英文缩写为BSP。它的主要功能就是:电路初始化和为高级语言编写的软件运行做准备。系统启动流程如图1所示,主要的过程如下:
1. 启动代码的第一步是设置中断和异常向量。
2. 完成系统启动所必须的最小配置,某些处理器芯片包含一个或几个全局寄存器,这些寄存器必须在系统启动的最初进行配置。
3. 设置看门狗,用户设计的部分外围电路如果必须在系统启动时初始化,就可以放在这一步。
4. 配置系统所使用的存储器,包括Flash,SRAM和DRAM等,并为他们分配地址空间。如果系统使用了DRAM或其它外设,就需要设置相关的寄存器,以确定其刷新频率,数据总线宽度等信息,初始化存储器系统。有些芯片可通过寄存器编程初始化存储器系统,而对于较复杂系统通常集成有MMU来管理内存空间。
5. 为处理器的每个工作模式设置栈指针,ARM处理器有多种工作模式,每种工作模式都需要设置单独的栈空间。
6. 变量初始化,这里的变量指的是在软件中定义的已经赋好初值的全局变量,启动过程中需要将这部分变量从只读区域,也就是Flash拷贝到读写区域中,因为这部分变量的值在软件运行时有可能重新赋值。还有一种变量不需要处理,就是已经赋好初值的静态全局变量,这部分变量在软件运行过程中不会改变,因此可以直接固化在只读的Flash或EEPROM中。
7. 数据区准备,对于软件中所有未赋初值的全局变量,启动过程中需要将这部分变量所在区域全部清零。
8. 最后一步是调用高级语言入口函数,比如main函数等。
三. 程序分析
下面根据实际经过测试的代码详细讲述系统的启动过程。
.text /*将此操作符开始的代码编译到代码段或代码段子段中*/
/* 集成开发环境(IDE)可以通过链接脚本文件将下面的语句定位在零起始地址,系统上电后CPU从此处开始执行*/
ENTRY:
b ResetHandler /*跳至ResetHandler,此句被定位在零起始地址*/
/*除用户模式外的其他6种模式称为特权模式。特权操作模式主要处理异常和监控调用(有时称为软件中断),它们可以自由的访问系统资源和改变模式。特权模式中除系统模式以外的5种模式又称为异常模式,下面的代码用于出现异常时CPU
基于ARM的嵌入式系统Bootloader启动流程分析_信息与通信_工程科技_专业资料。嵌入式系统启动流程分析基于ARM 的嵌入式系统 Bootloader 启动流程分析来源:西部工控网 ...
基于ARM 的嵌入式系统 Bootloader 启动流程分析万永波 1 张根宝 1 田泽 2 杨峰 1 (1:陕西科技大学电气与电子工程学院,陕西省咸阳市人民西路 49 号,712081 2...
(嵌入式与 SOC)2005 年第 21 卷第 11-2期 基于 ARM 的嵌入式系统 Bo o tlo a d e r 启动流程分析S tartupCodeAnalyzeofEmbeddedSystem’Bootloaderbasedon...
中文核心期刊 《 微计算机信息)嵌入式与 SC20 年第 2 卷第 1-期(O)05112 基于A M的R 嵌入式系 otae 启动流 析挽B oldro 程含SatCdAazoEeddsm’Boldr ...
(2006)11-2-0139-04 ARM开发与应用 基于 ARM 的嵌入式 Bo o tLo a d e r 设计与启动过程DesignandStartupProcessofBootloaderBasedontheARM32BitEmbedded...
中最重要的环节之一.介绍嵌入式系统中Boodoader的基本概念和功能、及一般Bootloader的启动过程:并重点分析了U-boot在ARM S3C2410嵌入式系统中的启动过程和移植过程。...
ARM Linux bootloader 启动过程l_信息与通信_工程科技_专业资料。ARM Linux ...在嵌入式系统开发的过程中,很大一部分精力都是花在 bootloader 和 Linux 内核的...
基于ARM嵌入式系统的Bootloader启动分析与移植_信息与通信_工程科技_专业资料。...U-boot与 大多 Bootloader 项目启动和移植过程类似, 以下内容 分析了 U-boot在...
基于ARM的嵌入式系统BootLoader的编译与启动分析_专业资料。近年,嵌入式技术已...因此,根据Linux系统的编译环境及嵌入式系统的编程特点,针对BootLoader的编译过程...
基于ARM的嵌入式系统BootLoader的编译与启动分析 嵌入式系统BootLoader嵌入式系统BootLoader隐藏>> 第7 卷第 1期2740年7 月17一1((7 1一7(61192)45 1碎8X) ...
热门文档