[APM32F4] 把程序放到大Page页中启动运行了

[复制链接]
644|19
 楼主| 水之呢喃 发表于 2025-7-30 20:12 | 显示全部楼层 |阅读模式
APM32F407的内置Flash的共分为了16页,对于512KB的容量,每页的容量并不是均匀分配,而是前面低地址的存储区域页大小较小,如16KB。后面高地址存储区域页大小较大,如128KB。

貌似把程序稳定部分,尤其那些已经稳定运行的库文件,放到大Page页里是一个非常好的选择。

今天就以APM32F407VE为例尝试一下在Keil环境下实现上述想法。其实,实现起来还是非常简单的。我把程序定位在了0x08010_0000 到 0x0801_FFFF 这64KB的程序空间里面。首先需要在配置里面把程序的起始地址与大小配置到Keil里面,如下图所示:

APM32F407_start_02.jpg

再返回工程,编译一下,看看MAP文件

APM32F407_start_01.jpg

看!还是蛮简单的。如果日后,项目复杂,工程文件多,64KB的空间不够用,可以再扩展到128KB的大页上面。亲,你们也来尝试一下吧!

梦塑者 发表于 2025-7-31 14:41 | 显示全部楼层
这个想法不错啊!
可以把配置信息的数据放到小的page页里面。
话说楼主是怎么想到的呢
穷得掉渣大侠 发表于 2025-7-31 19:08 | 显示全部楼层
这个方法确实可以优化程序的存储效率,尤其是在资源有限的情况下。你的实践分享很有帮助,谢谢!
彩虹捕手 发表于 2025-7-31 22:57 | 显示全部楼层
这个方法确实不错,对于提高程序的稳定性和运行效率很有帮助。你提供的Keil配置和MAP文件截图很直观,谢谢分享!
neomissing 发表于 2025-8-4 09:07 | 显示全部楼层
以上操作完全是错误做法,首先这个修改起始地址和大小是做boot和app的,修改程序的启动位置,不是这样放程序在不同扇区,keil目前程序存储默认做法是根据创建文件的位置来存储,靠近顶部文件先存储在前面区域,往下排列,当然你可以修复每个c或者函数存储位置,简单做法直接指定c文件存储区域,右键配置即可,不是如上的乱操作
迷雾隐者 发表于 2025-8-4 17:05 | 显示全部楼层
这个方法确实不错,将稳定部分的程序放在大页中可以提高效率。你提供的步骤和图片都很有帮助,谢谢分享!
SpiritSong 发表于 2025-8-7 21:13 | 显示全部楼层
有 道理啊!
我也是一直使用Keil默认的地址按序存放的方式来处理的。
霜之闪耀 发表于 2025-8-11 17:44 | 显示全部楼层
这个思路有点新颖了。
还真没有想过修改程序在Flash中的起始地址
海洋凝视 发表于 2025-8-14 19:24 | 显示全部楼层
也没有啥必要吧!
每次改一个程序要erase那么大的page,也是慢啊
雾里闲逛 发表于 2025-8-22 16:59 | 显示全部楼层
有机会我也试试
永恒的一瞥 发表于 2025-8-25 14:45 | 显示全部楼层
坏不了的。
不用这么用心,把重点还是放在程序实现上吧
和谐智者 发表于 2025-8-27 19:41 | 显示全部楼层
楼主,怎么把代码放在SRAM里面运行啊
 楼主| 水之呢喃 发表于 2025-8-27 19:45 | 显示全部楼层
和谐智者 发表于 2025-8-27 19:41
楼主,怎么把代码放在SRAM里面运行啊

这个貌似有点麻烦。
之前在Keil AC5下非常方便,只需要添加一个编译属性即可,但在AC6下,总是报错。
ShadowDance 发表于 2025-9-6 11:59 | 显示全部楼层
这个没有什么必要吧!
否则厂家也不会把小页放在前面吧。
我觉得后面的大页,预置的是运行配置或者数据吧
黎明热忱 发表于 2025-9-7 23:34 | 显示全部楼层
水之呢喃 发表于 2025-8-27 19:45
这个貌似有点麻烦。
之前在Keil AC5下非常方便,只需要添加一个编译属性即可,但在AC6下,总是报错。 ...

我也遇到了同样的问题。
切回AC5,感觉也不利于程序的更新与升级
黎明热忱 发表于 2025-9-7 23:34 | 显示全部楼层
楼主可以把库放到大页里面。平时常更新的程序部分,还是按默认的来吧!
 楼主| 水之呢喃 发表于 2025-9-10 11:24 | 显示全部楼层
黎明热忱 发表于 2025-9-7 23:34
我也遇到了同样的问题。
切回AC5,感觉也不利于程序的更新与升级

老工程使用老版本,新工程使用新版本
瞌睡虫本虫 发表于 2025-9-11 20:02 | 显示全部楼层
学习了,之前没有注意到Flash的页大小分配,这个知识点很有用
梦塑者 发表于 2025-9-12 15:58 | 显示全部楼层
人家这么设计就是把数据放在后面吧!
现在新推出的F425系列 前面的flash还是零等待技术呢
梦境摆渡人 发表于 2025-9-16 13:56 | 显示全部楼层
Keil的配置看起来挺直观的,跟着步骤操作应该不难实现。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

17

帖子

0

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