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

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管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版