start.s文件定义了堆栈的大小,会影响ZI-DATA
如果使用了printf函数,那么是否勾选use ZI-DATA选项对ZI-DATA影响也很大。
“microlib 是缺省 C 库的备选库。 它用于必须在极少量内存环境下运行的深层嵌入式应用程序。 这些应用程序不在操作系统中运行。microlib 不会尝试成为符合标准的 ISO C 库。
microlib 进行了高度优化以使代码变得很小。 它的功能比缺省 C 库少,并且根本不具备某些 ISO C 特性。某些库函数的运行速度也比较慢,例如,memcpy()。引自 https://blog.youkuaiyun.com/kelsey11/article/details/51246636”
我从一个STM32的程序移植到GD32上,程序编译都通过了,发现ZI-DATA却大出很多。后来勾选了use MicroLib,就一下子降了近600个字节。豁然开朗了,哈哈