1. 内存分配
将单片机整个Flash存储区域划分为三块,最低地址处用于存放BootLoader代码,上电自动执行本段代码。要注意的是某些型号的单片机上电默认从最高地址处开始执行代码,那么BootLoader代码存储区就应该放在最高地址处。BootLoader代码后的一小块区域用来存放数据和一些标志位,BootLoader代码和APP代码共用该部分空间。其余空间用于存放APP。
英飞凌XC2300系列单片机有两块Flash,地址如下:
因为单片机上电从0xC00000地址处开始执行代码,所以BootLoader程序存放在0xC00000-0xC0BFFF,0xC0C000-0xC0FFFF用作数据存储区,C10000-C3FFFF用来存放APP,Flash1因为代码量比较小没有用到。
XC2300可以在Keil工程中定义所使用的Flash区域,就不用通过连接脚本定义了,方便了一些。定义方法如下:
BootLoader代码的Keil工程中进行如下设置: