打印
[STM32F4]

如何让程序从指定的flash地址开始运行?

[复制链接]
4360|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lsdavid|  楼主 | 2015-1-8 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我需要在F407内部flash里保存一些数据,所以希望能把程序存在sector11的128K,这样sector0~sector10就可以做存储用。不过从网上查了一下,好像sector0的开始部分一定会保留给向量跳转语句。[size=13.63636302948px]哪位高人给指点一下是否是这样?如果是的话,是不是我设置target里的IROM1地址就可以指定程序从哪里开始了(也就是程序存储从那里开始)?[size=13.63636302948px]有没有可能把向量跳转部分一起指定到其他地方?请高手赐教!
沙发
airwill| | 2015-1-8 19:50 | 只看该作者
由于 mcu 的硬件已经设置了程序入口地址和中断向量表地址, 所以 MCU 复位后自动会到sector0的开始部分获得堆栈指针和程序复位起始地址, 所以在 sector0 一定会保留给向量跳转语句。

使用特权

评论回复
板凳
lsdavid|  楼主 | 2015-1-12 08:27 | 只看该作者
多谢版主回复,那是不是说除了sector0,其他的就可以随意用了?如果我需要程序存储在sector11,是不是我设置target里的IROM1地址就可以指定程序从那里开始了?

使用特权

评论回复
地板
diweo| | 2015-1-12 08:42 | 只看该作者
本帖最后由 diweo 于 2015-1-12 08:45 编辑
lsdavid 发表于 2015-1-12 08:27
多谢版主回复,那是不是说除了sector0,其他的就可以随意用了?如果我需要程序存储在sector11,是不是我设 ...

是的。
不过,在Keil里面怎么设置,我不太清楚,应该也是可以的。

使用特权

评论回复
5
bing50200214| | 2015-5-11 16:52 | 只看该作者
求教, keil mdk中怎么设置

使用特权

评论回复
6
gmm2015| | 2015-5-11 18:22 | 只看该作者
这种应用,一般都会把要存放的数据存放到最后的一个或者几个sector中

使用特权

评论回复
7
lsdavid|  楼主 | 2015-5-18 14:16 | 只看该作者
gmm2015 发表于 2015-5-11 18:22
这种应用,一般都会把要存放的数据存放到最后的一个或者几个sector中

后面的几个sector比较大,每次擦除的时间太长,因为数据量不是很多,所以我觉得放在前面的sector好像更好一些。

使用特权

评论回复
8
wowow| | 2015-5-18 16:31 | 只看该作者
设置target里的IROM1为sector0的地址范围,IROM2为SectorX至flash未尾,这样secotor1到sectorX-1就空出来了,想干啥随便。

使用特权

评论回复
9
lsdavid|  楼主 | 2015-5-19 12:23 | 只看该作者
wowow 发表于 2015-5-18 16:31
设置target里的IROM1为sector0的地址范围,IROM2为SectorX至flash未尾,这样secotor1到sectorX-1就空出来了 ...

这个方法应该可行,我试验一下,多谢了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

62

帖子

0

粉丝