首先设置程序的启动地址,STM32默认的启动地址是从0x8000000开始的,现在我要设置程序向后偏移10K地址,也就是从0x8002800启动。
需要分两步完成上面操作:
一.Keil MDK设置;
设置keil MDK的target
设置flash download。
二.设置程序偏移量
程序偏移量在system_stm32f10x.c代码中。
这里大小和前面keil相对应。
至此STM32启动地址设置完成。但是这个重新只能通过boot loader跳转执行这段程序,无法在线调试。
/*******************************************************************************************************************************************
前部分介绍到此。现在介绍非0x800000 开始调试程序
******************************************************************************************************************************************/
为此我们需要设置下mdk的flash算法即可实现在线调试
修改方法:打开keil安装目录E:\Keil_v5\ARM\Flash(软件路径不一定相同)。
然后打开启动工程:
程序修改ok后编译,会生成STM32F10X_512.FLM
这样我们的mdk的flash算法设置完成。
我们可以在E:\Keil_v5\ARM\Flash找到生成的文件:
到此我们从非0x800000 开始调试程序完成。