开源改变世界

编译器优化 #186

推推 grbl 3年前 (2023-01-21) 118次浏览

关闭
GusPS 打开了这个问题 2013 年 2 月 16 日 · 2 条评论
关闭

编译器优化#186

GusPS 打开了这个问题 2013 年 2 月 16 日 · 2 条评论

注释

编译器优化 #186

你好,

这不是一个问题,而是一个真正的问题。(除了本节之外不知道在哪里问)。

我在编译器(0.8 版本)中添加了以下选项,并且在最终的 .hex 中获得了几个字节:

-fdata-sections -fno-move-loop-invariants -fno-tree-scev-cprop -fno-inline-small-functions

任何人都知道这些选项可能会出现的任何问题吗?

我正在使用 Metaboard 和 Touch Plate 进行一些测试,328p 的空间越来越小。

谢谢。

编译器优化 #186
成员

不确定您的编译器标志会出现什么样的问题。我已经有一段时间没有亲自和他们一起玩过了。只是好奇,您看到了多少闪存改进?如果它真的只是几个字节,我不确定是否真的值得为我进行彻底的测试。

是的,grbl 确实在推动 flash 和 ram 的极限。计划尝试将一些归位电机控制结合到主步进算法中以释放一些闪存,但这可能会变得棘手,因为它会增加膨胀并减慢速度。我们不想要的东西。无论如何,我们可以做其他事情来释放更多东西,比如让规划器本身更有效率。但是,这需要我现在没有的时间。然而,这些东西中的大部分已经是原型并且应该可以工作,但还没有安装和测试。

如果确实需要,释放空间的最佳做法是最小化“report.c”中的程序内存字符串。例如,您可以将其简化为错误代码,而不是人类可读的文本。这将为您删除的每个字符释放一个字节。

编译器优化 #186
作者

谢谢香奈儿。

没有这些选项:

AVR 内存使用

设备:atmega328p

程序:28754 字节(87.8% 已满)
(.text + .data + .bootloader)

数据:1567 字节(76.5% 已满)
(.data + .bss + .noinit)

启用选项:

AVR 内存使用

设备:atmega328p

程序:28218 字节(86.1% 已满)
(.text + .data + .bootloader)

数据:1567 字节(76.5% 已满)
(.data + .bss + .noinit)

不是太多,但它允许我上传我的更改。

问候。

喜欢 (0)