forked from espressif/esp-idf
Merge branch 'feature/esp_driver_gptimer' into 'master'
refactor(gptimer): refactor gptimer driver into a component Closes IDF-8375 See merge request espressif/esp-idf!26716
This commit is contained in:
@@ -63,8 +63,8 @@ endif()
|
|||||||
idf_component_register(SRCS "${srcs}"
|
idf_component_register(SRCS "${srcs}"
|
||||||
INCLUDE_DIRS "${include_dirs}"
|
INCLUDE_DIRS "${include_dirs}"
|
||||||
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
|
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
|
||||||
# Requires "driver" for GPTimer in "SEGGER_SYSVIEW_Config_FreeRTOS.c"
|
PRIV_REQUIRES soc esp_driver_gptimer esp_driver_gpio
|
||||||
PRIV_REQUIRES soc driver esp_driver_gpio
|
driver # TODO: replace with esp_driver_uart (IDF-8384)
|
||||||
REQUIRES esp_timer
|
REQUIRES esp_timer
|
||||||
LDFRAGMENTS linker.lf)
|
LDFRAGMENTS linker.lf)
|
||||||
|
|
||||||
|
@@ -15,7 +15,7 @@ entries:
|
|||||||
SEGGER_SYSVIEW_FreeRTOS (noflash)
|
SEGGER_SYSVIEW_FreeRTOS (noflash)
|
||||||
|
|
||||||
[mapping:app_trace_driver]
|
[mapping:app_trace_driver]
|
||||||
archive: libdriver.a
|
archive: libesp_driver_gptimer.a
|
||||||
entries:
|
entries:
|
||||||
if APPTRACE_SV_TS_SOURCE_GPTIMER = y:
|
if APPTRACE_SV_TS_SOURCE_GPTIMER = y:
|
||||||
gptimer (noflash)
|
gptimer (noflash)
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
idf_component_register(SRCS "test_app_trace_main.c" "test_trace.c"
|
idf_component_register(SRCS "test_app_trace_main.c" "test_trace.c"
|
||||||
INCLUDE_DIRS "."
|
INCLUDE_DIRS "."
|
||||||
PRIV_REQUIRES app_trace unity driver
|
PRIV_REQUIRES app_trace unity esp_driver_gptimer
|
||||||
WHOLE_ARCHIVE)
|
WHOLE_ARCHIVE)
|
||||||
|
@@ -13,7 +13,6 @@ set(includes "include"
|
|||||||
"deprecated"
|
"deprecated"
|
||||||
"analog_comparator/include"
|
"analog_comparator/include"
|
||||||
"dac/include"
|
"dac/include"
|
||||||
"gptimer/include"
|
|
||||||
"i2c/include"
|
"i2c/include"
|
||||||
"i2s/include"
|
"i2s/include"
|
||||||
"ledc/include"
|
"ledc/include"
|
||||||
@@ -66,17 +65,9 @@ if(CONFIG_SOC_PARLIO_SUPPORTED)
|
|||||||
list(APPEND srcs "parlio/parlio_common.c" "parlio/parlio_tx.c")
|
list(APPEND srcs "parlio/parlio_common.c" "parlio/parlio_tx.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# GPTimer related source files
|
# GPTimer legacy driver
|
||||||
if(CONFIG_SOC_GPTIMER_SUPPORTED)
|
if(CONFIG_SOC_GPTIMER_SUPPORTED)
|
||||||
list(APPEND srcs "gptimer/gptimer.c"
|
list(APPEND srcs "deprecated/timer_legacy.c")
|
||||||
"gptimer/gptimer_priv.c"
|
|
||||||
"deprecated/timer_legacy.c")
|
|
||||||
|
|
||||||
list(APPEND ldfragments "gptimer/linker.lf")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(CONFIG_SOC_TIMER_SUPPORT_ETM)
|
|
||||||
list(APPEND srcs "gptimer/gptimer_etm.c")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# I2C related source files
|
# I2C related source files
|
||||||
@@ -226,7 +217,7 @@ else()
|
|||||||
REQUIRES esp_pm esp_ringbuf freertos soc hal esp_hw_support
|
REQUIRES esp_pm esp_ringbuf freertos soc hal esp_hw_support
|
||||||
# for backward compatibility, the driver component needs to
|
# for backward compatibility, the driver component needs to
|
||||||
# have a public dependency on other "esp_driver_foo" components
|
# have a public dependency on other "esp_driver_foo" components
|
||||||
esp_driver_gpio esp_driver_pcnt
|
esp_driver_gpio esp_driver_pcnt esp_driver_gptimer
|
||||||
LDFRAGMENTS ${ldfragments}
|
LDFRAGMENTS ${ldfragments}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
@@ -207,10 +207,6 @@ menu "Driver Configurations"
|
|||||||
Note that, this option only controls the Analog Comparator driver log, won't affect other drivers.
|
Note that, this option only controls the Analog Comparator driver log, won't affect other drivers.
|
||||||
endmenu # Analog Comparator Configuration
|
endmenu # Analog Comparator Configuration
|
||||||
|
|
||||||
orsource "./gptimer/Kconfig.gptimer"
|
|
||||||
|
|
||||||
orsource "../esp_driver_pcnt/Kconfig.pcnt"
|
|
||||||
|
|
||||||
orsource "./rmt/Kconfig.rmt"
|
orsource "./rmt/Kconfig.rmt"
|
||||||
|
|
||||||
orsource "./mcpwm/Kconfig.mcpwm"
|
orsource "./mcpwm/Kconfig.mcpwm"
|
||||||
|
@@ -16,10 +16,6 @@ components/driver/test_apps/dac_test_apps/legacy_dac_driver:
|
|||||||
disable:
|
disable:
|
||||||
- if: SOC_DAC_SUPPORTED != 1
|
- if: SOC_DAC_SUPPORTED != 1
|
||||||
|
|
||||||
components/driver/test_apps/gptimer:
|
|
||||||
disable:
|
|
||||||
- if: SOC_GPTIMER_SUPPORTED != 1
|
|
||||||
|
|
||||||
components/driver/test_apps/i2c_test_apps:
|
components/driver/test_apps/i2c_test_apps:
|
||||||
disable:
|
disable:
|
||||||
- if: SOC_I2C_SUPPORTED != 1 # TODO: IDF-8070
|
- if: SOC_I2C_SUPPORTED != 1 # TODO: IDF-8070
|
||||||
|
@@ -9,5 +9,5 @@ set(srcs "test_app_main.c"
|
|||||||
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
||||||
# the component can be registered as WHOLE_ARCHIVE
|
# the component can be registered as WHOLE_ARCHIVE
|
||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
PRIV_REQUIRES driver esp_wifi nvs_flash esp_adc test_utils efuse
|
PRIV_REQUIRES esp_driver_gptimer esp_driver_gpio esp_wifi nvs_flash esp_adc test_utils efuse
|
||||||
WHOLE_ARCHIVE)
|
WHOLE_ARCHIVE)
|
||||||
|
16
components/esp_driver_gptimer/CMakeLists.txt
Normal file
16
components/esp_driver_gptimer/CMakeLists.txt
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
set(srcs)
|
||||||
|
set(public_include "include")
|
||||||
|
if(CONFIG_SOC_GPTIMER_SUPPORTED)
|
||||||
|
list(APPEND srcs "src/gptimer.c"
|
||||||
|
"src/gptimer_priv.c")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(CONFIG_SOC_TIMER_SUPPORT_ETM)
|
||||||
|
list(APPEND srcs "src/gptimer_etm.c")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
idf_component_register(SRCS ${srcs}
|
||||||
|
INCLUDE_DIRS ${public_include}
|
||||||
|
PRIV_REQUIRES "esp_pm"
|
||||||
|
LDFRAGMENTS "linker.lf"
|
||||||
|
)
|
@@ -1,4 +1,4 @@
|
|||||||
menu "GPTimer Configuration"
|
menu "ESP-Driver:GPTimer Configurations"
|
||||||
depends on SOC_GPTIMER_SUPPORTED
|
depends on SOC_GPTIMER_SUPPORTED
|
||||||
config GPTIMER_ISR_HANDLER_IN_IRAM
|
config GPTIMER_ISR_HANDLER_IN_IRAM
|
||||||
bool "Place GPTimer ISR handler into IRAM"
|
bool "Place GPTimer ISR handler into IRAM"
|
||||||
@@ -36,4 +36,4 @@ menu "GPTimer Configuration"
|
|||||||
help
|
help
|
||||||
Wether to enable the debug log message for GPTimer driver.
|
Wether to enable the debug log message for GPTimer driver.
|
||||||
Note that, this option only controls the GPTimer driver log, won't affect other drivers.
|
Note that, this option only controls the GPTimer driver log, won't affect other drivers.
|
||||||
endmenu # GPTimer Configuration
|
endmenu
|
@@ -35,7 +35,7 @@ typedef struct {
|
|||||||
* @param[in] user_ctx User data, passed from `gptimer_register_event_callbacks`
|
* @param[in] user_ctx User data, passed from `gptimer_register_event_callbacks`
|
||||||
* @return Whether a high priority task has been waken up by this function
|
* @return Whether a high priority task has been waken up by this function
|
||||||
*/
|
*/
|
||||||
typedef bool (*gptimer_alarm_cb_t) (gptimer_handle_t timer, const gptimer_alarm_event_data_t *edata, void *user_ctx);
|
typedef bool (*gptimer_alarm_cb_t)(gptimer_handle_t timer, const gptimer_alarm_event_data_t *edata, void *user_ctx);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
@@ -1,5 +1,5 @@
|
|||||||
[mapping:gptimer_driver]
|
[mapping:gptimer_driver]
|
||||||
archive: libdriver.a
|
archive: libesp_driver_gptimer.a
|
||||||
entries:
|
entries:
|
||||||
if GPTIMER_ISR_HANDLER_IN_IRAM = y:
|
if GPTIMER_ISR_HANDLER_IN_IRAM = y:
|
||||||
gptimer: gptimer_default_isr (noflash)
|
gptimer: gptimer_default_isr (noflash)
|
@@ -254,8 +254,8 @@ esp_err_t gptimer_register_event_callbacks(gptimer_handle_t timer, const gptimer
|
|||||||
isr_flags |= 1 << (timer->intr_priority);
|
isr_flags |= 1 << (timer->intr_priority);
|
||||||
}
|
}
|
||||||
ESP_RETURN_ON_ERROR(esp_intr_alloc_intrstatus(timer_group_periph_signals.groups[group_id].timer_irq_id[timer_id], isr_flags,
|
ESP_RETURN_ON_ERROR(esp_intr_alloc_intrstatus(timer_group_periph_signals.groups[group_id].timer_irq_id[timer_id], isr_flags,
|
||||||
(uint32_t)timer_ll_get_intr_status_reg(timer->hal.dev), TIMER_LL_EVENT_ALARM(timer_id),
|
(uint32_t)timer_ll_get_intr_status_reg(timer->hal.dev), TIMER_LL_EVENT_ALARM(timer_id),
|
||||||
gptimer_default_isr, timer, &timer->intr), TAG, "install interrupt service failed");
|
gptimer_default_isr, timer, &timer->intr), TAG, "install interrupt service failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
// enable/disable GPTimer interrupt events
|
// enable/disable GPTimer interrupt events
|
@@ -0,0 +1,7 @@
|
|||||||
|
# Documentation: .gitlab/ci/README.md#manifest-file-to-control-the-buildtest-apps
|
||||||
|
|
||||||
|
components/esp_driver_gptimer/test_apps/gptimer:
|
||||||
|
disable:
|
||||||
|
- if: SOC_GPTIMER_SUPPORTED != 1
|
||||||
|
depends_components:
|
||||||
|
- esp_driver_gptimer
|
@@ -10,7 +10,7 @@ project(gptimer_test)
|
|||||||
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
if(CONFIG_COMPILER_DUMP_RTL_FILES)
|
||||||
add_custom_target(check_test_app_sections ALL
|
add_custom_target(check_test_app_sections ALL
|
||||||
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
COMMAND ${PYTHON} $ENV{IDF_PATH}/tools/ci/check_callgraph.py
|
||||||
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/driver/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
--rtl-dirs ${CMAKE_BINARY_DIR}/esp-idf/esp_driver_gptimer/,${CMAKE_BINARY_DIR}/esp-idf/hal/
|
||||||
--elf-file ${CMAKE_BINARY_DIR}/gptimer_test.elf
|
--elf-file ${CMAKE_BINARY_DIR}/gptimer_test.elf
|
||||||
find-refs
|
find-refs
|
||||||
--from-sections=.iram0.text
|
--from-sections=.iram0.text
|
@@ -4,14 +4,8 @@ if(CONFIG_SOC_PCNT_SUPPORTED)
|
|||||||
list(APPEND srcs "src/pulse_cnt.c")
|
list(APPEND srcs "src/pulse_cnt.c")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(BOOTLOADER_BUILD)
|
idf_component_register(SRCS ${srcs}
|
||||||
# Bootloader shall NOT depend on the drivers
|
INCLUDE_DIRS ${public_include}
|
||||||
idf_component_register()
|
PRIV_REQUIRES "esp_pm" "esp_driver_gpio"
|
||||||
else()
|
LDFRAGMENTS "linker.lf"
|
||||||
idf_component_register(SRCS ${srcs}
|
)
|
||||||
INCLUDE_DIRS ${public_include}
|
|
||||||
PRIV_REQUIRES "esp_pm"
|
|
||||||
"esp_driver_gpio"
|
|
||||||
LDFRAGMENTS "linker.lf"
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
menu "PCNT Configuration"
|
menu "ESP-Driver:PCNT Configurations"
|
||||||
depends on SOC_PCNT_SUPPORTED
|
depends on SOC_PCNT_SUPPORTED
|
||||||
config PCNT_CTRL_FUNC_IN_IRAM
|
config PCNT_CTRL_FUNC_IN_IRAM
|
||||||
bool "Place PCNT control functions into IRAM"
|
bool "Place PCNT control functions into IRAM"
|
||||||
@@ -29,4 +29,4 @@ menu "PCNT Configuration"
|
|||||||
help
|
help
|
||||||
Wether to enable the debug log message for PCNT driver.
|
Wether to enable the debug log message for PCNT driver.
|
||||||
Note that, this option only controls the PCNT driver log, won't affect other drivers.
|
Note that, this option only controls the PCNT driver log, won't affect other drivers.
|
||||||
endmenu # PCNT Configuration
|
endmenu
|
@@ -13,6 +13,11 @@ components/esp_hw_support/test_apps/esp_hw_support_unity_tests:
|
|||||||
components/esp_hw_support/test_apps/etm:
|
components/esp_hw_support/test_apps/etm:
|
||||||
disable:
|
disable:
|
||||||
- if: SOC_ETM_SUPPORTED != 1
|
- if: SOC_ETM_SUPPORTED != 1
|
||||||
|
depends_components:
|
||||||
|
- esp_driver_gptimer
|
||||||
|
- esp_driver_gpio
|
||||||
|
- esp_timer
|
||||||
|
- driver # TODO: replace with esp_driver_mcpwm, esp_driver_ana_cmpr
|
||||||
|
|
||||||
components/esp_hw_support/test_apps/host_test_linux:
|
components/esp_hw_support/test_apps/host_test_linux:
|
||||||
enable:
|
enable:
|
||||||
|
@@ -29,5 +29,6 @@ endif()
|
|||||||
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
# In order for the cases defined by `TEST_CASE` to be linked into the final elf,
|
||||||
# the component can be registered as WHOLE_ARCHIVE
|
# the component can be registered as WHOLE_ARCHIVE
|
||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
PRIV_REQUIRES unity esp_timer driver
|
PRIV_REQUIRES unity esp_timer esp_driver_gptimer esp_driver_gpio
|
||||||
|
driver # TODO: replace with esp_driver_mcpwm (IDF-8379), esp_driver_ana_cmpr
|
||||||
WHOLE_ARCHIVE)
|
WHOLE_ARCHIVE)
|
||||||
|
@@ -38,10 +38,9 @@ components/spi_flash/test_apps/flash_suspend:
|
|||||||
- if: IDF_TARGET != "esp32c3"
|
- if: IDF_TARGET != "esp32c3"
|
||||||
temporary: true
|
temporary: true
|
||||||
reason: lack of runners
|
reason: lack of runners
|
||||||
depends_filepatterns:
|
|
||||||
- components/driver/gptimer/**/*
|
|
||||||
depends_components:
|
depends_components:
|
||||||
- spi_flash
|
- spi_flash
|
||||||
|
- esp_driver_gptimer
|
||||||
|
|
||||||
components/spi_flash/test_apps/mspi_test:
|
components/spi_flash/test_apps/mspi_test:
|
||||||
disable:
|
disable:
|
||||||
|
@@ -79,9 +79,6 @@ INPUT = \
|
|||||||
$(PROJECT_PATH)/components/driver/dac/include/driver/dac_cosine.h \
|
$(PROJECT_PATH)/components/driver/dac/include/driver/dac_cosine.h \
|
||||||
$(PROJECT_PATH)/components/driver/dac/include/driver/dac_oneshot.h \
|
$(PROJECT_PATH)/components/driver/dac/include/driver/dac_oneshot.h \
|
||||||
$(PROJECT_PATH)/components/driver/dac/include/driver/dac_types.h \
|
$(PROJECT_PATH)/components/driver/dac/include/driver/dac_types.h \
|
||||||
$(PROJECT_PATH)/components/driver/gptimer/include/driver/gptimer.h \
|
|
||||||
$(PROJECT_PATH)/components/driver/gptimer/include/driver/gptimer_etm.h \
|
|
||||||
$(PROJECT_PATH)/components/driver/gptimer/include/driver/gptimer_types.h \
|
|
||||||
$(PROJECT_PATH)/components/driver/i2c/include/driver/i2c.h \
|
$(PROJECT_PATH)/components/driver/i2c/include/driver/i2c.h \
|
||||||
$(PROJECT_PATH)/components/driver/i2s/include/driver/i2s_common.h \
|
$(PROJECT_PATH)/components/driver/i2s/include/driver/i2s_common.h \
|
||||||
$(PROJECT_PATH)/components/driver/i2s/include/driver/i2s_pdm.h \
|
$(PROJECT_PATH)/components/driver/i2s/include/driver/i2s_pdm.h \
|
||||||
@@ -139,6 +136,9 @@ INPUT = \
|
|||||||
$(PROJECT_PATH)/components/esp_driver_gpio/include/driver/gpio_filter.h \
|
$(PROJECT_PATH)/components/esp_driver_gpio/include/driver/gpio_filter.h \
|
||||||
$(PROJECT_PATH)/components/esp_driver_gpio/include/driver/lp_io.h \
|
$(PROJECT_PATH)/components/esp_driver_gpio/include/driver/lp_io.h \
|
||||||
$(PROJECT_PATH)/components/esp_driver_gpio/include/driver/rtc_io.h \
|
$(PROJECT_PATH)/components/esp_driver_gpio/include/driver/rtc_io.h \
|
||||||
|
$(PROJECT_PATH)/components/esp_driver_gptimer/include/driver/gptimer.h \
|
||||||
|
$(PROJECT_PATH)/components/esp_driver_gptimer/include/driver/gptimer_etm.h \
|
||||||
|
$(PROJECT_PATH)/components/esp_driver_gptimer/include/driver/gptimer_types.h \
|
||||||
$(PROJECT_PATH)/components/esp_driver_pcnt/include/driver/pulse_cnt.h \
|
$(PROJECT_PATH)/components/esp_driver_pcnt/include/driver/pulse_cnt.h \
|
||||||
$(PROJECT_PATH)/components/esp_eth/include/esp_eth_com.h \
|
$(PROJECT_PATH)/components/esp_eth/include/esp_eth_com.h \
|
||||||
$(PROJECT_PATH)/components/esp_eth/include/esp_eth_driver.h \
|
$(PROJECT_PATH)/components/esp_eth/include/esp_eth_driver.h \
|
||||||
|
@@ -12,3 +12,4 @@ ESP-IDF 5.x Migration Guide
|
|||||||
release-5.x/5.0/index
|
release-5.x/5.0/index
|
||||||
release-5.x/5.1/index
|
release-5.x/5.1/index
|
||||||
release-5.x/5.2/index
|
release-5.x/5.2/index
|
||||||
|
release-5.x/5.3/index
|
||||||
|
9
docs/en/migration-guides/release-5.x/5.3/index.rst
Normal file
9
docs/en/migration-guides/release-5.x/5.3/index.rst
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
Migration from 5.2 to 5.3
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
:link_to_translation:`zh_CN:[中文]`
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
peripherals
|
30
docs/en/migration-guides/release-5.x/5.3/peripherals.rst
Normal file
30
docs/en/migration-guides/release-5.x/5.3/peripherals.rst
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
Peripherals
|
||||||
|
===========
|
||||||
|
|
||||||
|
:link_to_translation:`zh_CN:[中文]`
|
||||||
|
|
||||||
|
In order to control the dependence of other components on drivers at a smaller granularity, the original peripheral drivers under the `driver`` component were split into separate components:
|
||||||
|
|
||||||
|
- `esp_driver_gptimer` - Driver for general purpose timers
|
||||||
|
- `esp_driver_pcnt` - Driver for pulse counter
|
||||||
|
- `esp_driver_gpio` - Driver for GPIO
|
||||||
|
|
||||||
|
For compatibility, the original `driver`` component is still treated as an all-in-one component by registering these `esp_driver_xyz`` components as its public dependencies. In other words, you do not need to modify the CMake file of an existing project, but you now have a way to specify the specific peripheral driver that your project depends on.
|
||||||
|
|
||||||
|
Originally, you may have used **linker.lf** to specify the link location of some driver functions in memory space, but now, because the location of the driver files have been moved, you need to make changes your **linker.lf** file accordingly. For example, a linker.lf file with the following entries:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[mapping:my_mapping_scheme]
|
||||||
|
archive: libdriver.a
|
||||||
|
entries:
|
||||||
|
gpio (noflash)
|
||||||
|
|
||||||
|
Should be changed to:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[mapping:my_mapping_scheme]
|
||||||
|
archive: libesp_driver_gpio.a
|
||||||
|
entries:
|
||||||
|
gpio (noflash)
|
@@ -12,3 +12,4 @@
|
|||||||
release-5.x/5.0/index
|
release-5.x/5.0/index
|
||||||
release-5.x/5.1/index
|
release-5.x/5.1/index
|
||||||
release-5.x/5.2/index
|
release-5.x/5.2/index
|
||||||
|
release-5.x/5.3/index
|
||||||
|
9
docs/zh_CN/migration-guides/release-5.x/5.3/index.rst
Normal file
9
docs/zh_CN/migration-guides/release-5.x/5.3/index.rst
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
从 5.2 迁移到 5.3
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
:link_to_translation:`en:[English]`
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 1
|
||||||
|
|
||||||
|
peripherals
|
30
docs/zh_CN/migration-guides/release-5.x/5.3/peripherals.rst
Normal file
30
docs/zh_CN/migration-guides/release-5.x/5.3/peripherals.rst
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
外设
|
||||||
|
====
|
||||||
|
|
||||||
|
:link_to_translation:`en:[English]`
|
||||||
|
|
||||||
|
为了细粒度地控制其他组件对外设驱动的依赖,原先位于 `driver` 组件下的驱动程序被拆分到了各自独立的组件中。这些组件包括:
|
||||||
|
|
||||||
|
- `esp_driver_gptimer` - 通用定时器驱动
|
||||||
|
- `esp_driver_pcnt` - 脉冲计数器驱动
|
||||||
|
- `esp_driver_gpio` - GPIO 驱动
|
||||||
|
|
||||||
|
为了兼容性,原来的 `driver` 组件仍然存在,并作为一个 “all-in-one" 的组件,将以上这些 `esp_driver_xyz` 组件注册成自己的公共依赖。换句话说,你无需修改既有项目的 CMake 文件,但是你现在多了一个途径去指定你项目依赖的具体的外设驱动。
|
||||||
|
|
||||||
|
原来你可能使用 **linker.lf** 指定了一些驱动函数在内存空间的链接位置,但是现在,因为驱动文件的位置发生了挪动,就需要你对 **linker.lf** 文件做出相应的改动的。假如,你的 linker.lf 文件里面有以下的条目:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[mapping:my_mapping_scheme]
|
||||||
|
archive: libdriver.a
|
||||||
|
entries:
|
||||||
|
gpio (noflash)
|
||||||
|
|
||||||
|
现在需要修改成:
|
||||||
|
|
||||||
|
.. code-block:: none
|
||||||
|
|
||||||
|
[mapping:my_mapping_scheme]
|
||||||
|
archive: libesp_driver_gpio.a
|
||||||
|
entries:
|
||||||
|
gpio (noflash)
|
@@ -299,13 +299,23 @@ examples/peripherals/temperature_sensor/temp_sensor_monitor:
|
|||||||
disable:
|
disable:
|
||||||
- if: SOC_TEMPERATURE_SENSOR_INTR_SUPPORT != 1
|
- if: SOC_TEMPERATURE_SENSOR_INTR_SUPPORT != 1
|
||||||
|
|
||||||
examples/peripherals/timer_group:
|
examples/peripherals/timer_group/gptimer:
|
||||||
disable:
|
disable:
|
||||||
- if: SOC_GPTIMER_SUPPORTED != 1
|
- if: SOC_GPTIMER_SUPPORTED != 1
|
||||||
|
depends_components:
|
||||||
|
- esp_driver_gptimer
|
||||||
|
|
||||||
examples/peripherals/timer_group/gptimer_capture_hc_sr04:
|
examples/peripherals/timer_group/gptimer_capture_hc_sr04:
|
||||||
disable:
|
disable:
|
||||||
- if: SOC_TIMER_SUPPORT_ETM != 1
|
- if: SOC_TIMER_SUPPORT_ETM != 1
|
||||||
|
depends_components:
|
||||||
|
- esp_driver_gptimer
|
||||||
|
|
||||||
|
examples/peripherals/timer_group/legacy_driver:
|
||||||
|
disable:
|
||||||
|
- if: SOC_GPTIMER_SUPPORTED != 1
|
||||||
|
depends_components:
|
||||||
|
- driver # legacy driver is still located in the "driver" component
|
||||||
|
|
||||||
examples/peripherals/touch_sensor:
|
examples/peripherals/touch_sensor:
|
||||||
disable:
|
disable:
|
||||||
|
@@ -81,7 +81,7 @@ examples/system/eventfd:
|
|||||||
- if: SOC_GPTIMER_SUPPORTED != 1
|
- if: SOC_GPTIMER_SUPPORTED != 1
|
||||||
depends_components:
|
depends_components:
|
||||||
- vfs
|
- vfs
|
||||||
- driver
|
- esp_driver_gptimer
|
||||||
|
|
||||||
examples/system/flash_suspend:
|
examples/system/flash_suspend:
|
||||||
enable:
|
enable:
|
||||||
|
@@ -35,7 +35,7 @@ set(extra_components_which_shouldnt_be_included
|
|||||||
cxx
|
cxx
|
||||||
# [refactor-todo]: driver is a dependency of esp_pm, spi_flash, vfs, esp_wifi
|
# [refactor-todo]: driver is a dependency of esp_pm, spi_flash, vfs, esp_wifi
|
||||||
# all of these should be removed from G1 except for spi_flash.
|
# all of these should be removed from G1 except for spi_flash.
|
||||||
driver esp_driver_gpio esp_driver_pcnt
|
driver esp_driver_gpio esp_driver_pcnt esp_driver_gptimer
|
||||||
# esp_app_format is dependency of bootloader_support, app_update
|
# esp_app_format is dependency of bootloader_support, app_update
|
||||||
esp_app_format
|
esp_app_format
|
||||||
# esp_bootloader_format is dependency of bootloader_support, app_update
|
# esp_bootloader_format is dependency of bootloader_support, app_update
|
||||||
|
@@ -16,5 +16,7 @@ endif()
|
|||||||
idf_component_register(SRCS ${srcs}
|
idf_component_register(SRCS ${srcs}
|
||||||
INCLUDE_DIRS include
|
INCLUDE_DIRS include
|
||||||
REQUIRES esp_partition idf_test cmock
|
REQUIRES esp_partition idf_test cmock
|
||||||
PRIV_REQUIRES perfmon esp_driver_pcnt driver esp_netif)
|
PRIV_REQUIRES perfmon esp_driver_pcnt esp_driver_gptimer esp_netif
|
||||||
|
driver # TODO: replace with esp_driver_rmt
|
||||||
|
)
|
||||||
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")
|
||||||
|
Reference in New Issue
Block a user