mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
c113507ad7
since the linker placement of the hal functions are controlled by the Kconfig in the driver component, we should create the linker.lf in the driver component, not in the hal component.
255 lines
6.5 KiB
CMake
255 lines
6.5 KiB
CMake
idf_build_get_property(target IDF_TARGET)
|
|
|
|
# On Linux, there is currently no HAL, hence this simple component registration
|
|
if(${target} STREQUAL "linux")
|
|
idf_component_register()
|
|
return()
|
|
endif()
|
|
|
|
set(srcs "mpu_hal.c"
|
|
"efuse_hal.c"
|
|
"${target}/efuse_hal.c")
|
|
|
|
|
|
set(includes "${target}/include" "include" "platform_port/include")
|
|
|
|
if(NOT CONFIG_HAL_WDT_USE_ROM_IMPL)
|
|
list(APPEND srcs "wdt_hal_iram.c")
|
|
endif()
|
|
|
|
if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP)
|
|
list(APPEND srcs "mmu_hal.c")
|
|
|
|
# We wrap Cache ROM APIs as Cache HAL APIs for: 1. internal ram ; 2. unified APIs
|
|
# ESP32 cache structure / ROM APIs are different and we have a patch `cache_hal_esp32.c` for it.
|
|
if(${target} STREQUAL "esp32")
|
|
list(APPEND srcs "esp32/cache_hal_esp32.c")
|
|
else()
|
|
list(APPEND srcs "cache_hal.c")
|
|
endif()
|
|
endif()
|
|
|
|
if(CONFIG_SOC_LP_TIMER_SUPPORTED)
|
|
list(APPEND srcs "lp_timer_hal.c")
|
|
endif()
|
|
|
|
if(NOT BOOTLOADER_BUILD)
|
|
list(APPEND srcs
|
|
"rtc_io_hal.c"
|
|
"gpio_hal.c"
|
|
"uart_hal.c"
|
|
"uart_hal_iram.c"
|
|
"adc_hal_common.c"
|
|
"adc_oneshot_hal.c"
|
|
"${target}/clk_tree_hal.c")
|
|
|
|
if(NOT CONFIG_APP_BUILD_TYPE_PURE_RAM_APP)
|
|
list(APPEND srcs
|
|
"spi_flash_hal.c"
|
|
"spi_flash_hal_iram.c"
|
|
)
|
|
if(CONFIG_SOC_FLASH_ENC_SUPPORTED)
|
|
list(APPEND srcs "spi_flash_encrypt_hal_iram.c")
|
|
endif()
|
|
endif()
|
|
|
|
if(CONFIG_SOC_SYSTIMER_SUPPORTED AND NOT CONFIG_HAL_SYSTIMER_USE_ROM_IMPL)
|
|
list(APPEND srcs "systimer_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_GPTIMER_SUPPORTED)
|
|
list(APPEND srcs "timer_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_LEDC_SUPPORTED)
|
|
list(APPEND srcs "ledc_hal.c" "ledc_hal_iram.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_I2C_SUPPORTED)
|
|
list(APPEND srcs "i2c_hal.c" "i2c_hal_iram.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_RMT_SUPPORTED)
|
|
list(APPEND srcs "rmt_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_PCNT_SUPPORTED)
|
|
list(APPEND srcs "pcnt_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_MCPWM_SUPPORTED)
|
|
list(APPEND srcs "mcpwm_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_TWAI_SUPPORTED)
|
|
list(APPEND srcs "twai_hal.c" "twai_hal_iram.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_GDMA_SUPPORTED)
|
|
list(APPEND srcs "gdma_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_I2S_SUPPORTED)
|
|
list(APPEND srcs "i2s_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_SDM_SUPPORTED)
|
|
list(APPEND srcs "sdm_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_ETH_USE_ESP32_EMAC)
|
|
list(APPEND srcs "emac_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_ETM_SUPPORTED)
|
|
list(APPEND srcs "etm_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_PARLIO_SUPPORTED)
|
|
list(APPEND srcs "parlio_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_ADC_DMA_SUPPORTED)
|
|
list(APPEND srcs "adc_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_LCDCAM_SUPPORTED)
|
|
list(APPEND srcs "lcd_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_ECC_SUPPORTED)
|
|
list(APPEND srcs "ecc_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_ECDSA_SUPPORTED)
|
|
list(APPEND srcs "ecdsa_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_SHA_SUPPORTED)
|
|
list(APPEND srcs "sha_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_AES_SUPPORTED)
|
|
list(APPEND srcs "aes_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_MODEM_CLOCK_IS_INDEPENDENT)
|
|
list(APPEND srcs "${target}/modem_clock_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_PAU_SUPPORTED)
|
|
list(APPEND srcs "${target}/pau_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_BOD_SUPPORTED)
|
|
list(APPEND srcs "brownout_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_GPSPI_SUPPORTED)
|
|
list(APPEND srcs
|
|
"spi_hal.c"
|
|
"spi_hal_iram.c"
|
|
"spi_slave_hal.c"
|
|
"spi_slave_hal_iram.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2)
|
|
list(APPEND srcs "spi_slave_hd_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_SDIO_SLAVE_SUPPORTED)
|
|
list(APPEND srcs "sdio_slave_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_PMU_SUPPORTED)
|
|
list(APPEND srcs "${target}/pmu_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_APM_SUPPORTED)
|
|
list(APPEND srcs "apm_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_HMAC_SUPPORTED AND NOT CONFIG_IDF_TARGET_ESP32S2)
|
|
# For ESP32-S2 we do not have HMAC HAL layer implementation yet
|
|
list(APPEND srcs "hmac_hal.c")
|
|
endif()
|
|
|
|
if(CONFIG_SOC_DIG_SIGN_SUPPORTED AND NOT CONFIG_IDF_TARGET_ESP32S2)
|
|
# For ESP32-S2 we do not have DS HAL layer implementation yet
|
|
list(APPEND srcs "ds_hal.c")
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32")
|
|
list(APPEND srcs
|
|
"touch_sensor_hal.c"
|
|
"esp32/touch_sensor_hal.c"
|
|
"esp32/gpio_hal_workaround.c")
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32s2")
|
|
list(APPEND srcs
|
|
"spi_flash_hal_gpspi.c"
|
|
"touch_sensor_hal.c"
|
|
"usb_hal.c"
|
|
"usb_phy_hal.c"
|
|
"xt_wdt_hal.c"
|
|
"esp32s2/cp_dma_hal.c"
|
|
"esp32s2/touch_sensor_hal.c"
|
|
"usb_dwc_hal.c")
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32s3")
|
|
list(APPEND srcs
|
|
"spi_flash_hal_gpspi.c"
|
|
"touch_sensor_hal.c"
|
|
"usb_hal.c"
|
|
"usb_phy_hal.c"
|
|
"xt_wdt_hal.c"
|
|
"esp32s3/touch_sensor_hal.c"
|
|
"esp32s3/rtc_cntl_hal.c"
|
|
"usb_dwc_hal.c")
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32c3")
|
|
list(APPEND srcs
|
|
"spi_flash_hal_gpspi.c"
|
|
"xt_wdt_hal.c"
|
|
"esp32c3/rtc_cntl_hal.c")
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32c2")
|
|
list(APPEND srcs
|
|
"spi_flash_hal_gpspi.c"
|
|
"esp32c2/rtc_cntl_hal.c")
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32c6")
|
|
list(APPEND srcs
|
|
"spi_flash_hal_gpspi.c")
|
|
|
|
endif()
|
|
|
|
if(${target} STREQUAL "esp32h2")
|
|
list(APPEND srcs
|
|
"spi_flash_hal_gpspi.c"
|
|
)
|
|
|
|
list(REMOVE_ITEM srcs
|
|
"esp32h2/rtc_cntl_hal.c"
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
idf_component_register(SRCS ${srcs}
|
|
INCLUDE_DIRS ${includes}
|
|
PRIV_INCLUDE_DIRS ${priv_include}
|
|
REQUIRES soc esp_rom
|
|
LDFRAGMENTS linker.lf)
|
|
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
|
|
|
if(CONFIG_HAL_DEFAULT_ASSERTION_LEVEL EQUAL 1)
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u abort")
|
|
elseif(CONFIG_HAL_DEFAULT_ASSERTION_LEVEL EQUAL 2)
|
|
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u __assert_func")
|
|
endif()
|