你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

UART 应用代码占用FLASH较大的原因

[复制链接]
qytcs 提问时间:2019-9-25 19:55 /
如题   今天在做STM8S应用的时候 发现添加uart代码后,在.map中查看发现uart简单的发送数据就占用了3k的FLASH   大家有没有遇到类似的问题呢?
收藏 评论13 发布时间:2019-9-25 19:55

举报

13个回答
wenyangzeng 回答时间:2019-9-25 20:18:03
usart的C函数需要调用STM8库函数的USART源代码。
tanic 回答时间:2019-9-26 09:04:52
你用了printf?
wbeast 回答时间:2019-9-26 09:49:50
大概率是用了printf
七哥 回答时间:2019-9-26 11:44:31
同意楼上两位,很可能使用了printf。
即便使用了printf,代码大小还跟你打印用的什么数据类型有关系,如果全部的话占用空间最大。如果是是打印个字符串,那么占用会少一点。
qytcs 回答时间:2019-9-27 08:36:12
toofree 发表于 2019-9-26 11:44
同意楼上两位,很可能使用了printf。
即便使用了printf,代码大小还跟你打印用的什么数据类型有关系,如果 ...

确实应用了printf,但是去掉printf,只有uart的初始化也要占用1k的flash,我该如何去优化一下呢?
butterflyspring 回答时间:2019-9-27 11:57:32
编译器的优化是否有设置呢?有的编译器如果没设置好的话,会把整个C文件连接进去,而这个文件中只有少数函数是你要用到的。用官方的项目模板就好了
七哥 回答时间:2019-9-27 14:53:30
qytcs 发表于 2019-9-27 08:36
确实应用了printf,但是去掉printf,只有uart的初始化也要占用1k的flash,我该如何去优化一下呢? ...

想要占用代码少,初始化时直接写寄存器。
qytcs 回答时间:2019-9-27 15:31:31
butterflyspring 发表于 2019-9-27 11:57
编译器的优化是否有设置呢?有的编译器如果没设置好的话,会把整个C文件连接进去,而这个文件中只有少数函 ...

光放的项目模板就是3k
湉湉 回答时间:2019-9-27 23:00:36
自己编写printf
STM1024 回答时间:2019-9-28 09:30:38
你是用了别人的库吗?
qytcs 回答时间:2019-9-29 09:18:18
stm1024 发表于 2019-9-28 09:30
你是用了别人的库吗?

用了官方给的例程
butterflyspring 回答时间:2019-10-8 15:43:48
项目模板是经过如图的两个选项优化,没有任何额外代码下,只有几百个字节。你在试试看。

STM8S template map.PNG
qytcs 回答时间:2019-10-9 09:13:31
butterflyspring 发表于 2019-10-8 15:43
项目模板是经过如图的两个选项优化,没有任何额外代码下,只有几百个字节。你在试试看。

...

我用的IAR    软件设置上也优化过了    就是引用库函数的问题   我现在换成寄存器了    占用空间大减
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版