开源改变世界

连接到 WebUI 时机器重启 #130

推推 grbl 3年前 (2023-02-05) 195次浏览
关闭
gxdeange 打开了这个问题 2021 年 11 月 19 日 · 8条评论
关闭

连接到 WebUI 时机器重启#130

gxdeange 打开了这个问题 2021 年 11 月 19 日 · 8条评论

评论

连接到 WebUI 时机器重启 #130

请只提交最新版本代码的错误。您可以在启动消息中检查版本号。

根据此页面提供 FluidNC 启动消息

请回答以下问题。

您使用的是什么版本的固件?

v3.2.5

问题是否可重复?

是的

什么情况下会出现bug?

从 SD 卡运行作业时,如果您连接到 Web UI,机器似乎会重新启动/重置。

重要如果您粘贴固件代码,请使用C++ 语言的Markdown 代码和语法高亮。使用三个反勾法。

  #define EASIER_TO_READ true
连接到 WebUI 时机器重启 #130 gxdeange 添加了 漏洞 仅供开发者使用标签 2021 年 11 月 19 日
连接到 WebUI 时机器重启 #130
赞助

你能分享发生这种情况时串行监视器报告的内容吗?我想我以前可能见过类似的东西(并通过 Discord 报告过)

连接到 WebUI 时机器重启 #130

基于这个回溯:

  #0  0x40081507:0x3ffc0010 in Machine::Axes::unstep() at FluidNC/src/Machine/Axes.cpp:86
  #1  0x400820b4:0x3ffc0030 in Stepper::pulse_func() at FluidNC/src/Stepper.cpp:298
  #2  0x40082114:0x3ffc0050 in Machine::Stepping::onStepperDriverTimer() at FluidNC/src/Stepping.cpp:214  #3  0x400826e1:0x3ffc0070 in __timerISR at C:\Users\wmb\.platformio\packages\framework-arduinoespressif32\cores\esp32/esp32-hal-timer.c:174
  #4  0x40088641:0x3ffc0090 in _xt_lowint1 at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/xtensa_vectors.S:1154
  #5  0x40089598:0x3ffb1870 in spi_flash_read at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/spi_flash/flash_ops.c:599

我认为这可能是 IRAM 问题。前台代码正在执行 FLASH 读取,然后出现步进中断。如果该步进器代码试图从 FLASH 中读取,则会发生冲突。步进代码应该从 IRAM 运行,但很难保证这一点。我需要查看汇编代码。

连接到 WebUI 时机器重启 #130

我发现了导致这次崩溃的一些因素。一种是 ISR 中的 switch 语句,另一种是在 ISR 中调用虚方法。避免那些停止崩溃。我们已经怀疑这些东西可能是个问题,但没有明确的证据证明它们确实在制造麻烦,所以很难有动力将它们全部清除。

现在我有了一个测试用例,我将看看我能做什么。消除开关很容易;虚方法调用会有点困难。

对此的进一步讨论将在 Discord 上进行。

连接到 WebUI 时机器重启 #130

我刚刚遇到了类似的问题,虽然它可能无关 – 很难说。在平板电脑模式和仪表板模式之间通过 Web UI 单击时从 SD 卡运行作业。

解码堆栈结果
0x40081503: emptyRxFifo at C:\Users\amood\OneDrive\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.6\cores\esp32\esp32-hal-i2c.c line 759
0x40082110: heap_caps_free at / home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c line 267
0x40082170: heap_caps_realloc at /home/runner/work/esp32-arduino- lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_private.h line 61
0x4008273d: esp_timer_impl_set_alarm at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib- builder/esp-idf/components/esp32/esp_timer_esp32.c line 150
0x4008869d: xTaskResumeAll 在/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/任务.c 行 2217
0x400d63e3: uw_frame_state_for 在 /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libgcc/config/xtensa/unwind-dw2-xtensa.c 第 240 行
0x400e8e8b: nvs::PageManager::load(unsigned int, unsigned int) at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/nvs_pagemanager.cpp line 64
0x400dda2a: _dtoa_r at .. /../../.././newlib/libc/stdlib/dtoa.c 第 444 行
0x400d8a29:_svfprintf_r 在 ../../../.././newlib/libc/stdio/vfprintf.c第 1848 行
0x400d95e2:_svfprintf_r 在 ../../../.././newlib/libc/stdio/vfprintf.c 第 1426 行
0x400dda93:_dtoa_r 在../../../.././newlib /libc/stdlib/dtoa.c 第 459 行
0x400d78ee:sprintf 在 ../../../.././newlib/libc/stdio/sprintf.c 第 646 行
0x400e66f8: get_reset_reason 在 /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/reset_reason.c 第 64 行
0x400e78ae: nvs::Storage::init(无符号整数,无符号整数)在/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/intrusive_list.h line 126
0x400dd875: _dtoa_r at . ./../../.././newlib/libc/stdlib/dtoa.c 第 356 行
0x4008bf66:esp_rom_spiflash_read 在 /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder /esp-idf/components/spi_flash/spi_flash_rom_patch.c 第 570 行

回溯
.txt NutPlateX_2_0.125_Flat.nc.txt

连接到 WebUI 时机器重启 #130
作者

这是我收到的错误。

检测到意外错误:Guru Meditation Error:Core 1 panic’ed(缓存已禁用但已访问缓存内存区域)
Core 1 寄存器转储:
PC:0x40081507 PS:0x00060034 A0:0x800820b7 A1:0x3ffc0010
A2:0x00000000 A3:0x3ffc1b24 A4:9 A5 : 0x00000000
A6 : 0x00000003 A7 : 0x3ffb9740 A8 : 0xbad00bad A9 : 0x3ffbfff0
A10 : 0x3ffb3b9c A11 : 0xb0000000 A12 : 0x00060021 A13 : 0x00000001
A14 : 0x00000001 A15 : 0x3ffb8058 SAR : 0x00000020 EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000
核心 1 在 ISR 上下文中运行:
EPC1:0x4009124e EPC2:0x00000000 EPC3:0x00000000 EPC4:0x40081507
ELF 文件 SHA256:0000000000000000
Backtrace: 0x40081507:0x3ffc0010 0x400820b4:0x3ffc0030 0x40082114:0x3ffc0050 0x400826e1:0x3ffc0070 0x40088641:0x3ffc0090 0x4009124b:0x3ffb1350 0x40091a49:0x3ffb1370 0x40089598:0x3ffb1390 0x401a991a:0x3ffb1400 0x401502fa:0x3ffb1430 0x40150516:0x3ffb1460 0x401519b3:0x3ffb1490 0x40153395:0x3ffb14d0 0x4014f6c7:0x3ffb1510 0x4014ec0a:0x3ffb1540 0x40199646:0x3ffb1560 0x4000bd67:0x3ffb1580 0x401268da:0x3ffb15a0 0x40126969:0x3ffb15d0 0x400d6413:0x3ffb15f0 0x400f2272:0x3ffb1650 0x401b2a65:0x3ffb1b80 0x400ff8b2:0x3ffb1ba0 0x40103fd6:0x3ffb1bc0 0x401040a9:0x3ffb1c10 0x400f15e5:0x3ffb1c60 0x400fa486:0x3ffb1ca0 0x400e8aa7:0x3ffb1cc0 0x400dda22:0x3ffb1ce0 0x400d8a59:0x3ffb1d00 0x400d96fe:0x3ffb1d20 0x400dda8b:0x3ffb1d40 0x400d791e: 0x3ffb1d60 0x400e6604:0x3ffb1e10 0x400e77ba:0x3ffb1e30 0x400dd86e:0x3ffb1f60 0x4010b4a8:0x3ffb1fb0 0x4008bf0a:0x3ffb1fd0
正在重启…

连接到 WebUI 时机器重启 #130

看起来与我遇到的错误非常相似。这是你的回溯的解码版本:

解码堆栈结果
0x40081507: emptyRxFifo at C:\Users\amood\OneDrive\Documents\ArduinoData\packages\esp32\hardware\esp32\1.0.6\cores\esp32\esp32-hal-i2c.c line 759
0x400820b4: heap_caps_malloc_default at / home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c line 140
0x40082114: heap_caps_free at /home/runner/work/esp32-arduino- lib-builder/esp32-arduino-lib-builder/esp-idf/components/heap/heap_caps.c line 267
0x400826e1: esp_timer_impl_get_time 在/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib- builder/esp-idf/components/esp32/esp_timer_esp32.c line 151
0x40088641: xTaskIncrementTick 在/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/freertos/任务.c 行 2596
0x400d6413: uw_frame_state_for 在 /builds/idf/crosstool-NG/.build/src/gcc-5.2.0/libgcc/config/xtensa/unwind-dw2-xtensa.c 第 251 行
0x400e8aa7: nvs::HashList::erase(unsigned int, bool) 在/home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/intrusive_list.h line 199
0x400dda22: _dtoa_r at ../ ../../.././newlib/libc/stdlib/dtoa.c 行 438
0x400d8a59: _svfprintf_r 在 ../../../.././newlib/libc/stdio/vfprintf.c 行1849
0x400d96fe: _svfprintf_r 在../../../.././newlib/libc/stdio/vfprintf.c 第 1437 行
0x400dda8b: _dtoa_r 在../../../.././newlib/ libc/stdlib/dtoa.c 第 453 行
0x400d791e:get_arg 在 ../../../.././newlib/libc/stdio/vfprintf.c 第 2094 行
0x400e6604: esp_dport_access_int_init 在 /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp32/dport_access.c 第 187 行
0x400e77ba: nvs::Storage::eraseOrphanDataBlobs(侵入列表 &) 在 /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/nvs_flash/src/nvs_storage.cpp line 74
0x400dd86e: _dtoa_r at ../. ./../.././newlib/libc/stdlib/dtoa.c 第 356 行
0x4008bf0a:esp_rom_spiflash_read 在 /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp- idf/components/spi_flash/spi_flash_rom_patch.c 第 557 行

连接到 WebUI 时机器重启 #130

伙计们,我正在做这件事。我现在不需要任何更多的跟踪转储。当我有修复时,如果你能测试它就太好了,但现在,向我抛出更多信息只会分散我的注意力。

连接到 WebUI 时机器重启 #130 bdring 将此 添加到 开发中的错误 2021 年 11 月 28 日
连接到 WebUI 时机器重启 #130

由#143修复