stm32的M3程序启动地址问题

2019-07-14 13:26发布

最近开发一个项目,使用STM32F207片子,遇到特殊需求需要用前面4个扇区64K做参数配置存储使用(主要是需要读写操作),请问程序是否可以从0x8010000的地址或者其他非0扇区(0x8000000)启动?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
60user183
1楼-- · 2019-07-16 05:56
亲爱的娜娜 发表于 2019-3-26 16:20
这里只修改 0x8000000 为 0x8010000 ,其他的不要改变。

这样更不行,我一开始就是这样尝试过了
60user183
2楼-- · 2019-07-16 06:48
 精彩回答 2  元偷偷看……
TOPCB
3楼-- · 2019-07-16 12:31
可以。通过设置启动向量。NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
60user183
4楼-- · 2019-07-16 17:34
不可以哦,
我把SystemInit最后那里的SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET;跟你的NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);是一样的效果
程序一开始调试r15(pc)的值为0xfffffffe
如果不设置flash偏移按常规的从0扇区启动的话r15(pc)值为0x8001bf4,可以正常调试运行的
亲爱的娜娜
5楼-- · 2019-07-16 21:24
60user183 发表于 2019-3-26 16:31
这样更不行,我一开始就是这样尝试过了

先写个简单的测试程序把其他的代码都去掉比如点亮LED看可不可以,调试看下中断向量表是否放到0x8010000处。
TOPCB
6楼-- · 2019-07-17 02:05
不光要代码,工程配置也要改。

一周热门 更多>