使用 gcc 优化 Sparc 的 C 代码以获得更小的图像大小
Optimizing C code for Sparc for smaller image size using gcc
我有一些 C 代码,我试图为资源高度受限的基于 Sparc V8 的系统编译。我正在使用gcc,想请教以下问题
1) 除了关闭调试(-g 标志)之外,还有哪些其他选项可以减小编译对象的大小?
2)ARM有拇指模式,Sparc有类似的吗?
3) 可以使用哪些其他编译器选项(甚至是 C 代码技巧)来减小已编译二进制对象的大小。
我又一次使用了 gcc。
用-Os编译。这意味着优化大小。
如果代码的某些部分应该 运行 尽可能快,您可以使用 __attribute__((optimize("-O2")))
来优化特定函数的速度。
有关优化标志的说明,请参见以下 link:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
1) 正如 Mat 所说:使用 -Os 标志来减少代码大小
2) 不。请在此处查看手册:http://www.gaisler.com/doc/sparcv8.pdf
3) 阅读这篇文章:https://github.com/contiki-os/contiki/wiki/Reducing-Contiki-OS-firmware-size
这是一位经验丰富的工程师为 Contiki OS 项目编写的代码大小缩减建议。 Contiki OS 是一个嵌入式C 项目,通常使用GCC 编译,因此适用于您的问题。
我有一些 C 代码,我试图为资源高度受限的基于 Sparc V8 的系统编译。我正在使用gcc,想请教以下问题
1) 除了关闭调试(-g 标志)之外,还有哪些其他选项可以减小编译对象的大小?
2)ARM有拇指模式,Sparc有类似的吗?
3) 可以使用哪些其他编译器选项(甚至是 C 代码技巧)来减小已编译二进制对象的大小。
我又一次使用了 gcc。
用-Os编译。这意味着优化大小。
如果代码的某些部分应该 运行 尽可能快,您可以使用 __attribute__((optimize("-O2")))
来优化特定函数的速度。
有关优化标志的说明,请参见以下 link:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
1) 正如 Mat 所说:使用 -Os 标志来减少代码大小
2) 不。请在此处查看手册:http://www.gaisler.com/doc/sparcv8.pdf
3) 阅读这篇文章:https://github.com/contiki-os/contiki/wiki/Reducing-Contiki-OS-firmware-size 这是一位经验丰富的工程师为 Contiki OS 项目编写的代码大小缩减建议。 Contiki OS 是一个嵌入式C 项目,通常使用GCC 编译,因此适用于您的问题。