nxgvmxlw 发表于 2025-2-13 15:30:36

[求助]SDCC如何处理编译后的大小问题

在sdcc里,光写一个main函数加循环就要我100多字节。

查看asm文件,发现其中有着不少没用到的代码。


并且在后续的编译中出现了,头文件中未使用的函数也会被编译进固件中。
这导致我都不敢用stc的函数库来写代码了。

希望大佬指点一下,是哪里没设置对吗

nxgvmxlw 发表于 2025-2-13 21:14:18

我觉得stc应该走stm32cube那样点一点生成寄存器代码的路子。和库函数比,难度不会更大很多,占用的内存反而能小很多。例如一个串口1初始化,加中断。我用库函数,又是结构体,又是库函数,一下子就占用了500左右字节。反而用isp里面的波特率计算器生成的代码只需要100左右的字节。虽然stc8g的内存比51大了3倍,但也不是用库函数这样浪费的。

soma 发表于 2025-2-13 22:50:10

感觉sdcc就这样。优化不是很好。51又没有gcc编译器。

hsrzq 发表于 2025-2-18 11:00:11

sdcc不支持清理未使用函数。很多库的方式是自己加一堆#ifdef的开关来处理
页: [1]
查看完整版本: [求助]SDCC如何处理编译后的大小问题