STM32嵌⼊式:⼏种烧录⽅式
STM32嵌⼊式:⼏种烧录⽅式
⽬录
ISP
1. 这种和下⼀种烧录⽅式就是我们常说的BootLoader,通过⼀段引导代码来将我们要烧录的程序通过串⼝烧写进⼊单⽚机的Flash。但 是与IAP烧录⽅式不同的是,这段引导代码是ST公司在芯⽚出⼚前就固化在内部的,我们是需要按照给出的⽂档说明操作就⾏了。2. ISP⽀持的下载接⼝有: ⽅式协议说
明
软件链
接
备注
USART据说官⽅的软件很不好⽤,不如⽤Flymcu CAN没⽤过
I2C不是很常⽤,反正我是没⽤过
USB 这种⽅式⼜称为DFU,仅F4极其以上和互联⽹型的F1⽀持;其它若想⽀持,1.有USB接⼝2.需要⾃⼰写引导程序利⽤下⾯所说的IAP⽅式
具体哪些型号的微控制器⽀持哪种⽅式,在各个芯⽚的referfence mannul中提到,同时也提到了。
3. 每次下载都需要进⼊⾃举模式,就是把boot0置1,boot1置0,然后再上电。
4. 随着微处理器性能逐渐提升和成本下降,USB的DFU模式肯定使⽤越来越⼴泛,最重要的是,下载速度快。
IAP
1. 这⼀种下载⽅式就是和上⼀段差不多;不同的地⽅在于:需要⾃⼰写引导代码,虽然这样⽐较⿇烦,但是可以⾃定义下载⽅式和协
议,并且可以通过代码控制,进⾏⾃动处理,不需要⼿动上电。
2. 本⼈就做过的东西简要说⼏点注意事项:
1. Flash中可以放置⼀段IAP程序+多段APP程序,要注意IAP程序起点是在0x08000000处;其它的APP程序要分段放在整个
Flash中,并且每段APP程序的起始地址最好是是sector的倍数;
2. 每次从IAP跳转之前,要关闭所有中断,中断向量表会变化。 3. 每次跳转到APP,⾸先需要更改中断向量表地址。
pass:我⾃⼰再IAP或者APP中实现RTOS时。总是出现莫名其妙的错误和程序跑飞。希望知道的⼤佬能够告知。。。
SW/JTAG
1. 这⼀种需要专门的编程器/调试器,如ST-LINK v2,J-LINK,等系列,⼀般这种设备都具有下载功能和调试功能,并且都⽀持SW模
式和JTAG模式
2. 这种⽅式还可以和IDE结合,实现⼀键下载和调试
3. 这种⽅式还能够在不断电的情况下进⾏操作,不需要更改boot0和boot1的电平。因为这种接⼝是通过引脚直连ARM内核的,拥有较
⾼的权限。
参考⽂章
与 ISP⼀键下载