mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
hw_support: move periph_ctrl from driver to hw_support
This commit is contained in:
parent
d3f75c52d6
commit
29e9b5b46a
@ -6,7 +6,6 @@ set(srcs
|
||||
"i2c.c"
|
||||
"ledc.c"
|
||||
"legacy_new_driver_coexist.c"
|
||||
"periph_ctrl.c"
|
||||
"rtc_io.c"
|
||||
"rtc_module.c"
|
||||
"sdspi_crc.c"
|
||||
|
@ -90,6 +90,7 @@ menu "Driver configurations"
|
||||
config TWAI_ISR_IN_IRAM
|
||||
bool "Place TWAI ISR function into IRAM"
|
||||
default n
|
||||
select PERIPH_CTRL_FUNC_IN_IRAM if TWAI_ERRATA_FIX_RX_FRAME_INVALID || TWAI_ERRATA_FIX_RX_FIFO_CORRUPT
|
||||
help
|
||||
Place the TWAI ISR in to IRAM. This will allow the ISR to avoid
|
||||
cache misses, and also be able to run whilst the cache is disabled
|
||||
|
@ -1,12 +1,6 @@
|
||||
|
||||
[mapping:driver]
|
||||
archive: libdriver.a
|
||||
entries:
|
||||
# TWAI workarounds that require periph_module_reset() won't work if cache is disabled due to the use of switch jump
|
||||
# tables in periph_module_reset(). We prevent any part of periph_module_reset() (either text or RO data) from being
|
||||
# placed in flash.
|
||||
if TWAI_ISR_IN_IRAM = y && (TWAI_ERRATA_FIX_RX_FRAME_INVALID = y || TWAI_ERRATA_FIX_RX_FIFO_CORRUPT = y):
|
||||
periph_ctrl: periph_module_reset (noflash)
|
||||
if GPTIMER_CTRL_FUNC_IN_IRAM = y:
|
||||
gptimer: gptimer_set_raw_count (noflash)
|
||||
gptimer: gptimer_get_raw_count (noflash)
|
||||
|
@ -11,6 +11,7 @@ if(NOT BOOTLOADER_BUILD)
|
||||
"hw_random.c"
|
||||
"intr_alloc.c"
|
||||
"mac_addr.c"
|
||||
"periph_ctrl.c"
|
||||
"sleep_modes.c"
|
||||
"sleep_gpio.c"
|
||||
"sleep_mac_bb.c"
|
||||
|
@ -85,4 +85,13 @@ menu "Hardware Settings"
|
||||
If you want to use USB_SERIAL_JTAG under sw_reset case or sleep-wakeup case, you shoule select
|
||||
this option. But be aware that this might increase the power consumption.
|
||||
endmenu
|
||||
|
||||
menu "Peripheral Control"
|
||||
config PERIPH_CTRL_FUNC_IN_IRAM
|
||||
bool "Place peripheral control functions into IRAM"
|
||||
default n
|
||||
help
|
||||
Place peripheral control functions (e.g. periph_module_reset) into IRAM,
|
||||
so that these functions can be IRAM-safe and able to be called in the other IRAM interrupt context.
|
||||
endmenu
|
||||
endmenu
|
||||
|
@ -16,3 +16,7 @@ entries:
|
||||
opiram_psram (noflash)
|
||||
if IDF_TARGET_ESP32S2 = y:
|
||||
mmu_psram (noflash)
|
||||
if PERIPH_CTRL_FUNC_IN_IRAM = y:
|
||||
periph_ctrl: periph_module_reset (noflash)
|
||||
periph_ctrl: wifi_module_enable (noflash)
|
||||
periph_ctrl: wifi_module_disable (noflash)
|
||||
|
@ -28,18 +28,17 @@ if(CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# [refactor-todo]: requires "driver" component for periph_ctrl header file
|
||||
if(CONFIG_ESP_PHY_MULTIPLE_INIT_DATA_BIN_EMBED)
|
||||
idf_component_register(SRCS "${srcs}"
|
||||
INCLUDE_DIRS "include" "${idf_target}/include"
|
||||
PRIV_REQUIRES nvs_flash driver
|
||||
PRIV_REQUIRES nvs_flash
|
||||
LDFRAGMENTS "${ldfragments}"
|
||||
EMBED_FILES "${build_dir}/phy_multiple_init_data.bin"
|
||||
)
|
||||
else()
|
||||
idf_component_register(SRCS "${srcs}"
|
||||
INCLUDE_DIRS "include" "${idf_target}/include"
|
||||
PRIV_REQUIRES nvs_flash driver
|
||||
PRIV_REQUIRES nvs_flash
|
||||
LDFRAGMENTS "${ldfragments}"
|
||||
)
|
||||
endif()
|
||||
|
@ -41,7 +41,6 @@ else()
|
||||
# should be removable once using component init functions
|
||||
# link-time registration is used.
|
||||
# [refactor-todo] requires "driver" for headers:
|
||||
# - periph_ctrl.h
|
||||
# - rtc_cntl.h
|
||||
# - spi_common_internal.h
|
||||
pthread bootloader_support efuse driver
|
||||
|
@ -254,6 +254,7 @@ menu "Wi-Fi"
|
||||
config ESP_WIFI_SLP_IRAM_OPT
|
||||
bool "WiFi SLP IRAM speed optimization"
|
||||
select PM_SLP_DEFAULT_PARAMS_OPT
|
||||
select PERIPH_CTRL_FUNC_IN_IRAM
|
||||
help
|
||||
Select this option to place called Wi-Fi library TBTT process and receive beacon functions in IRAM.
|
||||
Some functions can be put in IRAM either by ESP32_WIFI_IRAM_OPT and ESP32_WIFI_RX_IRAM_OPT, or this one.
|
||||
|
@ -150,13 +150,6 @@ entries:
|
||||
wifi_init:wifi_apb80m_request (noflash)
|
||||
wifi_init:wifi_apb80m_release (noflash)
|
||||
|
||||
[mapping:driver_wifi_pm]
|
||||
archive: libdriver.a
|
||||
entries:
|
||||
if ESP_WIFI_SLP_IRAM_OPT =y:
|
||||
periph_ctrl:wifi_module_enable (noflash)
|
||||
periph_ctrl:wifi_module_disable (noflash)
|
||||
|
||||
[mapping:esp_timer_wifi_pm]
|
||||
archive: libesp_timer.a
|
||||
entries:
|
||||
|
@ -4,8 +4,7 @@ set(priv_include)
|
||||
# As CONFIG_USB_OTG_SUPPORTED comes from Kconfig, it is not evaluated yet
|
||||
# when components are being registered.
|
||||
# Thus, always add the (private) requirements, regardless of Kconfig
|
||||
# [refactor-todo]: requires "driver" because "periph_ctrl.h" is used in "hcd.c"
|
||||
set(priv_require hal driver)
|
||||
set(priv_require driver) # usb_phy driver relies on gpio driver API
|
||||
|
||||
if(CONFIG_USB_OTG_SUPPORTED)
|
||||
list(APPEND srcs "hcd.c"
|
||||
|
Loading…
Reference in New Issue
Block a user