From 9d5923a13e9c88411d7f93a861a0de518633af0c Mon Sep 17 00:00:00 2001 From: Omar Chebib Date: Fri, 17 Sep 2021 11:14:32 +0800 Subject: [PATCH] IPC: Move ipc sources to esp_system IPC shall be put back into esp_system as it is an 'OS additions'. --- components/app_trace/CMakeLists.txt | 2 +- components/bt/CMakeLists.txt | 1 - components/driver/CMakeLists.txt | 2 +- components/esp_hw_support/CMakeLists.txt | 1 - components/esp_ipc/CMakeLists.txt | 10 ----- components/esp_ipc/Kconfig | 39 ------------------ components/esp_ipc/component.mk | 9 ----- components/esp_ipc/test/CMakeLists.txt | 5 --- components/esp_ipc/test/component.mk | 2 - components/esp_system/CMakeLists.txt | 3 +- components/esp_system/Kconfig | 40 +++++++++++++++++++ .../{esp_ipc/src => esp_system}/esp_ipc.c | 0 .../{esp_ipc => esp_system}/include/esp_ipc.h | 18 +++------ .../include/esp_ipc_isr.h | 0 .../port/arch/xtensa}/esp_ipc_isr.c | 0 .../port/arch/xtensa}/esp_ipc_isr_handler.S | 0 .../port/arch/xtensa}/esp_ipc_isr_routines.S | 0 .../esp_system/port/soc/esp32/CMakeLists.txt | 7 ++++ .../port/soc/esp32s2/CMakeLists.txt | 7 ++++ .../port/soc/esp32s3/CMakeLists.txt | 7 ++++ components/esp_system/test/CMakeLists.txt | 19 ++++++++- .../{esp_ipc => esp_system}/test/test_ipc.c | 6 +++ .../test/test_ipc_isr.S | 0 .../test/test_ipc_isr.c | 6 +++ components/freertos/test/CMakeLists.txt | 2 +- components/spi_flash/CMakeLists.txt | 2 +- docs/doxygen/Doxyfile | 2 +- docs/en/api-reference/system/ipc.rst | 2 +- docs/en/migration-guides/index.rst | 1 + docs/en/migration-guides/system.rst | 10 +++++ docs/zh_CN/migration-guides/index.rst | 1 + docs/zh_CN/migration-guides/system.rst | 1 + tools/ci/check_copyright_ignore.txt | 3 -- .../components/test_utils/CMakeLists.txt | 2 +- .../components/test_utils/test/CMakeLists.txt | 2 +- 35 files changed, 119 insertions(+), 93 deletions(-) delete mode 100644 components/esp_ipc/CMakeLists.txt delete mode 100644 components/esp_ipc/Kconfig delete mode 100644 components/esp_ipc/component.mk delete mode 100644 components/esp_ipc/test/CMakeLists.txt delete mode 100644 components/esp_ipc/test/component.mk rename components/{esp_ipc/src => esp_system}/esp_ipc.c (100%) rename components/{esp_ipc => esp_system}/include/esp_ipc.h (84%) rename components/{esp_ipc => esp_system}/include/esp_ipc_isr.h (100%) rename components/{esp_ipc/src/esp_ipc_isr => esp_system/port/arch/xtensa}/esp_ipc_isr.c (100%) rename components/{esp_ipc/src/esp_ipc_isr => esp_system/port/arch/xtensa}/esp_ipc_isr_handler.S (100%) rename components/{esp_ipc/src/esp_ipc_isr => esp_system/port/arch/xtensa}/esp_ipc_isr_routines.S (100%) rename components/{esp_ipc => esp_system}/test/test_ipc.c (97%) rename components/{esp_ipc => esp_system}/test/test_ipc_isr.S (100%) rename components/{esp_ipc => esp_system}/test/test_ipc_isr.c (95%) create mode 100644 docs/en/migration-guides/system.rst create mode 100644 docs/zh_CN/migration-guides/system.rst diff --git a/components/app_trace/CMakeLists.txt b/components/app_trace/CMakeLists.txt index e6f4df2c46..db67ffb8c5 100644 --- a/components/app_trace/CMakeLists.txt +++ b/components/app_trace/CMakeLists.txt @@ -47,7 +47,7 @@ endif() idf_component_register(SRCS "${srcs}" INCLUDE_DIRS "${include_dirs}" PRIV_INCLUDE_DIRS "${priv_include_dirs}" - PRIV_REQUIRES soc esp_ipc + PRIV_REQUIRES soc LDFRAGMENTS linker.lf) # disable --coverage for this component, as it is used as transport diff --git a/components/bt/CMakeLists.txt b/components/bt/CMakeLists.txt index efacc806a1..1c4ebb48c5 100644 --- a/components/bt/CMakeLists.txt +++ b/components/bt/CMakeLists.txt @@ -602,7 +602,6 @@ idf_component_register(SRCS "${srcs}" INCLUDE_DIRS "${include_dirs}" PRIV_INCLUDE_DIRS "${priv_include_dirs}" REQUIRES nvs_flash soc esp_timer esp_pm esp_phy - PRIV_REQUIRES esp_ipc LDFRAGMENTS "linker.lf") if(CONFIG_BT_ENABLED) diff --git a/components/driver/CMakeLists.txt b/components/driver/CMakeLists.txt index f76db42138..60abe84f19 100644 --- a/components/driver/CMakeLists.txt +++ b/components/driver/CMakeLists.txt @@ -107,7 +107,7 @@ endif() idf_component_register(SRCS "${srcs}" INCLUDE_DIRS ${includes} PRIV_INCLUDE_DIRS "include/driver" - PRIV_REQUIRES efuse esp_timer esp_ipc + PRIV_REQUIRES efuse esp_timer REQUIRES esp_pm esp_ringbuf freertos soc hal esp_hw_support LDFRAGMENTS linker.lf) # (REQUIRES cannot hide soc headers, since many arguments in the driver headers are chip-dependent) diff --git a/components/esp_hw_support/CMakeLists.txt b/components/esp_hw_support/CMakeLists.txt index 2846fab097..51766f23f6 100644 --- a/components/esp_hw_support/CMakeLists.txt +++ b/components/esp_hw_support/CMakeLists.txt @@ -21,7 +21,6 @@ if(NOT BOOTLOADER_BUILD) if(NOT CONFIG_IDF_TARGET_ESP32 AND NOT CONFIG_IDF_TARGET_ESP32S2) list(APPEND srcs "sleep_retention.c") endif() - list(APPEND requires esp_ipc) else() # Requires "_esp_error_check_failed()" function list(APPEND priv_requires "esp_system") diff --git a/components/esp_ipc/CMakeLists.txt b/components/esp_ipc/CMakeLists.txt deleted file mode 100644 index b164a765d0..0000000000 --- a/components/esp_ipc/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -set(srcs "src/esp_ipc.c") - -if(CONFIG_ESP_IPC_ISR_ENABLE) - list(APPEND srcs "src/esp_ipc_isr/esp_ipc_isr.c" - "src/esp_ipc_isr/esp_ipc_isr_handler.S" - "src/esp_ipc_isr/esp_ipc_isr_routines.S") -endif() - -idf_component_register(SRCS "${srcs}" - INCLUDE_DIRS "include") diff --git a/components/esp_ipc/Kconfig b/components/esp_ipc/Kconfig deleted file mode 100644 index 44ed96996f..0000000000 --- a/components/esp_ipc/Kconfig +++ /dev/null @@ -1,39 +0,0 @@ -menu "IPC (Inter-Processor Call)" - - config ESP_IPC_TASK_STACK_SIZE - int "Inter-Processor Call (IPC) task stack size" - range 512 65536 if !APPTRACE_ENABLE - range 2048 65536 if APPTRACE_ENABLE - default 2048 if APPTRACE_ENABLE - default 1536 - help - Configure the IPC tasks stack size. One IPC task runs on each core - (in dual core mode), and allows for cross-core function calls. - - See IPC documentation for more details. - - The default stack size should be enough for most common use cases. - It can be shrunk if you are sure that you do not use any custom - IPC functionality. - - config ESP_IPC_USES_CALLERS_PRIORITY - bool "IPC runs at caller's priority" - default y - depends on !FREERTOS_UNICORE - help - If this option is not enabled then the IPC task will keep behavior - same as prior to that of ESP-IDF v4.0, and hence IPC task will run - at (configMAX_PRIORITIES - 1) priority. - - config ESP_IPC_ISR_ENABLE - bool - default y if !FREERTOS_UNICORE - help - This feature servers a similar purpose to the IPC except that the callback function is run - in the context of a level 4 interrupt (i.e., high priority/level interrupt). The IPC ISR - feature is intended for low latency execution of simple functions written in assembly on - another CPU. Due to being run in higher level interrupt context, the assembly functions - should be written in a particular way (see esp_test_ipc_isr_asm() and the "High-Level Interrupts" - chapter in hlinterrupts.rst for more details). - -endmenu # "IPC (Inter-Processor Call) diff --git a/components/esp_ipc/component.mk b/components/esp_ipc/component.mk deleted file mode 100644 index 4e2e89bb30..0000000000 --- a/components/esp_ipc/component.mk +++ /dev/null @@ -1,9 +0,0 @@ -# -# Component Makefile -# - -COMPONENT_SRCDIRS := src -ifdef CONFIG_ESP_IPC_ISR_ENABLE - COMPONENT_SRCDIRS += src/esp_ipc_isr -endif -COMPONENT_ADD_INCLUDEDIRS := include diff --git a/components/esp_ipc/test/CMakeLists.txt b/components/esp_ipc/test/CMakeLists.txt deleted file mode 100644 index 7a1793d816..0000000000 --- a/components/esp_ipc/test/CMakeLists.txt +++ /dev/null @@ -1,5 +0,0 @@ -if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s3") - idf_component_register(SRC_DIRS "." - PRIV_INCLUDE_DIRS "." - PRIV_REQUIRES cmock test_utils esp_ipc) -endif() diff --git a/components/esp_ipc/test/component.mk b/components/esp_ipc/test/component.mk deleted file mode 100644 index ed5fa25e2e..0000000000 --- a/components/esp_ipc/test/component.mk +++ /dev/null @@ -1,2 +0,0 @@ -COMPONENT_SRCDIRS := . -COMPONENT_ADD_LDFLAGS = -Wl,--whole-archive -l$(COMPONENT_NAME) -Wl,--no-whole-archive diff --git a/components/esp_system/CMakeLists.txt b/components/esp_system/CMakeLists.txt index f22c31ce31..77b7f567f3 100644 --- a/components/esp_system/CMakeLists.txt +++ b/components/esp_system/CMakeLists.txt @@ -12,6 +12,7 @@ if(BOOTLOADER_BUILD) idf_component_register(SRCS "${srcs}" REQUIRES spi_flash) else() list(APPEND srcs "crosscore_int.c" + "esp_ipc.c" "esp_err.c" "freertos_hooks.c" "int_wdt.c" @@ -40,7 +41,7 @@ else() # should be removable once using component init functions # link-time registration is used. esp_pm app_update nvs_flash pthread app_trace esp_gdbstub - espcoredump esp_phy efuse esp_ipc + espcoredump esp_phy efuse LDFRAGMENTS "linker.lf" "app.lf") add_subdirectory(port) diff --git a/components/esp_system/Kconfig b/components/esp_system/Kconfig index ca4814a178..a05bcfdc6d 100644 --- a/components/esp_system/Kconfig +++ b/components/esp_system/Kconfig @@ -502,3 +502,43 @@ menu "ESP System Settings" endchoice endmenu # ESP System Settings + +menu "IPC (Inter-Processor Call)" + + config ESP_IPC_TASK_STACK_SIZE + int "Inter-Processor Call (IPC) task stack size" + range 512 65536 if !APPTRACE_ENABLE + range 2048 65536 if APPTRACE_ENABLE + default 2048 if APPTRACE_ENABLE + default 1024 + help + Configure the IPC tasks stack size. One IPC task runs on each core + (in dual core mode), and allows for cross-core function calls. + + See IPC documentation for more details. + + The default stack size should be enough for most common use cases. + It can be shrunk if you are sure that you do not use any custom + IPC functionality. + + config ESP_IPC_USES_CALLERS_PRIORITY + bool "IPC runs at caller's priority" + default y + depends on !FREERTOS_UNICORE + help + If this option is not enabled then the IPC task will keep behavior + same as prior to that of ESP-IDF v4.0, and hence IPC task will run + at (configMAX_PRIORITIES - 1) priority. + + config ESP_IPC_ISR_ENABLE + bool + default y if !FREERTOS_UNICORE + help + This feature serves a similar purpose to the IPC except that the callback function is run + in the context of a level 4 interrupt (i.e., high priority/level interrupt). The IPC ISR + feature is intended for low latency execution of simple functions written in assembly on + another CPU. Due to being run in higher level interrupt context, the assembly functions + should be written in a particular way (see esp_test_ipc_isr_asm() and the "High-Level Interrupts" + chapter in hlinterrupts.rst for more details). + +endmenu # "IPC (Inter-Processor Call) diff --git a/components/esp_ipc/src/esp_ipc.c b/components/esp_system/esp_ipc.c similarity index 100% rename from components/esp_ipc/src/esp_ipc.c rename to components/esp_system/esp_ipc.c diff --git a/components/esp_ipc/include/esp_ipc.h b/components/esp_system/include/esp_ipc.h similarity index 84% rename from components/esp_ipc/include/esp_ipc.h rename to components/esp_system/include/esp_ipc.h index 5e02c460bc..6f3894b07d 100644 --- a/components/esp_ipc/include/esp_ipc.h +++ b/components/esp_system/include/esp_ipc.h @@ -1,16 +1,8 @@ -// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at - -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ #ifndef __ESP_IPC_H__ #define __ESP_IPC_H__ diff --git a/components/esp_ipc/include/esp_ipc_isr.h b/components/esp_system/include/esp_ipc_isr.h similarity index 100% rename from components/esp_ipc/include/esp_ipc_isr.h rename to components/esp_system/include/esp_ipc_isr.h diff --git a/components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr.c b/components/esp_system/port/arch/xtensa/esp_ipc_isr.c similarity index 100% rename from components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr.c rename to components/esp_system/port/arch/xtensa/esp_ipc_isr.c diff --git a/components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr_handler.S b/components/esp_system/port/arch/xtensa/esp_ipc_isr_handler.S similarity index 100% rename from components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr_handler.S rename to components/esp_system/port/arch/xtensa/esp_ipc_isr_handler.S diff --git a/components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr_routines.S b/components/esp_system/port/arch/xtensa/esp_ipc_isr_routines.S similarity index 100% rename from components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr_routines.S rename to components/esp_system/port/arch/xtensa/esp_ipc_isr_routines.S diff --git a/components/esp_system/port/soc/esp32/CMakeLists.txt b/components/esp_system/port/soc/esp32/CMakeLists.txt index 33ac3aa47c..0d58fd283a 100644 --- a/components/esp_system/port/soc/esp32/CMakeLists.txt +++ b/components/esp_system/port/soc/esp32/CMakeLists.txt @@ -12,6 +12,13 @@ set(srcs "highint_hdl.S" "../../arch/xtensa/debug_stubs.c" "../../arch/xtensa/trax.c" ) + +if(CONFIG_ESP_IPC_ISR_ENABLE) + list(APPEND srcs "../../arch/xtensa/esp_ipc_isr.c" + "../../arch/xtensa/esp_ipc_isr_handler.S" + "../../arch/xtensa/esp_ipc_isr_routines.S") +endif() + add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" ${srcs}) target_sources(${COMPONENT_LIB} PRIVATE ${srcs}) diff --git a/components/esp_system/port/soc/esp32s2/CMakeLists.txt b/components/esp_system/port/soc/esp32s2/CMakeLists.txt index 82b838c8bc..03b7d6659d 100644 --- a/components/esp_system/port/soc/esp32s2/CMakeLists.txt +++ b/components/esp_system/port/soc/esp32s2/CMakeLists.txt @@ -12,6 +12,13 @@ set(srcs "highint_hdl.S" "../../arch/xtensa/debug_stubs.c" "../../arch/xtensa/trax.c" ) + +if(CONFIG_ESP_IPC_ISR_ENABLE) + list(APPEND srcs "../../arch/xtensa/esp_ipc_isr.c" + "../../arch/xtensa/esp_ipc_isr_handler.S" + "../../arch/xtensa/esp_ipc_isr_routines.S") +endif() + add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" ${srcs}) target_sources(${COMPONENT_LIB} PRIVATE ${srcs}) diff --git a/components/esp_system/port/soc/esp32s3/CMakeLists.txt b/components/esp_system/port/soc/esp32s3/CMakeLists.txt index 7604fe31a4..bb4f4f1726 100644 --- a/components/esp_system/port/soc/esp32s3/CMakeLists.txt +++ b/components/esp_system/port/soc/esp32s3/CMakeLists.txt @@ -13,6 +13,13 @@ set(srcs "highint_hdl.S" "../../arch/xtensa/debug_stubs.c" "../../arch/xtensa/trax.c" ) + +if(CONFIG_ESP_IPC_ISR_ENABLE) + list(APPEND srcs "../../arch/xtensa/esp_ipc_isr.c" + "../../arch/xtensa/esp_ipc_isr_handler.S" + "../../arch/xtensa/esp_ipc_isr_routines.S") +endif() + add_prefix(srcs "${CMAKE_CURRENT_LIST_DIR}/" ${srcs}) target_sources(${COMPONENT_LIB} PRIVATE ${srcs}) diff --git a/components/esp_system/test/CMakeLists.txt b/components/esp_system/test/CMakeLists.txt index 6dfdf703ae..a1a4f863c6 100644 --- a/components/esp_system/test/CMakeLists.txt +++ b/components/esp_system/test/CMakeLists.txt @@ -1,3 +1,20 @@ +set(requires "unity" + "test_utils" + "driver") + +set(excludes "test_ipc_isr.c" + "test_ipc_isr.S" + "test_ipc.c") + +if(IDF_TARGET STREQUAL "esp32" OR IDF_TARGET STREQUAL "esp32s3") + # If the target is esp32 or esp32s3, we can compile the IPC + # tests. + set(excludes "") + # Add a required dependency + list(APPEND requires "cmock") +endif() + idf_component_register(SRC_DIRS . + EXCLUDE_SRCS "${excludes}" PRIV_INCLUDE_DIRS . - PRIV_REQUIRES unity test_utils driver) + PRIV_REQUIRES "${requires}") diff --git a/components/esp_ipc/test/test_ipc.c b/components/esp_system/test/test_ipc.c similarity index 97% rename from components/esp_ipc/test/test_ipc.c rename to components/esp_system/test/test_ipc.c index 9369b2524d..8f6fbeeae5 100644 --- a/components/esp_ipc/test/test_ipc.c +++ b/components/esp_system/test/test_ipc.c @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + #include #include "sdkconfig.h" #include "freertos/FreeRTOS.h" diff --git a/components/esp_ipc/test/test_ipc_isr.S b/components/esp_system/test/test_ipc_isr.S similarity index 100% rename from components/esp_ipc/test/test_ipc_isr.S rename to components/esp_system/test/test_ipc_isr.S diff --git a/components/esp_ipc/test/test_ipc_isr.c b/components/esp_system/test/test_ipc_isr.c similarity index 95% rename from components/esp_ipc/test/test_ipc_isr.c rename to components/esp_system/test/test_ipc_isr.c index cad29e814c..19cb9922a7 100644 --- a/components/esp_ipc/test/test_ipc_isr.c +++ b/components/esp_system/test/test_ipc_isr.c @@ -1,3 +1,9 @@ +/* + * SPDX-FileCopyrightText: 2015-2021 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + #include #include "sdkconfig.h" #include "freertos/FreeRTOS.h" diff --git a/components/freertos/test/CMakeLists.txt b/components/freertos/test/CMakeLists.txt index 75c356f830..e25755ba72 100644 --- a/components/freertos/test/CMakeLists.txt +++ b/components/freertos/test/CMakeLists.txt @@ -1,5 +1,5 @@ idf_component_register(SRC_DIRS . PRIV_INCLUDE_DIRS . - PRIV_REQUIRES cmock test_utils esp_ipc driver) + PRIV_REQUIRES cmock test_utils esp_system driver) # Enable task snapshots by setting configENABLE_TASK_SNAPSHOT macro idf_build_set_property(COMPILE_OPTIONS "-DconfigENABLE_TASK_SNAPSHOT=1" APPEND) diff --git a/components/spi_flash/CMakeLists.txt b/components/spi_flash/CMakeLists.txt index 9cc02602f2..4b1039dc24 100644 --- a/components/spi_flash/CMakeLists.txt +++ b/components/spi_flash/CMakeLists.txt @@ -44,7 +44,7 @@ else() "spi_flash_os_func_noos.c") list(APPEND srcs ${cache_srcs}) - set(priv_requires bootloader_support app_update soc esp_ipc driver) + set(priv_requires bootloader_support app_update soc driver) endif() idf_component_register(SRCS "${srcs}" diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile index ce870f9e94..95840f3e04 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -184,7 +184,7 @@ INPUT = \ $(PROJECT_PATH)/components/esp_system/include/esp_task_wdt.h \ $(PROJECT_PATH)/components/esp_hw_support/include/esp_crc.h \ $(PROJECT_PATH)/components/esp_system/include/esp_freertos_hooks.h \ - $(PROJECT_PATH)/components/esp_ipc/include/esp_ipc.h \ + $(PROJECT_PATH)/components/esp_system/include/esp_ipc.h \ $(PROJECT_PATH)/components/esp_system/include/esp_expression_with_stack.h \ $(PROJECT_PATH)/components/app_update/include/esp_ota_ops.h \ $(PROJECT_PATH)/components/esp_https_ota/include/esp_https_ota.h \ diff --git a/docs/en/api-reference/system/ipc.rst b/docs/en/api-reference/system/ipc.rst index 2f34d10ffa..0aa9fd0541 100644 --- a/docs/en/api-reference/system/ipc.rst +++ b/docs/en/api-reference/system/ipc.rst @@ -50,7 +50,7 @@ The `esp_ipc_isr_asm...(asm_func, arg)` functions trigger the High-priority inte :cpp:func:`esp_ipc_isr_stall_other_cpu` stalls the other CPU and the calling CPU disables interrupts with level 3 and lower. To finish stalling the other CPU call :cpp:func:`esp_ipc_isr_release_other_cpu`. The stalled CPU disables interrupts with level 5 and lower. -Functions executed by Hi-priority IPC must be functions of type `void func(void *arg)`. Examples of a assembler function see in :idf_file:`components/esp_ipc/src/esp_ipc_isr/esp_ipc_isr_routines.S`, :idf_file:`components/esp_ipc/test/test_ipc_isr.S` and below. In the asm function, you can use only a few registers as they were saved in the interrupt handler before calling this function, their use is safe. The registers:`a2` as `void *arg`, a3 and a4 are free for use. +Functions executed by Hi-priority IPC must be functions of type `void func(void *arg)`. Examples of a assembler function see in :idf_file:`components/esp_system/port/arch/xtensa/esp_ipc_isr_routines.S`, :idf_file:`components/esp_system/test/test_ipc_isr.S` and below. In the asm function, you can use only a few registers as they were saved in the interrupt handler before calling this function, their use is safe. The registers:`a2` as `void *arg`, a3 and a4 are free for use. Some feature: diff --git a/docs/en/migration-guides/index.rst b/docs/en/migration-guides/index.rst index 7c426c751c..e6266a1137 100644 --- a/docs/en/migration-guides/index.rst +++ b/docs/en/migration-guides/index.rst @@ -7,3 +7,4 @@ ESP-IDF 5.0 Migration Guides Peripherals Build System + System diff --git a/docs/en/migration-guides/system.rst b/docs/en/migration-guides/system.rst new file mode 100644 index 0000000000..6d50901f39 --- /dev/null +++ b/docs/en/migration-guides/system.rst @@ -0,0 +1,10 @@ +Migrate System to ESP-IDF 5.0 +================================== + +Inter-Processor Call +----------------------- + +IPC (Inter-Processor Call) component has been moved to ``esp_system``. + +Thus, any project presenting a ``CMakeLists.txt`` file with the parameters ``PRIV_REQUIRES esp_ipc`` or ``REQUIRES esp_ipc``, should be modified to simply remove these options as ``esp_system`` component is included by default. + diff --git a/docs/zh_CN/migration-guides/index.rst b/docs/zh_CN/migration-guides/index.rst index 97be18f728..c0526385c1 100644 --- a/docs/zh_CN/migration-guides/index.rst +++ b/docs/zh_CN/migration-guides/index.rst @@ -7,3 +7,4 @@ ESP-IDF 5.0 迁移指南 外设 构建系统 + 系统 diff --git a/docs/zh_CN/migration-guides/system.rst b/docs/zh_CN/migration-guides/system.rst new file mode 100644 index 0000000000..3d1222cb1d --- /dev/null +++ b/docs/zh_CN/migration-guides/system.rst @@ -0,0 +1 @@ +.. include:: ../../en/migration-guides/system.rst diff --git a/tools/ci/check_copyright_ignore.txt b/tools/ci/check_copyright_ignore.txt index 3822e241fa..640d17c591 100644 --- a/tools/ci/check_copyright_ignore.txt +++ b/tools/ci/check_copyright_ignore.txt @@ -663,9 +663,6 @@ components/esp_https_ota/src/esp_https_ota.c components/esp_hw_support/include/esp_clk.h components/esp_hw_support/include/soc/esp_himem.h components/esp_hw_support/include/soc/esp_spiram.h -components/esp_ipc/include/esp_ipc.h -components/esp_ipc/test/test_ipc.c -components/esp_ipc/test/test_ipc_isr.c components/esp_lcd/test/test_i2c_lcd_panel.c components/esp_lcd/test/test_i80_board.h components/esp_lcd/test/test_i80_lcd_panel.c diff --git a/tools/unit-test-app/components/test_utils/CMakeLists.txt b/tools/unit-test-app/components/test_utils/CMakeLists.txt index 50e9fa6de1..b72d040dab 100644 --- a/tools/unit-test-app/components/test_utils/CMakeLists.txt +++ b/tools/unit-test-app/components/test_utils/CMakeLists.txt @@ -20,4 +20,4 @@ idf_component_register(SRCS ${srcs} INCLUDE_DIRS include PRIV_INCLUDE_DIRS private_include REQUIRES spi_flash idf_test cmock - PRIV_REQUIRES perfmon esp_ipc driver) + PRIV_REQUIRES perfmon driver) diff --git a/tools/unit-test-app/components/test_utils/test/CMakeLists.txt b/tools/unit-test-app/components/test_utils/test/CMakeLists.txt index 1887cad527..073f035ec1 100644 --- a/tools/unit-test-app/components/test_utils/test/CMakeLists.txt +++ b/tools/unit-test-app/components/test_utils/test/CMakeLists.txt @@ -1,3 +1,3 @@ idf_component_register(SRC_DIRS "." PRIV_INCLUDE_DIRS "." - PRIV_REQUIRES cmock test_utils perfmon esp_ipc) + PRIV_REQUIRES cmock test_utils perfmon)