发布网友 发布时间:3小时前
共1个回答
热心网友 时间:8分钟前
ISP方式下载程序原理
ISP:In System Programing,在系统中编程
在STM32F10xxx系列单片机中,有三种启动方式,ISP方式下载程序要求将BOOT0引脚设置为1,BOOT1引脚设置为0,从而从系统存储区启动。
为什么设置从系统存储区启动,就能使用串口来下载程序?因为芯片出厂前,ST官方已经在系统存储区固化了一段自举程序(BootLoader程序)。
例如STM32F103ZET6型号,系统存储区的起始地址为0x1FFFF000,该存储区用于存放自举程序。自举程序通过串口接收数据,并将数据烧写到用户闪存存储器的起始地址(0x08000000)。
用户闪存,即Main Flash,是存储用户代码的区域。
自举程序源码未公开,用户不可修改。在IAP实验中,IAP程序通过FlyMCU软件进行烧录,烧录的地址为0x08000000。
不同型号的STM32固化的自举程序不同,通讯接口也不同。如STM32F1xxx系列仅支持USART1,而STM32F4xxx系列则支持USART1、USART3、CAN2等接口。
ISP与IAP有何区别?从功能上看,ISP与IAP都用于引导加载程序。ISP程序用于把程序更新到0x08000000地址上,IAP程序则用于更新应用程序。
STM32内部Flash分为System Flash和User Flash两部分。System Flash内存放自举程序(ISP程序),无法修改;User Flash用于存放用户代码。
可以通过将User Flash分为两部分,一部分用于烧写IAP程序,另一部分用于烧写应用程序。ISP程序和IAP程序之间的关系如下图所示。
ISP程序与应用程序之间的关系也如下图所示。
ISP方式下载程序原理在于利用系统存储区的自举程序,通过串口将用户代码烧写到用户闪存存储器。ISP程序与IAP程序在功能和操作上有所区别,需正确区分。