ISP的过程
在ISP(In-System Programming,系统内编程)过程中,BootLoader扮演了非常重要的角色。以下是BootLoader在ISP过程中的作用和相关说明:
### BootLoader在ISP过程中的角色
1. **提供通信接口**:
- BootLoader程序通常包含一个通信接口(如UART、USB等),用于与外部设备(如电脑)进行通信。在ISP过程中,这个通信接口用于接收用户通过烧录工具发送的程序代码(如Hex文件)。
2. **初始化硬件**:
- BootLoader负责初始化芯片的基本硬件设备,如时钟、串口等,以确保系统能够正常运行。这为后续的程序下载和执行提供了必要的硬件支持。
3. **擦除和写入Flash存储器**:
- BootLoader程序会根据接收到的指令,擦除芯片内部Flash存储器中旧的程序代码,然后将新的程序代码写入到指定的地址。这个过程是ISP的核心操作,确保新的程序能够正确存储在芯片中。
4. **跳转到用户程序**:
- 一旦新的程序代码成功写入Flash存储器,BootLoader会将控制权交给用户程序。这意味着芯片将从用户程序的入口点开始执行,完成启动过程。
### ISP过程中的存储区域
- **系统存储器(System Memory)**:
- 系统存储器是芯片内部的一个特殊区域,用于存放BootLoader程序。这个区域通常由芯片厂在出厂时预置,并且锁死,用户无法修改。
- **主Flash存储器(Main Flash Memory)**:
- 主Flash存储器是芯片内部的主要存储区域,用于存放用户程序。在ISP过程中,BootLoader会将新的程序代码写入到主Flash存储器中,而BootLoader本身不会被改动。
### ISP过程的步骤
1. **设置启动模式**:
- 通过设置芯片的Boot引脚(如BOOT0、BOOT1)为特定状态,使芯片从系统存储器启动。例如,STM32芯片可以通过设置BOOT0为高电平、BOOT1为低电平,从系统存储器启动BootLoader。
2. **启动BootLoader**:
- 芯片复位后,BootLoader程序开始运行,初始化硬件并等待通信接口的指令。
3. **下载程序代码**:
- 用户通过烧录工具(如STC-ISP、STM32CubeProgrammer等)将Hex文件发送到芯片,BootLoader通过通信接口接收程序代码。
4. **擦除和写入Flash**:
- BootLoader擦除主Flash存储器中的旧程序代码,并将新的程序代码写入到主Flash存储器。
5. **跳转到用户程序**:
- 程序下载完成后,BootLoader将控制权交给用户程序,芯片开始执行新的程序。
### 总结
在ISP过程中,BootLoader的作用是提供通信接口、初始化硬件、擦除和写入Flash存储器,并最终跳转到用户程序。BootLoader本身存储在系统存储器中,不会被改动,而用户程序则被写入到主Flash存储器中。
其他方式 IAP 和 ICP
【单片机开发】单片机的烧录方式详解(ICP、IAP、ISP)_isp烧录-CSDN博客