你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
微信公众号
手机版
快速回复
返回顶部
返回列表
评分
查看全部评分
是这样的
OTA升级需要用串口接收升级数据包,
而这些升级数据包是通过上位机读取HEX烧录文件分包传给MCU的,
所以我希望自己写的bootloader跳转后的APP运行程序尽量占用满我分配的FLASH区间(例如分配的是456K字节)
补充贴一下我之前的OTA升级流程图的 帖子会比较能说明:
https://www.stmcu.org.cn/module/forum/thread-621471-1-1.html
用来评估最极限情况下,升级所需要的总时间,在bootloader中设置超时时间,如果超过超时时间还没有完成升级,则重启恢复运行升级前的版本的APP代码
评分
查看全部评分
以下是网上搜到的,不保证完全正确,参考一下
评分
查看全部评分