ARM Bootloader 实现与功能解析

需积分: 10 0 下载量 100 浏览量 更新于2024-11-10 收藏 121KB PDF 举报
"ARM.Bootloader.pdf - ARM Bootloader的实现及C和ASM混合编程" 在嵌入式系统中,Bootloader扮演着至关重要的角色,它是系统启动过程中的第一段可执行代码,负责初始化硬件环境并加载操作系统。针对ARM架构的处理器,Bootloader的实现通常涉及到C语言和汇编语言的混合编程,以充分利用两者的优点,实现高效且可读性强的代码。 ARM Bootloader的主要功能如下: 1. **设置串行通信参数**:Bootloader首先会配置CPU内部的串行接口,如设置波特率、数据位、奇偶校验和停止位。例如,设置为9600波特、8位数据、无校验、1位停止位,便于与外部设备进行通信。 2. **发送识别信号**:Bootloader通过发送特定的字符(如<)通知外部设备它已准备接收数据。 3. **接收Bootloader程序**:接下来,Bootloader将接收2K字节的Bootloader程序,通常是通过串行口传输。 4. **发送确认信号**:接收完毕后,Bootloader会发送另一个字符(如>),表示已经准备好执行接收到的程序。 5. **执行接收到的程序**:Bootloader会跳转到接收的2K字节程序开始执行,这部分程序可能包含更复杂的初始化任务和操作系统的加载。 烧录操作系统的步骤包括: 1. **硬件连接**:将ARM目标板的串行端口与PC的串行端口连接,确保RX和TX线交叉连接,GND接地。 2. **引导Bootloader**:通过预置的内置Boot程序引导ARM目标板。 3. **配置串行端口参数**:在主机操作系统(如Windows NT 4.0)的控制台中,调整串行口参数以匹配Bootloader的设置。 4. **传输Bootloader**:使用`copy/b`命令将Bootloader的二进制文件通过串行口发送到ARM目标板。 5. **调整串行口参数**:再次调整串行口参数,以适应VxWorks映像的传输速度(如115200波特)。 6. **传输VxWorks映像**:将VxWorks操作系统的二进制映像通过串行口发送到目标板。 7. **设置启动源**:断电后,重新配置ARM目标板以从Flash启动。 8. **重启并运行**:上电后,Bootloader将执行其主要任务,包括但不限于: - **硬件初始化**:对系统中的其他硬件模块进行初始化,如内存控制器、中断控制器等。 - **接收并写入VxWorks映像**:从串行口接收完整的VxWorks操作系统映像,并将其存储到Flash存储器中。 - **显示提示信息**:在接收和写入过程中,Bootloader可能会通过串行口输出一些状态信息,以便于调试和监控。 Bootloader通常使用C和ASM混合编程,因为C语言提供更好的可读性和模块化,而汇编语言则能更直接地控制硬件,提高代码效率。在编写Bootloader时,开发者需要熟练掌握这两种语言,以及对ARM架构的深入了解,以便在有限的资源下编写出高效的初始化代码。