你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
chrome
firefox
safari
ie8及以上
ST
意法半导体官网
STM32
中文官网
ST
全球论坛
登录/注册
首页
技术问答
话题
资源
创客秀
视频
标签
积分商城
每日签到
如何快速可控将编译生成的烧录文件占用FLASH容量变大?
[复制链接]
奏奏奏
提问时间:2020-7-3 19:51 /
问答
是否解决:
因为需要测试STM32做的串口OTA升级功能,
就希望通过修改代码,快速填充满指定的FLASH区域?
是在代码中查表,将表格内的数据反复重复复制粘贴快?
还是弄一个条件判断调用的函数,函数里重复没有实际意义的赋值乘法运算好?
还是大佬们有试过的诀窍可以传授给我?
在这里先谢谢专门点进来看的各位!
赞
0
收藏
0
评论
5
分享
发布时间:2020-7-3 19:51
举报
请先
登录
后回复
5个回答
小小超
回答时间:2020-7-4 15:40:20
a0a.1 32b0c
充满有什么意义?加密用还是?用 winhex打开烧写文件,喜欢怎么填充都行,而且还快。
赞
0
评论
回复
支持
反对
废鱼
回答时间:2020-7-4 16:29:06
a0a.1 32b0c
烧录文件占用FLASH容量变大?楼主想做什么?大家都是在压缩代码。楼主最好说出你的想法,大家才能帮你出更合适的方案。
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
奏奏奏
回答时间:2020-7-4 17:58:31
a0a.1 32b0c
我可能没有表述完善
是这样的
OTA升级需要用串口接收升级数据包,
而这些升级数据包是通过上位机读取HEX烧录文件分包传给MCU的,
所以我希望自己写的bootloader跳转后的APP运行程序尽量占用满我分配的FLASH区间(例如分配的是456K字节)
补充贴一下我之前的OTA升级流程图的 帖子会比较能说明:
https://www.stmcu.org.cn/module/forum/thread-621471-1-1.html
用来评估最极限情况下,升级所需要的总时间,在bootloader中设置超时时间,如果超过超时时间还没有完成升级,则重启恢复运行升级前的版本的APP代码
赞
0
评论
回复
支持
反对
butterflyspring
回答时间:2020-7-17 11:10:07
a0a.1 32b0c
那就把APP部分的HEX文件填满,或者直接填满所有空间(APP)部分,不管其功能。让上位机去升级最大空间的这个代码文件,不就可以测试烧录时间了么。至于填充方式,大部分烧录软件都有,设置好起始地址就可以了
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
DavidTan
回答时间:2020-7-17 11:18:27
a0a.1 32b0c
你可以在代码里定义一个静态变量,把这个变量分配到固定的flash位置,例如438k这个位置
以下是网上搜到的,不保证完全正确,参考一下
1、定义一个数组比如value[],让数组的首地址指向特定的SRAM地址,比如0x20000100
1)__align(8) uint8_t value[20] __attribute__((at(0x20000100))); MDK中定义
2)int value[] __attribute__((section(".ARM.__at_0x20000100"))) = {0x01, 0x02}; GCC中定义
2、指定函数的存放地址
void func (void) __attribute__((section(".ARM.__at_0x00000200")));
评分
参与人数
1
蝴蝶豆
+2
收起
理由
STMCU
+ 2
查看全部评分
赞
0
评论
回复
支持
反对
所属标签
相似问题
关于
意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分
是这样的
OTA升级需要用串口接收升级数据包,
而这些升级数据包是通过上位机读取HEX烧录文件分包传给MCU的,
所以我希望自己写的bootloader跳转后的APP运行程序尽量占用满我分配的FLASH区间(例如分配的是456K字节)
补充贴一下我之前的OTA升级流程图的 帖子会比较能说明:
https://www.stmcu.org.cn/module/forum/thread-621471-1-1.html
用来评估最极限情况下,升级所需要的总时间,在bootloader中设置超时时间,如果超过超时时间还没有完成升级,则重启恢复运行升级前的版本的APP代码
评分
查看全部评分
以下是网上搜到的,不保证完全正确,参考一下
评分
查看全部评分