预备
stm32通过boot方式的修改,可以支持三种启动方式, 其他两种比较容易理解,
本文说说通过设置boot引脚来实现ISP串口烧写的基本过程。
ISP烧录原理
ISP烧录的前提是单片机的ROM中固化有boot程序,此程序是用户无法修改的,用来做串口通讯和编程FLASH ROM。
ISP烧录的原理是机器上电时,此时最先运行的就是bootloader的程序,而bootloader的程序运行时首先会检测是否有编程需求,如果有,则与上位机通讯进行FLASH ROM的编程(应用软件的烧写),如果没有,则跳转到应用软件入口运行应用软件。
在STM32中, 该功能需要通过boot引脚去设置从系统存储器启动BootLoader,
在PT32M625中,默认情况下,就是从ROM中去启动。
过程
通过boot引脚选择从系统存储器启动,这种模式启动的程序功能是由厂家设置的。
一般来说,这种启动方式用的比较少。
系统存储器是芯片内部一块特定的区域,STM32在出厂时,在这个区域内部预置了一段BootLoader,也就是我们常说的ISP程序,这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序。
厂家提供的BootLoader包含了串口下载的程序固件,可以通过这个BootLoader将程序下载到系统的Flash中。
该下载方式需要以下步骤:
Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader
Step2:在BootLoader的帮助下,通过串口下载程序到Flash中
Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动
利用串口下载程序比较的麻烦,需要跳帽跳来跳去的,非常的不注重用户体验,一般主要应用在引脚紧张的芯片上。