stm32的M3程序启动地址问题

2019-07-14 13:26发布

最近开发一个项目,使用STM32F207片子,遇到特殊需求需要用前面4个扇区64K做参数配置存储使用(主要是需要读写操作),请问程序是否可以从0x8010000的地址或者其他非0扇区(0x8000000)启动?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
Xavier_1995
1楼-- · 2019-07-14 18:29
橙子哥讲解很好

60user183
2楼-- · 2019-07-15 00:22
亲爱的娜娜 发表于 2019-3-26 14:01
这个和配置IAP不是很类似么,前面的flash用作bootloader后面的flash用作app使用。
把中断向量表转移到0x8010000后就应该可以了吧。

具体怎么个弄法?
亲爱的娜娜
3楼-- · 2019-07-15 03:40
60user183 发表于 2019-3-26 14:31
具体怎么个弄法?

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

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




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




即下面的宏定义,

60user183
4楼-- · 2019-07-15 04:54
 精彩回答 2  元偷偷看……
60user183
5楼-- · 2019-07-15 10:24
亲爱的娜娜 发表于 2019-3-26 14:47
一般只需要2步操作,比把大象放到冰箱里面还要简单一些。

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

不会发图片。。不好意思
                      IROM1:0X8000000  0X10000
default勾上       IROM2:0X8010000  0X30000    startup选中

                      IRAM1:0X20000000  0X10000
default勾上       IRAM2:0X20010000  0X10000
60user60
6楼-- · 2019-07-15 10:54
这个可要弄好,不然出问题就是神奇的问题

一周热门 更多>