[MSG:Grbl_ESP32 Ver 1.3a Date 20210401]
[MSG:Compiled with ESP32 SDK:v3.2.3-14-gd3e562907]
[MSG:Using machine:MASLOW 4]
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x400df6cd PS : 0x00060930 A0 : 0x800d8a3c A1 : 0x3ffd37d0
A2 : 0x3ffd3818 A3 : 0x3ffd380c A4 : 0x00000000 A5 : 0x3ffd3824
A6 : 0x00000000 A7 : 0x00000000 A8 : 0x00000000 A9 : 0x00000000
A10 : 0x00000000 A11 : 0x00000000 A12 : 0x00000000 A13 : 0x00000001
A14 : 0x00060920 A15 : 0x00000000 SAR : 0x0000001f EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000
Backtrace: 0x400df6cd:0x3ffd37d0 0x400d8a39:0x3ffd37f0 0x400d8fd9:0x3ffd3880 0x400dbc07:0x3ffd38a0 0x400dbe1b:0x3ffd38c0 0x400dbe32:0x3ffd3900 0x400d7d5b:0x3ffd3950 0x400d4e77:0x3ffd3970 0x400d2dcf:0x3ffd3990 0x400fbcd3:0x3ffd39b0 0x400903c5:0x3ffd39d0
#0 0x400df6cd:0x3ffd37d0 in FakeSetting<int>::get() at Grbl_Esp32/src/System.cpp:149
(inlined by) system_convert_array_steps_to_mpos(float*, int*) at Grbl_Esp32/src/System.cpp:181
#1 0x400d8a39:0x3ffd37f0 in protocol_execute_realtime() at Grbl_Esp32/src/Protocol.cpp:247
#2 0x400d8fd9:0x3ffd3880 in protocol_buffer_synchronize() at Grbl_Esp32/src/Protocol.cpp:211
#3 0x400dbc07:0x3ffd38a0 in Coordinates::set(float*) at Grbl_Esp32/src/Settings.cpp:752
#4 0x400dbe1b:0x3ffd38c0 in Coordinates::setDefault() at Grbl_Esp32/src/Settings.h:244
(inlined by) make_coordinate(CoordIndex, char const*) at Grbl_Esp32/src/SettingsDefinitions.cpp:238
#5 0x400dbe32:0x3ffd3900 in make_settings() at Grbl_Esp32/src/SettingsDefinitions.cpp:246
#6 0x400d7d5b:0x3ffd3950 in settings_init() at Grbl_Esp32/src/ProcessSettings.
问题是我的改变
voidprotocol_execute_realtime() {
int32_t current_position[N_AXIS]; // Copy current state of the system position variablememcpy(current_position, sys_position, sizeof(sys_position));
float print_position[N_AXIS];
system_convert_array_steps_to_mpos(print_position, current_position);
recomputePID();
setTargets(print_position[0], print_position[1], print_position[2]);
protocol_exec_rt_system();
if (sys.suspend.value) {
protocol_exec_rt_suspend();
}
}
首先,我关注这个项目已经一年多了,我是它的超级粉丝。您回复并解决的人们发布的问题数量惊人。这个项目摇滚。
其次,这是我的自定义机器代码中的错误,而不是对我来说坚如磐石的 GRBL ESP32 项目。我完全不知道我是如何以如此奇怪的方式打破它的,我希望能引导我朝着正确的方向前进,因为我出错了。
这是问题#330的跟进
您使用的是什么版本的固件?
Grbl_ESP32 版本 1.3a 日期 20210401
问题是否可重复?
是的
什么情况下会出现bug?
我正在研究基于 GRBL ESP32 的闭环控制器。基本上每个轴上都有带编码器的直流电机,而不是步进电机。这需要自定义代码文件和对
protocol_execute_realtime()
.它工作得很好,GRBL ESP32 摇滚…除了我的固件无法刷新到新的 ESP32。如果我先上传主分支固件,然后再上传我的固件,一切都很好。如果我尝试将我的固件上传到新的 ESP32,它会不断出现核心恐慌并显示错误消息。
问题是我的改变
基本上我正在重新计算轴位置的 PID 控制器并更新它们的目标位置。进行此更改
Protocol.cpp
是阻止我上传到新的 ESP32 的原因。有谁知道为什么我以如此奇怪的方式破坏东西或对如何修复它们有任何建议?我在使用 Platform.IO 或 Arduino IDE 进行编译时看到了问题。
谢谢!