单片机在做OTA升级时需要将编译两个单独工程代码boot、app,其中APP程序的起始地址需要修改主要有以下几个地方:
1、options for Target里面此处
2、VECT_TAB_OFFSET这个定义的偏移量
3、options for Target里面Linker不要勾选Use Memory Layout from Target Dialog,勾选了就表示用系统随机的memory分配方案,找到.sct文件,改为如下:
上面这两处牵扯到变量IRAM1及IRAM2的空间分配,其中IRAM2为CCM智能内核访问,不能DMA访问,如果串口的DMA用到这些地址的变量就会出错,所以这儿要注意。
heap表示堆的存储位置也放到了IRAM2里面