Skip to content

gpio_hal_iomux_func_sel was not declared in this scope; #895

@totalretribution

Description

@totalretribution

I get the following error when using the latest pioarduino

NeoPixelBus/src/internal/methods/NeoEsp32LcdXMethod.h:545:32: error: 'gpio_hal_iomux_func_sel' was not declared in this scope; did you mean 'gpio_hal_func_sel'?

Looking at how LovyanGFX fixed this they checked for espressif version

#if defined ( ESP_IDF_VERSION_VAL )
 #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 5, 0)
  #define LGFX_HAL_FUNC_SEL
 #endif
#endif

and did this

 #if defined LGFX_HAL_FUNC_SEL
      gpio_hal_context_t gpio_hal = {
          .dev = GPIO_HAL_GET_HW(GPIO_PORT_0)
      };
      gpio_hal_func_sel(&gpio_hal, GPIO_PIN_MUX_REG[pin], PIN_FUNC_GPIO);
    #else
      gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[pin], PIN_FUNC_GPIO);
    #endif

I tried the same with this in NeoEsp32LcdXMethod but it sadly crashed

void Initialize(uint8_t pin, uint16_t nsBitSendTime, bool invert)
    {
        s_context.Construct(nsBitSendTime);
        
        uint8_t muxIdx = LCD_DATA_OUT0_IDX + _muxId;
        esp_rom_gpio_connect_out_signal(pin, muxIdx, invert, false);
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 5, 0)
        gpio_hal_context_t gpio_hal = {
            .dev = GPIO_HAL_GET_HW(GPIO_PORT_0)
        };
        gpio_hal_func_sel(&gpio_hal, GPIO_PIN_MUX_REG[pin], PIN_FUNC_GPIO);
#else
        gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[pin], PIN_FUNC_GPIO);
#endif
        gpio_set_drive_capability((gpio_num_t)pin, (gpio_drive_cap_t)3);
    }

crashed with the error

rst:0x8 (TG1WDT_SYS_RST),boot:0xb (SPI_FAST_FLASH_BOOT)
Saved PC:0x4037804c
  #0  0x4037804c in _xt_panic at /home/runner/work/esp32-arduino-lib-builder/esp32-arduino-lib-builder/esp-idf/components/esp_system/port/arch/xtensa/panic_handler_asm.S:28

I had this error using platformio with the following in platformio.ini

platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = esp32-s3-devkitc-1

Metadata

Metadata

Assignees

No one assigned

    Labels

    investigatingCurrently under investigation for more understanding of the problem.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions