title: I disabled watchdogs but I still get a WDT timeout
body: <p>I'm trying to disable all watchdogs from one core. I'm using an ESP32 MH-ET LIVE on Arduino IDE. I'm trying the following in setup() and making a new max priority task (with IRAM_ATTR) on cpu0:</p>
  <pre><code>rtc_wdt_protect_off(); 
  rtc_wdt_disable();
  disableCore0WDT();
  disableLoopWDT();
  </code></pre>
  <p>However, when I try and use:</p>
  <pre><code> static portMUX_TYPE my_mutex; (below #includes)
   vPortCPUInitializeMutex(&amp;my_mutex); (in setup)
   portENTER_CRITICAL(&amp;my_mutex); (in task)
  </code></pre>
  <p>I get still get <code>Guru Meditation Error: Core  0 panic'ed (Interrupt wdt timeout on CPU0)</code>.</p>
  <p>I'm looking to disable the watchdog so I can stay in portENTER_CRITICAL indefinitely on one core because I'm successfully bitbanging at decently fast speeds, but the FreeRTOS ticks and background stuff ends up throwing random 1-2us delays that wreck it. I realize this sacrifices the ability to use timers and extra tasks on that core, but I can accept that. I can't use interrupts in this case, as ESP32 takes +2us to handle the interrupt.</p>
  <p>Here's some minimal example code, if I uncomment the portENTER/portEXIT code, it errors out.</p>
  <pre><code>#include &quot;soc/rtc_wdt.h&quot;
  #include &quot;esp_int_wdt.h&quot;
  #include &quot;esp_task_wdt.h&quot;
  
  static portMUX_TYPE my_mutex;
  
  IRAM_ATTR void setup() {
    rtc_wdt_protect_off();
    rtc_wdt_disable();
    disableCore0WDT();
    disableLoopWDT();
    vPortCPUInitializeMutex(&amp;my_mutex);
    
    Serial.begin(115200);
  
    TaskHandle_t Task2;
    xTaskCreatePinnedToCore(
        Select,   /* Function to implement the task */
        &quot;Select&quot;, /* Name of the task */
        10000,           /* Stack size in words */
        NULL,            /* Task input parameter */
        configMAX_PRIORITIES,               /* Priority of the task */
        &amp;Task2,          /* Task handle. */
        0);              /* Core where the task should run */
  
  }
  
  IRAM_ATTR void Select( void * parameter) {
    unsigned long sincePrint = millis();
    
    portENTER_CRITICAL(&amp;my_mutex);
    for(int i = 0; i &lt; 10000000; i++) {
      digitalWrite(22, 1);
      digitalWrite(22, 0);
      esp_task_wdt_reset();
    } 
    portEXIT_CRITICAL(&amp;my_mutex);
  
    Serial.print(millis() - sincePrint);
  
    vTaskDelete(0);
  }
  
  void loop() {
    vTaskDelay(portMAX_DELAY);
  }
  </code></pre>
  <p>Thanks for reading!</p>