【问题标题】:Optimizing C code for Sparc for smaller image size using gcc使用 gcc 优化 Sparc 的 C 代码以减小图像大小
【发布时间】:2016-10-26 02:38:56
【问题描述】:

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

1) 除了关闭调试(-g 标志)之外,我还有哪些其他选项可以减小编译对象的大小?

2) ARM有拇指模式,Sparc有类似的吗?

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

我再次使用 gcc。

【问题讨论】:

    标签: gcc optimization embedded compiler-optimization sparc


    【解决方案1】:

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

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

    【讨论】:

    • 我不推荐__attribute__(optimize(...)),文档将其描述为“此属性应仅用于调试目的。不适用于生产代码。”
    • 另外,内联有时可以减少代码大小,-Os 已经告诉编译器在增加大小时不要内联。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      相关资源
      最近更新 更多