zhp-345798 发表于 2015-10-16 17:32:44

stm32的M3程序启动地址问题

最近开发一个项目,使用STM32F207片子,遇到特殊需求需要用前面4个扇区64K做参数配置存储使用(主要是需要读写操作),请问程序是否可以从0x8010000的地址或者其他非0扇区(0x8000000)启动?

zchong 发表于 2015-10-18 13:53:15

为啥大家都觉得简单呢,这个没法实现,只能在0x08000000地方增加一级bootloader程序,不然无法实现你的程序在0x08010000处运行。

creep 发表于 2015-10-16 18:00:43

这个和配置IAP不是很类似么,前面的flash用作bootloader后面的flash用作app使用。
把中断向量表转移到0x8010000后就应该可以了吧。

JackieLaura 发表于 2015-10-16 23:12:52

橙子哥讲解很好

zhp-345798 发表于 2015-10-17 09:23:24

creep 发表于 2015-10-16 18:00
这个和配置IAP不是很类似么,前面的flash用作bootloader后面的flash用作app使用。
把中断向量表转移到0x801 ...

具体怎么个弄法?

creep 发表于 2015-10-17 10:44:59

zhp-345798 发表于 2015-10-17 09:23
具体怎么个弄法?

一般只需要2步操作,比把大象放到冰箱里面还要简单一些。:)

1)重新设置程序的load地址为0x8010000,偏移地址根据需要设置,flash的实际size根据你的芯片大小设置。




2)设置向量表的偏移地址0x10000,在时钟初始化库函数中找到 void SystemInit(void) 设置里面的偏移量 VECT_TAB_OFFSET 为0x10000




即下面的宏定义,



zhp-345798 发表于 2015-10-17 11:28:56

creep 发表于 2015-10-17 10:44
一般只需要2步操作,比把大象放到冰箱里面还要简单一些。

1)重新设置程序的load地址为0x8010000,偏 ...

谢谢creep,我照着你的方法试了下好像不行,第一步:我的mcu是STM32F207VE,512K flash,128K RAM,设置如下图
e:\1.bmp
第二步跟你的一样
程序无法进入调试查看

zhp-345798 发表于 2015-10-17 11:34:18

creep 发表于 2015-10-17 10:44
一般只需要2步操作,比把大象放到冰箱里面还要简单一些。

1)重新设置程序的load地址为0x8010000,偏 ...

不会发图片。。不好意思
                      IROM1:0X80000000X10000
default勾上       IROM2:0X80100000X30000    startup选中

                      IRAM1:0X200000000X10000
default勾上       IRAM2:0X200100000X10000

pwdzsj 发表于 2015-10-17 11:34:19

这个可要弄好,不然出问题就是神奇的问题:lol

creep 发表于 2015-10-17 11:44:07

zhp-345798 发表于 2015-10-17 11:34
不会发图片。。不好意思
                      IROM1:0X80000000X10000
default勾上       IROM2:0X80 ...
1、回复时点高级模式

2、然后点击图片图标,点击选中文件上传,上传完了,点击图片缩列图插入到回复的帖子中。


另外,感觉你设置的可能不对。

zhp-345798 发表于 2015-10-17 11:51:48

creep 发表于 2015-10-17 11:44
1、回复时点高级模式

2、然后点击图片图标,点击选中文件上传,上传完了,点击图片缩列图插入到回复的帖 ...

第一个设置是这样的
页: [1] 2 3
查看完整版本: stm32的M3程序启动地址问题