STM32F103VET6的内核是CortexM3,它的存储系统采用统一寻址方式,程序存储器、数据存储器、寄存器和输入输出接口被组织在同一个4 GB的线性地址空间内。存储空间被分成8个主要块,每个块为512 MB。以STM32F103VET6处理器为例, 图2为代码块和片内SRAM的地址映射图。STM32F103VET6有512 KB的Flash存储空间,地址从008000000至00807ffff;有64 KB的SRAM,地址从020000000到02000ffff。
通过设置BOOT[1:0]引脚值为00,使STM32F103 VET6上电后从Flash的008000000地址处开始执行代码。
3IAP技术的实现
3.1IAP技术原理
在应用编程(IAP)技术是指MCU在执行用户程序的过程中对片内Flash 的部分区域进行擦写,把真正的用户二进制代码烧写到Flash中。在这里,IAP的程序要实现两个功能: 一是通过GPRS通信接收已经编译链接好的二进制的应用代码到内存;二是将应用代码烧写到片内Flash 中。系统复位后,MCU首先执行IAP和GPRS通信程序,此段代码必须使用硬件烧写器,比如Jlink烧写到MCU中;等待MCU接收并烧写好真正的功能代码后,跳转至此段代码开始执行用户程序。这两段代码都是烧写在片内Flash中,必须保证两段代码的存放区域不能重叠,否则会出现程序覆盖,将无法正确执行用户程序。通过设置标志位,并且存储到Flash中,来判断上电后执行的是IAP程序还是用户程序。