STM32IAP技术
内存
1、程序存储在0x0800 0000。
2、程序从0x0000 0000开始执行。
3、0x0000 0000和0x0800 0000 相互映射。
4、厂商自带的Bootloader存在系统存储区。地址为0x1FFF F000
5、不同容量单片机闪存大小不同,对于主存储闪存容量不多于512KB的GD32F30x_CL和 GD32F30x_HD,闪存页大小为2KB。对于GD32F30x_CL和GD32F30x_XD,使用了两片闪存; 前512KB容量在第一片闪存(bank0)中,后续的容量在第二片闪存(bank1)中。其中bank0 的闪存页大小为2KB,bank1的闪存页大小为4KB。主存储闪存的每页都可以单独擦除。
6、小端存储,0x1234 34存在前边 12存在后边。
7、数据擦除只能半页擦除或者全页擦除,只能擦除主存储块。选项字节不会被擦除。
ISP
1、内置Bootloader存放地址0x1FFF FFFF。
2、软件跳转
3、硬件跳转 BOOT0引脚。①:串口一键下载电路②:按键一键修改Boot0电平。
4、协议传输。
自己理解
1、系统Bootloader就是一个系统的程序。有独特的自己的命令,然后执行相关命令,跳转等。
2、但是是要自己进入系统Bootloader的。就是系统要跳转到相应的地址。比如互联型产品要跳转到0x1FFF B000。然后才能执行相应的命令。
3、APP区是要自己进行烧写的。(可以通过系统自带的Bootloader进行烧写)。
IAP
1、单片机从0x0800 0000开始执行
2、检查是否需要更新。更新Flag标注位。
3、接收程序
4、烧写程序
5、程序跳转。
APP区
1、中断向量表的重映射
2、升级判断 ①:config置位②:复位系统
3、MDK keil APP hex文件起始地址