stm32的M3程序启动地址问题
最近开发一个项目,使用STM32F207片子,遇到特殊需求需要用前面4个扇区64K做参数配置存储使用(主要是需要读写操作),请问程序是否可以从0x8010000的地址或者其他非0扇区(0x8000000)启动?为啥大家都觉得简单呢,这个没法实现,只能在0x08000000地方增加一级bootloader程序,不然无法实现你的程序在0x08010000处运行。 这个和配置IAP不是很类似么,前面的flash用作bootloader后面的flash用作app使用。
把中断向量表转移到0x8010000后就应该可以了吧。 橙子哥讲解很好
creep 发表于 2015-10-16 18:00
这个和配置IAP不是很类似么,前面的flash用作bootloader后面的flash用作app使用。
把中断向量表转移到0x801 ...
具体怎么个弄法? zhp-345798 发表于 2015-10-17 09:23
具体怎么个弄法?
一般只需要2步操作,比把大象放到冰箱里面还要简单一些。:)
1)重新设置程序的load地址为0x8010000,偏移地址根据需要设置,flash的实际size根据你的芯片大小设置。
2)设置向量表的偏移地址0x10000,在时钟初始化库函数中找到 void SystemInit(void) 设置里面的偏移量 VECT_TAB_OFFSET 为0x10000
即下面的宏定义,
creep 发表于 2015-10-17 10:44
一般只需要2步操作,比把大象放到冰箱里面还要简单一些。
1)重新设置程序的load地址为0x8010000,偏 ...
谢谢creep,我照着你的方法试了下好像不行,第一步:我的mcu是STM32F207VE,512K flash,128K RAM,设置如下图
e:\1.bmp
第二步跟你的一样
程序无法进入调试查看 creep 发表于 2015-10-17 10:44
一般只需要2步操作,比把大象放到冰箱里面还要简单一些。
1)重新设置程序的load地址为0x8010000,偏 ...
不会发图片。。不好意思
IROM1:0X80000000X10000
default勾上 IROM2:0X80100000X30000 startup选中
IRAM1:0X200000000X10000
default勾上 IRAM2:0X200100000X10000 这个可要弄好,不然出问题就是神奇的问题:lol zhp-345798 发表于 2015-10-17 11:34
不会发图片。。不好意思
IROM1:0X80000000X10000
default勾上 IROM2:0X80 ...
1、回复时点高级模式
2、然后点击图片图标,点击选中文件上传,上传完了,点击图片缩列图插入到回复的帖子中。
另外,感觉你设置的可能不对。
creep 发表于 2015-10-17 11:44
1、回复时点高级模式
2、然后点击图片图标,点击选中文件上传,上传完了,点击图片缩列图插入到回复的帖 ...
第一个设置是这样的