ARM Bootloader实现与编程指南

需积分: 10 1 下载量 39 浏览量 更新于2024-07-28 收藏 121KB PDF 举报
"ARM Bootloader的实现.pdf" 本文档主要探讨了ARM架构下Bootloader的实现,特别是针对Cirrus Logic的clps7111和Ep9312系列ARM核心处理器的Bootloader设计。Bootloader是嵌入式系统中的关键组件,负责在系统上电或复位后执行最初的初始化任务,以便加载操作系统或应用程序到内存中执行。对于这些特定的ARM芯片,它们内置了一个128字节的小型Boot程序,简化了操作系统的部署和更新过程。 Boot程序的主要功能包括: 1. 设置串行通信参数:配置波特率9600,数据位8,无奇偶校验,停止位1。 2. 发送一个特定字符,通常作为启动信号。 3. 接收通过串行口传来的2K字节Bootloader代码。 4. 发送另一个字符,如'>',指示接收完成。 5. 跳转到接收到的2K字节代码并执行。 烧录操作系统的步骤涉及以下步骤: 1. 连接ARM目标板的串行端口与PC的对应端口,并确保GND共地。 2. 使用内置Boot程序引导ARM目标板。 3. 在Windows NT 4.0控制台中,设置串行口参数为9600波特率、8位数据、无奇偶校验、1个停止位。 4. 将Bootloader二进制文件发送到串行口,使用'/b'标志指定二进制传输。 5. 修改串行口参数为115200波特率,以匹配Bootloader的设置。 6. 将VxWorks操作系统映像发送到串行口,同样使用'/b'标志。 7. 关闭ARM目标板电源,设定其从Flash启动。 8. 重新启动,进入VxWorks操作系统。 2K字节的Bootloader主要职责: 1. 硬件初始化:包括时钟、内存、I/O设备等基本系统的配置。 2. 通过串行口接收VxWorks的二进制映像,并将其写入Flash存储器。 3. 显示进度或错误信息,提高调试过程的可见性。 传统观点认为Bootloader应采用纯汇编语言编写,以确保效率和对硬件的直接控制。然而,文档提到了C和ASM混合编程的方式,这意味着开发者可以结合C语言的可读性和汇编语言的性能优势来编写Bootloader。这样的混合编程方法在保证性能的同时,提高了代码的可维护性和可读性。 ARM Bootloader的实现是一个涉及硬件初始化、串行通信和二进制文件加载的关键过程,而C和ASM的混合编程策略则提供了一种平衡效率和可读性的解决方案。在实际开发中,理解Bootloader的工作原理和编写技巧对于成功构建和调试嵌入式系统至关重要。