sdcc有个要命的缺陷...
gcc的编译参数-ffunction-sections -fdata-sections是必须打开的, 以及链接参数 -Wl,--gc-sections是必须要打开的, 这样源程序里没有被调用到的代码不会编译到最终的执行文件.
sdcc一直不支持, 结果目标文件会大得多, 用到用不到的代码都编译进来了. 有些sdcc下的库为了避免这个问题, 在每个源文件里只放一个函数, 代价是看着太累.