cpu/esp*: Tracking refactoring of ESP MCU implementations #10658
Labels
Area: cpu
Area: CPU/MCU ports
Platform: ESP
Platform: This PR/issue effects ESP-based platforms
Type: tracking
The issue tracks and organizes the sub-tasks of a larger effort
Description
There are already parts of MCU implementations for ESP8266 and ESP32 SoCs which are almost identical or at least very similar. Examples are the implementations of
cpu/esp*/vendor/xtensa/*
)cpu/esp*/esp-now
)All other parts are completely different at the moment, since ESP32 and ESP8266 use SDKs with libraries which are completely different. However, with the ESP8266 RTOS SDK version under development, it seems that upcoming SDK versions for the ESP8266 will be at least partially compatible with the ESP-IDF for ESP32.
Therefore, it is very likely that both MCUs can use more and more the same code base. This issue is intended to track the modules that can be refactored designed to use the same code base and their progress.
Update With the reimplementation of the ESP8266 port based on the ESP8266 RTOS SDK in PR #11108 it became possible to deduplicate a lot. The code in PR #11108 was already prepared for this deduplication.
Refactored modules
cpu/esp*/vendor/xtensa
(PR cpu/esp*: Xtensa vendor code moved to esp_common #10883)cpu/esp*/esp-now
Refactoring prerequisites / steps
cpu/common/esp/*
(PR cpu: esp_common added for common modules of ESP SoCs #10663)cpu/common/esp/*
(PR cpu: esp_common added for common modules of ESP SoCs #10663)cpu/esp*/vendor/xtensa/*
to use architecture specific data in thread control blockcpu/esp32/vendor/xtensa/*
(PR cpu/esp*: Xtensa vendor code moved to esp_common #10883)cpu/esp8266/vendor/xtensa/*
(PR cpu/esp*: Xtensa vendor code moved to esp_common #10883)cpu/esp*/vendor/xtensa/*
tocpu/esp_common/vendor
(PR cpu/esp*: Xtensa vendor code moved to esp_common #10883)Makefile*
incpu/esp_common
and include them (PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/Makefile*
tocpu/esp_common/Makefile*
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/vendor/esp/*
tocpu/esp_common/vendor
(PR cpu/esp*: code deduplication and cleanup #12955)gen_esp32part.py
tocpu/esp_common/vendor/esp-idf/partition_table
(PR cpu/esp*: code deduplication and cleanup #12955)cpu.h
,esp_common.h
, and tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)LOG_TAG*
macros (log_module.h
,esp_common_log.h
) tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/exceptions
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/events
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/thread_arch
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/tools
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/irq_arch
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/irq_arch
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/syscalls
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/periph/flash
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/periph/hrwng
tocpu/esp_common/periph
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/periph/i2c
tocpu/esp_common/periph
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/periph/spi
tocpu/esp_common/periph
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/periph/uart
tocpu/esp_common/periph
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/freertos
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)cpu/esp*/esp_wifi
tocpu/esp_common
(PR cpu/esp*: code deduplication and cleanup #12955)boards/common/esp*/board_common
toboard/common/esp
PR dependencies
cpu/esp*/esp-now
depends on#10581,#9917The text was updated successfully, but these errors were encountered: