使用gcc

时间:2016-10-26 02:38:56

标签: gcc optimization embedded compiler-optimization sparc

我有一些C代码,我试图为具有高度约束资源的基于Sparc V8的系统进行编译。我正在使用gcc,我想问下面的问题。

1)除了关闭调试(-g标志)还有什么其他选项可以减少编译对象的大小?

2)ARM有一个拇指模式,Sparc有类似的东西吗?

3)可以使用哪些其他编译器选项(甚至C代码技巧)来减少编译的二进制对象大小。

我再次使用gcc。

2 个答案:

答案 0 :(得分:2)

使用-Os进行编译。这意味着优化尺寸。 如果代码的某些部分应该尽可能快地运行,您可以使用__attribute__((optimize("-O2")))来优化特定函数的速度。

有关优化标记的说明,请参阅以下链接:https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

答案 1 :(得分:1)

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编译,因此它适用于您的问题。