Keil uVision4 如何修改分散加载文件

[复制链接]
 楼主| leebai_001 发表于 2012-11-26 09:56 | 显示全部楼层 |阅读模式
环境:STM32单片机,使用Keil for arm编译器。
目的:将几个C文件的内容固定在程序FLASH的指定地址上。
例如:
1. Init.c    设置在FLASH的扇区0上,该扇区为本文件独占扇区。
2. Para.c   设置在FLASH的扇区1上,该扇区也是文件独占扇区。
3.其余.c 不止一个,设置在FLASH的扇区2开始的位置,顺序不限,依次排序。
 楼主| leebai_001 发表于 2012-11-26 13:06 | 显示全部楼层
如何将STM32的FLASH 单独分出2个扇区,不写任何程序代码,留出来做参数区来用呢?
 楼主| leebai_001 发表于 2012-11-26 17:19 | 显示全部楼层
在不修改分散加载文件的前提条件下,能够实现将STM32的FLASH分出2个扇区来,只进行参数备份,不存储运行代码。
inurl 发表于 2012-11-27 08:50 | 显示全部楼层
Init.c 上右键,options for file
 楼主| leebai_001 发表于 2012-11-27 13:24 | 显示全部楼层
Keil开发环境,可以把芯片内部ROM分成2部分:IROM1和IROM2.
由于STM32的FLASH设计的是,开头小,越往后扇区越大。
以STM32F407为例:扇区1:16K,扇区2:16K,扇区3:16K,扇区4:16K,扇区5:64K,扇区6:128K,。。。。实际使用中,不可能用64K或128K扇区来存储数据,太浪费,并且扇区过大,还存在擦除时间等问题,这就只能选择前面几个扇区。由于单片机加载扇区从零开始,扇区1需要单独使用,上述的应用,需要把FLASH分为3部分:启动扇区;参数扇区;程序区。
所以:4楼的方法不太适用。
 楼主| leebai_001 发表于 2012-11-29 13:18 | 显示全部楼层
上面的应用也算是比较典型的吧。
大家都很少这么用吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

93

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部