Contact me: hankecnc@gmail.com

52158dffccfa6b73ba42d6e01867e295e14d818c(大温度更新)在 EXTRUDERS > 1 时中断编译 – 无法在类“POINTER_REGS”temperature.cpp:318 中找到要溢出的寄#347

推推 grbl 3年前 (2023-02-05) 330次浏览

存器 #347

关闭
triffid 打开了这个问题 2012 年 12 月 15 日 · 5 条评论

评论

52158dffccfa6b73ba42d6e01867e295e14d818c(大温度更新)在 EXTRUDERS > 1 时中断编译 - 无法在类“POINTER_REGS”temperature.cpp:318 中找到要溢出的寄#347
贡献者

我不知道这里发生了什么,ErikZalm@ 52158df #L0R318在我看来相当无害,L462 是 manage_heater() 的右括号;

$ git bisect start origin/Marlin_v1 587154c
$ git bisect run sh -c “( cd Marlin; rm -r applet; perl -pi~ -e ‘s/define EXTRUDERS 1/define EXTRUDERS 2/;’ Configuration_adv.h; make HARDWARE_MOTHERBOARD =34 all applet/temperature.o; git checkout — Configuration_adv.h; ) ; [ -e Marlin/applet/temperature.o ]”

CXX temperature.cpp
temperature.cpp: 在函数 ‘void manage_heater()’ 中:
temperature.cpp:462:1: 错误:无法在类 ‘POINTER_REGS’
temperature.cpp:462:1 中找到要溢出的寄存器:错误:这是 insn:
(insn 100 99 102 4 temperature.cpp:318 (设置 (reg/v:SF 113 [ pid_input ])
(mem/s:SF (post_inc:HI (reg:HI 133 [ ivtmp.135 ])) [3 current_temperature S4 A8])) 13 {movsf} (expr_list:REG_INC (reg:HI 133 [ ivtmp.135 ])
(nil)))
temperature.cpp:462: 被之前的错误搞糊涂了,救助
make: *
 * [applet/temperature.o] 错误 1
​​52158df是第一个错误提交
commit 52158df
作者:daid303 daid303@gmail.com
日期:Sun Dec 9 23:00:06 2012 +0100

Big temperature code update. No longer converts back and forwards between temperature and raw sample value. Reducing complexity, removing code. Also named some variables better. While keeping the safety intact and functionality the same.

:040000 040000 56bde532429e7f5e53225b988d2069c715daa34b 873e71c450dbce95dee2f88ee2d6575665e8455b M 马林

52158dffccfa6b73ba42d6e01867e295e14d818c(大温度更新)在 EXTRUDERS > 1 时中断编译 - 无法在类“POINTER_REGS”temperature.cpp:318 中找到要溢出的寄#347
贡献者作者

哦,我可能应该补充:

avr-gcc (GCC) 4.5.4
$ avr-as --version
GNU assembler (GNU Binutils) 2.22
52158dffccfa6b73ba42d6e01867e295e14d818c(大温度更新)在 EXTRUDERS > 1 时中断编译 - 无法在类“POINTER_REGS”temperature.cpp:318 中找到要溢出的寄#347
贡献者作者

@kliment建议我尝试使用 O1 而不是 Os,这似乎可以消除此错误并使其成功完成。

现在的问题是,为什么?需要更改什么才能与 -Os 一起使用?

52158dffccfa6b73ba42d6e01867e295e14d818c(大温度更新)在 EXTRUDERS > 1 时中断编译 - 无法在类“POINTER_REGS”temperature.cpp:318 中找到要溢出的寄#347
贡献者

或者尝试升级 avr-gcc?4.5.4 可能只是有一个错误?(在提交补丁之前,我已经在双挤压机上对此进行了测试)

我一直在为我的构建使用 4.6。工作中的测试机和我家的机器都是双挤压 Ultimakers,所以对于那些它编译的……

52158dffccfa6b73ba42d6e01867e295e14d818c(大温度更新)在 EXTRUDERS > 1 时中断编译 - 无法在类“POINTER_REGS”temperature.cpp:318 中找到要溢出的寄#347
贡献者

这种类型的错误消息必须是后端编译器错误。它基本上是
说它无法计算出一个指令序列来实现
前端已经确定在语法和语义上正确的东西。

2012 年 12 月 15 日 13:08,daid notifications@github.com写道:

或者尝试升级 avr-gcc?4.5.4 可能只是有一个错误?(在提交补丁之前,我已经
在双挤压机上对此进行了测试)

我一直在为我的构建使用 4.6。工作中的测试机和我
家的机器都是双挤压 Ultimakers,所以对于那些它编译的……


直接回复此电子邮件或在 GitHub 上查看它 https://github.com/ErikZalm/Marlin/issues/347#issuecomment-11403271。