找回密码
 立即注册
查看: 170|回复: 3

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

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-02-22 23:10:48
已绑定手机

1

主题

1

回帖

33

积分

新手上路

积分
33
发表于 2025-2-13 15:30:36 | 显示全部楼层 |阅读模式
在sdcc里,光写一个main函数加循环就要我100多字节。
截图202502131525431724.jpg
查看asm文件,发现其中有着不少没用到的代码。
截图202502131529572239.jpg

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

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

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-02-22 23:10:48
已绑定手机

1

主题

1

回帖

33

积分

新手上路

积分
33
发表于 2025-2-13 21:14:18 | 显示全部楼层
我觉得stc应该走stm32cube那样点一点生成寄存器代码的路子。和库函数比,难度不会更大很多,占用的内存反而能小很多。例如一个串口1初始化,加中断。我用库函数,又是结构体,又是库函数,一下子就占用了500左右字节。反而用isp里面的波特率计算器生成的代码只需要100左右的字节。虽然stc8g的内存比51大了3倍,但也不是用库函数这样浪费的。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-02 07:55:56
已绑定手机

19

主题

3191

回帖

4872

积分

论坛元老

积分
4872
发表于 2025-2-13 22:50:10 | 显示全部楼层
感觉sdcc就这样。优化不是很好。51又没有gcc编译器。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:456
  • 最近打卡:2025-05-02 08:26:53
已绑定手机

27

主题

341

回帖

1691

积分

金牌会员

机长

积分
1691
发表于 2025-2-18 11:00:11 | 显示全部楼层
sdcc不支持清理未使用函数。很多库的方式是自己加一堆#ifdef的开关来处理
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:11 , Processed in 0.294549 second(s), 69 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表