微芯片PIC16和PIC18设备的FLASH引导加载程序

5星 · 超过95%的资源 需积分: 33 12 下载量 186 浏览量 更新于2024-09-21 1 收藏 813KB PDF 举报
"A FLASH Bootloader for PIC16 and PIC18 Devices-AN851" 本文档介绍了一种针对Microchip的PIC16F87XA和PIC18F系列微控制器的高效BOOTLOADER实现。这些设备内置的增强型FLASH微控制器具有程序内存自我编程的能力,这使得用户能够执行引导加载操作。特别是,像PIC18F452这样的器件设计有专门的"引导块",这部分保护性的程序内存是为引导加载固件预留的。 BOOTLOADER的基本操作: 引导加载器的核心功能是接收通过USART(通用同步/异步收发传输器)模块的数据,该模块配置为异步模式,以兼容RS-232标准。数据经过发送/接收引擎处理,然后写入程序内存进行更新。这一过程允许在不依赖外部编程设备的情况下,远程更新微控制器的固件。 BOOTLOADER的设计目标: 此BOOTLOADER的设计强调了高性能和多功能性,同时尽可能地减少代码空间的占用。尽管针对PIC16F87XA和PIC18F家族的编码有所不同,但它们的功能基本相同。 BOOTLOADER的工作流程: 1. **初始化阶段**:上电或复位后,引导加载器首先检查是否存在需要执行的引导加载请求。这通常通过特定的输入引脚状态或特定的程序存储器区域的标志来检测。 2. **通信接口**:一旦检测到引导加载请求,BOOTLOADER通过USART与主机系统建立连接,等待接收新的固件数据。 3. **数据接收**:主机系统通过RS-232协议将固件数据分块发送给微控制器。这些数据可能包括校验和,用于验证数据在传输过程中没有错误。 4. **数据验证与存储**:BOOTLOADER接收到数据后,会验证其完整性,然后将数据写入程序内存的指定区域。这个过程可能涉及到擦除、编程和验证等多个步骤。 5. **跳转到应用代码**:一旦固件更新完成,BOOTLOADER会跳转到新固件的入口点,执行应用程序代码。 安全性和保护机制: 为了确保固件的安全性,引导加载器通常有保护机制,防止未经授权的访问或修改。例如,可以设置保护位来锁定引导块,防止其被意外或恶意修改。 总结: AN851应用笔记提供了一个强大且节省空间的BOOTLOADER实现,适用于Microchip的PIC16和PIC18系列微控制器。这种BOOTLOADER使得在系统编程变得更加便捷,增强了设备的可升级性和灵活性,同时也考虑到了代码效率和安全性。