开源改变世界!!

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794

推推 grbl 2年前 (2023-02-05) 129次浏览
打开
kdomanski 打开了这个问题 上星期 · 13条评论
打开

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域#794

kdomanski 打开了这个问题 上星期 · 13条评论

评论

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者
克多曼斯基 评论了 上星期  

控制板

丰盛E4

机器描述

改装 3018

输入电路

没有反应

配置文件

name: "3018 upgraded"
board: "FYSETC E4"
verbose_errors: true
use_line_numbers: true

start:
  must_home: false
  deactivate_parking: true
  check_limits: false

stepping:
  engine: RMT
  idle_ms: 255
  pulse_us: 2
  dir_delay_us: 1
  disable_delay_us: 1

axes:
  shared_stepper_disable_pin: gpio.25

  x:
    steps_per_mm: 800
    max_rate_mm_per_min: 5000
    acceleration_mm_per_sec2: 150
    max_travel_mm: 289
    soft_limits: false
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 1
      seek_mm_per_min: 1200

    motor0:
      hard_limits: false
      pulloff_mm: 4.000
      limit_all_pin: gpio.34
      tmc_2209:
        uart:
          txd_pin: gpio.22
          rxd_pin: gpio.21
          baud: 115200
          mode: 8N1
        addr: 1
        r_sense_ohms: 0.110
        run_amps: 1.0
        hold_amps: 0.250
        microsteps: 16
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: CoolStep
        homing_mode: CoolStep
        use_enable: false
        step_pin: gpio.27:high
        direction_pin: gpio.26:low

  y:
    steps_per_mm: 800
    max_rate_mm_per_min: 5000
    acceleration_mm_per_sec2: 150
    max_travel_mm: 172
    soft_limits: false
    homing:
      cycle: 2
      allow_single_axis: true
      positive_direction: false
      mpos_mm: 1
      seek_mm_per_min: 1200

    motor0:
      hard_limits: false
      pulloff_mm: 2.000
      limit_all_pin: gpio.35
      tmc_2209:
        addr: 3
        r_sense_ohms: 0.110
        run_amps: 1.0
        hold_amps: 0.250
        microsteps: 16
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: CoolStep
        homing_mode: CoolStep
        use_enable: false
        step_pin: gpio.33:high
        direction_pin: gpio.32:high
    # Optionally E as secondary Y motor
    # motor1:
    #   hard_limits: false
    #   pulloff_mm: 2.000
    #   tmc_2209:
    #     addr: 2
    #     r_sense_ohms: 0.110
    #     run_amps: 1.0
    #     hold_amps: 0.250
    #     microsteps: 4
    #     toff_disable: 0
    #     toff_stealthchop: 5
    #     toff_coolstep: 3
    #     run_mode: CoolStep
    #     homing_mode: CoolStep
    #     use_enable: false
    #     step_pin: gpio.16:high
    #     direction_pin: gpio.17:high

  z:
    steps_per_mm: 800
    max_rate_mm_per_min: 800
    acceleration_mm_per_sec2: 24
    max_travel_mm: 1000
    homing:
      cycle: 1
      allow_single_axis: true
      mpos_mm: 1
      seek_mm_per_min: 500

    motor0:
      hard_limits: false
      pulloff_mm: 2.000
      limit_pos_pin: gpio.36
      tmc_2209:
        addr: 0
        r_sense_ohms: 0.110
        run_amps: 1.0
        hold_amps: 0.250
        microsteps: 16
        toff_disable: 0
        toff_stealthchop: 5
        toff_coolstep: 3
        run_mode: CoolStep
        homing_mode: CoolStep
        use_enable: false
        step_pin: gpio.14:high
        direction_pin: gpio.12:low

spi:
  miso_pin: gpio.19
  mosi_pin: gpio.23
  sck_pin: gpio.18

sdcard:
  cs_pin: gpio.5
  card_detect_pin: NO_PIN

coolant:
  mist_pin: gpio.4
  delay_ms: 50

probe:
  pin: gpio.15:low
  check_mode_start: false

pwm:
  pwm_hz: 5000
  direction_pin: NO_PIN
  output_pin: gpio.2
  enable_pin: NO_PIN
  disable_with_s0: false
  s0_with_disable: true
  spinup_ms: 10
  spindown_ms: 10
  tool_num: 0
  speed_map: 0=0.000% 10000=100.000%
  off_on_alarm: true

启动消息

[MSG:INFO: FluidNC v3.6.6]                                                                                                                                                                                                                    
[MSG:INFO: Compiled with ESP32 SDK:v4.4.1-1-gb8050b365e]                                                                                                                                                                                      
[MSG:INFO: Local filesystem type is spiffs]                                                                                                                                                                                                   
[MSG:INFO: Configuration file:spinny_e4.yaml]                                                                                                                                                                                                 
[MSG:INFO: Machine 3018 upgraded]                                                                                                                                                                                                             
[MSG:INFO: Board FYSETC E4]                                                                                                                                                                                                          
[MSG:INFO: SPI SCK:gpio.18 MOSI:gpio.23 MISO:gpio.19]                                                                                                                                                                                         
[MSG:INFO: SD Card cs_pin:gpio.5 detect:NO_PIN]                                                                                                                                                                                               
[MSG:INFO: Stepping:RMT Pulse:2us Dsbl Delay:1us Dir Delay:1us Idle Delay:255ms]                                                                                                                                                              
[MSG:INFO: Axis count 3]                                                                                                                                                                                                                      
[MSG:INFO: Shared stepper disable gpio.25]                                                                                                                                                                                                    
[MSG:INFO: Axis X (1.000,290.000)]                                                                                                                                                                                                            
[MSG:INFO:   Motor0]                                                                                                                                                                                                                          
[MSG:INFO: Trinamic Stepper Uart Tx:gpio.22 Rx:gpio.21 RTS:NO_PIN Baud:115200]                                                                                                                                                                
[MSG:INFO:     tmc_2209 Step:gpio.27 Dir:gpio.26:low Disable:NO_PIN Addr:1 R:0.110]                                                                                                                                                           
[MSG:INFO:  X All Limit gpio.34]                                                                                                                                                                                                              
[MSG:INFO: Axis Y (1.000,173.000)]                                                                                                                                                                                                            
[MSG:INFO:   Motor0]                                                                                                                                                                                                                          
[MSG:INFO:     tmc_2209 Step:gpio.33 Dir:gpio.32 Disable:NO_PIN Addr:3 R:0.110]                                                                                                                                                               
[MSG:INFO:  Y All Limit gpio.35]                                                                                                                                                                                                              
[MSG:INFO: Axis Z (-999.000,1.000)]                                                                                                                                                                                                           
[MSG:INFO:   Motor0]                                                                                                                                                                                                                          
[MSG:INFO:     tmc_2209 Step:gpio.14 Dir:gpio.12:low Disable:NO_PIN Addr:0 R:0.110]                                                                                                                                                           
[MSG:INFO:  Z Pos Limit gpio.39]                                                                                                                                                                                                              
[MSG:INFO: X Axis driver test passed]                                                                                                                                                                                                         
[MSG:INFO: Y Axis driver test passed]                                                                                                                                                                                                         
[MSG:INFO: Z Axis driver test passed]                                                                                                                                                                                                         
[MSG:INFO: Kinematic system: Cartesian]                                                                                                                                                                                                       
[MSG:INFO: PWM Spindle Ena:NO_PIN Out:gpio.2 Dir:NO_PIN Freq:5000Hz Period:8191]                                                                                                                                                              
[MSG:INFO: Using spindle PWM]                                                                                                                                                                                                                 
[MSG:INFO: Mist coolant gpio.4]                                                                                                                                                                                                               
[MSG:INFO: Probe Pin: gpio.15:low]                                                                                                                                                                                                            
[MSG:INFO: AP SSID FluidNC-E4 IP 192.168.0.1 mask 255.255.255.0 channel 1]                                                                                                                                                                    
[MSG:INFO: AP started]                                                                                                                                                                                                                        
[MSG:INFO: WiFi on]                                                                                                                                                                                                                           
[MSG:INFO: Captive Portal Started]                                                                                                                                                                                                            
[MSG:INFO: HTTP started on port 80]                                                                                                                                                                                                           
[MSG:INFO: Telnet started on port 23] 

发生了什么?

运行 gcode 时,控制器随机出现 panic:

Guru Meditation Error: Core  1 panic'ed (Cache disabled but cached memory region accessed).

Core  1 register dump:
PC      : 0x40112248  PS      : 0x00060035  A0      : 0x8008a724  A1      : 0x3ffc030c
A2      : 0x3ffb4ad4  A3      : 0x00000000  A4      : 0x3ffbed08  A5      : 0x3ffcd4ac
A6      : 0x3ffca344  A7      : 0x3ffb26fc  A8      : 0x80081e21  A9      : 0x00000002
A10     : 0x0000001a  A11     : 0x00000001  A12     : 0x3ffba630  A13     : 0x3ffba610
A14     : 0x00000004  A15     : 0x3ffcd0d4  SAR     : 0x00000000  EXCCAUSE: 0x00000007
EXCVADDR: 0x00000000  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000


Backtrace:0x40112245:0x3ffc030c |<-CORRUPTED




ELF file SHA256: 0000000000000000

Rebooting...
ets Jul 29 2019 12:21:46

rst:0x3 (SW_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:12812
load:0x40080400,len:3032
entry 0x400805e4

其他信息

没有反应

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者作者

not at the <-CORRUPTEDbacktrace 令人惊讶。有什么建议我可以尝试获得适当的回溯吗?

我在 v3.6.6 ELF 中查找了 PC 地址0x40112248,但它只指向__digitalWrite.

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
所有者
培养 评论了 上星期

我们在这里有一些关于使用回溯的信息。

http://wiki.fluidnc.com/en/installation#backtrace-decoding-windows

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者作者

谢谢,这有点帮助,但我仍然没有任何意义。

addr2line将我指向框架代码本身:

❯ addr2line -a 0x40112245:0x3ffc030c -e /Users/kdomanski/Downloads/wifi-firmware-fluidnc-v3.6.6.elf
0x40112245
/home/runner/.platformio/packages/framework-arduinoespressif32/cores/esp32/esp32-hal-gpio.c:108

到目前为止我的发现:

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
合作者

“Cache disabled but cached memory region accessed”通常意味着 ESP32 试图在中断服务程序中从 FLASH 中填充指令缓存。我们尝试用 IRAM_ATTR 标记所有 ISR 代码,以便它从指令 RAM 运行并且不需要访问 FLASH,但 C++ 编译器使这变得困难。switch 语句和虚拟方法都会生成位于 FLASH 中的代码片段,而不管它们封闭函数上的 IRAM_ATTR。我们有一个链接器脚本解决方法,但有时我们会遗漏一些东西。回溯对于调试这种情况通常毫无用处。我将尝试重现该问题,看看是否能找出我们遗漏的内容。

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
合作者

请提供一个恐慌的 GCode 文件。还请告诉我们您使用的是什么发件人 – WebUI、UGS 或其他。如果您使用的是串行发送器,WebUI 是否也已连接?

恐慌发生之前需要多长时间?我知道它不太可能是确定性的,但它是几分钟、几小时还是什么?

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者作者

1001.nc.zip

我一直在通过串口使用 UGS 进行流式传输,WebUI 在后台打开。恐慌在 5 到 40 分钟内发生。

在没有打开浏览器 UI 的情况下从 SD 流式传输(在 Fluidterm 中发出的命令)时,我无法重现该问题。

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
合作者

WebUI 是使用自动报告还是轮询?
恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
合作者

哎哟。__digitalWrite 在闪存中。这是一个大问题,因为它被步进中断使用,并且它可能会从 icache 中移出,然后在 ISR 期间重新填充。

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
合作者

再次被 Arduino 框架挫败:

框架-arduinoespressif32/cores/esp32/esp-hal-gpio.c:

extern void ARDUINO_ISR_ATTR __digitalWrite(uint8_t pin, uint8_t val)
{
   gpio_set_level((gpio_num_t)pin, val);
}

框架-arduinoespressif32/cores/esp32/esp-hal.h:

#if CONFIG_ARDUINO_ISR_IRAM
#define ARDUINO_ISR_ATTR IRAM_ATTR
#define ARDUINO_ISR_FLAG ESP_INTR_FLAG_IRAM
#else
#define ARDUINO_ISR_ATTR
#define ARDUINO_ISR_FLAG (0)
#endif

框架-arduinoespressif32/tools/sdk/esp32/sdkconfig:

# CONFIG_ARDUINO_ISR_IRAM is not set
恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者作者

WebUI 是使用自动报告还是轮询?

自动上报,50ms。


深思:在研究这个问题时,我发现了一个建议如下的帖子:

  1. 将当前从 ISR 调用的复杂代码变成休眠任务。
  2. 实际的 ISR 仅唤醒/通知该任务(或将数据发布到队列)并退出。
  3. 保留IRAM_ATTR性能关键代码以避免性能损失。

那行得通吗?

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
合作者
米奇布拉德利 评论了 上星期  

我可能已经修好了。关于您的建议:到目前为止,GPIO 案例中的步骤计时代码太关键了,无法在任务中执行。在 I2SO 案例中,它已经以这种方式工作。

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者作者

嘿,我刚看到公关。感谢您及时的回复。

明天我将尝试使用和不使用该补丁进行重现。

恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794
赞助贡献者作者

作为记录,链接到测试结果:#796(评论)

免费注册 在 GitHub 上加入此对话。已有帐户? 登录评论
标签
还没有
项目

还没有

发展

没有分支机构或拉取请求

3人参加
恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794恐慌:缓存已禁用但在 v3.6.6 中访问了缓存内存区域 #794

喜欢 (0)