qytcs 发表于 2019-9-25 19:55:08

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

如题   今天在做STM8S应用的时候 发现添加uart代码后,在.map中查看发现uart简单的发送数据就占用了3k的FLASH   大家有没有遇到类似的问题呢?

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

toofree 发表于 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文件连接进去,而这个文件中只有少数函数是你要用到的。用官方的项目模板就好了:)

toofree 发表于 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
页: [1] 2
查看完整版本: UART 应用代码占用FLASH较大的原因