feat(esp32h4): introduce target esp32h4(stage 1)

This commit is contained in:
Chen Jichang 2025-02-06 19:32:57 +08:00
parent 5a0e1615d9
commit 6f83f39dce
31 changed files with 40 additions and 4 deletions

View File

@ -144,6 +144,13 @@ mainmenu "Espressif IoT Development Framework Configuration"
select IDF_ENV_FPGA select IDF_ENV_FPGA
select IDF_ENV_BRINGUP select IDF_ENV_BRINGUP
config IDF_TARGET_ESP32H4
bool
default "y" if IDF_TARGET="esp32h4"
select IDF_TARGET_ARCH_RISCV
select IDF_ENV_FPGA
select IDF_ENV_BRINGUP
config IDF_TARGET_LINUX config IDF_TARGET_LINUX
bool bool
default "y" if IDF_TARGET="linux" default "y" if IDF_TARGET="linux"
@ -161,6 +168,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
default 0x0017 if IDF_TARGET_ESP32C5 default 0x0017 if IDF_TARGET_ESP32C5
default 0x0014 if IDF_TARGET_ESP32C61 default 0x0014 if IDF_TARGET_ESP32C61
default 0x0019 if IDF_TARGET_ESP32H21 default 0x0019 if IDF_TARGET_ESP32H21
default 0x001C if IDF_TARGET_ESP32H4
default 0xFFFF default 0xFFFF

View File

@ -31,6 +31,7 @@ typedef enum {
CHIP_ESP32C61= 20, //!< ESP32-C61 CHIP_ESP32C61= 20, //!< ESP32-C61
CHIP_ESP32C5 = 23, //!< ESP32-C5 CHIP_ESP32C5 = 23, //!< ESP32-C5
CHIP_ESP32H21 = 25, //!< ESP32-H21 CHIP_ESP32H21 = 25, //!< ESP32-H21
CHIP_ESP32H4 = 28, //!< ESP32-H4
CHIP_POSIX_LINUX = 999, //!< The code is running on POSIX/Linux simulator CHIP_POSIX_LINUX = 999, //!< The code is running on POSIX/Linux simulator
} esp_chip_model_t; } esp_chip_model_t;

View File

View File

View File

View File

View File

@ -37,6 +37,7 @@ USUAL_TO_FORMAL = {
'esp32p4': 'ESP32-P4', 'esp32p4': 'ESP32-P4',
'esp32c61': 'ESP32-C61', 'esp32c61': 'ESP32-C61',
'esp32h21': 'ESP32-H21', 'esp32h21': 'ESP32-H21',
'esp32h4': 'ESP32-H4',
'linux': 'Linux', 'linux': 'Linux',
} }
@ -52,6 +53,7 @@ FORMAL_TO_USUAL = {
'ESP32-P4': 'esp32p4', 'ESP32-P4': 'esp32p4',
'ESP32-C61': 'esp32c61', 'ESP32-C61': 'esp32c61',
'ESP32-H21': 'esp32h21', 'ESP32-H21': 'esp32h21',
'ESP32-H4': 'esp32h4',
'Linux': 'linux', 'Linux': 'linux',
} }

View File

@ -23,6 +23,8 @@ function(__add_dfu_targets)
return() return()
elseif("${target}" STREQUAL "esp32h21") elseif("${target}" STREQUAL "esp32h21")
return() return()
elseif("${target}" STREQUAL "esp32h4")
return()
elseif("${target}" STREQUAL "esp32p4") elseif("${target}" STREQUAL "esp32p4")
set(dfu_pid "12") set(dfu_pid "12")
elseif("${target}" STREQUAL "linux") elseif("${target}" STREQUAL "linux")

View File

@ -0,0 +1,20 @@
include($ENV{IDF_PATH}/tools/cmake/utilities.cmake)
set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_C_COMPILER riscv32-esp-elf-gcc)
set(CMAKE_CXX_COMPILER riscv32-esp-elf-g++)
set(CMAKE_ASM_COMPILER riscv32-esp-elf-gcc)
set(_CMAKE_TOOLCHAIN_PREFIX riscv32-esp-elf-)
remove_duplicated_flags("-march=rv32imafc_zicsr_zifencei -mabi=ilp32f ${CMAKE_C_FLAGS}" UNIQ_CMAKE_C_FLAGS)
set(CMAKE_C_FLAGS "${UNIQ_CMAKE_C_FLAGS}" CACHE STRING "C Compiler Base Flags" FORCE)
remove_duplicated_flags("-march=rv32imafc_zicsr_zifencei -mabi=ilp32f ${CMAKE_CXX_FLAGS}" UNIQ_CMAKE_CXX_FLAGS)
set(CMAKE_CXX_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}" CACHE STRING "C++ Compiler Base Flags" FORCE)
remove_duplicated_flags("-march=rv32imafc_zicsr_zifencei -mabi=ilp32f ${CMAKE_ASM_FLAGS}" UNIQ_CMAKE_ASM_FLAGS)
set(CMAKE_ASM_FLAGS "${UNIQ_CMAKE_CXX_FLAGS}" CACHE STRING "Asm Compiler Base Flags" FORCE)
remove_duplicated_flags("-nostartfiles -march=rv32imafc_zicsr_zifencei -mabi=ilp32f --specs=nosys.specs \
${CMAKE_EXE_LINKER_FLAGS}"
UNIQ_CMAKE_SAFE_EXE_LINKER_FLAGS)
set(CMAKE_EXE_LINKER_FLAGS "${UNIQ_CMAKE_SAFE_EXE_LINKER_FLAGS}" CACHE STRING "Linker Base Flags" FORCE)

View File

@ -34,4 +34,4 @@ if os.name != 'nt':
URL_TO_DOC = 'https://docs.espressif.com/projects/esp-idf' URL_TO_DOC = 'https://docs.espressif.com/projects/esp-idf'
SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4'] SUPPORTED_TARGETS = ['esp32', 'esp32s2', 'esp32c3', 'esp32s3', 'esp32c2', 'esp32c6', 'esp32h2', 'esp32p4']
PREVIEW_TARGETS = ['linux', 'esp32c5', 'esp32c61', 'esp32h21'] PREVIEW_TARGETS = ['linux', 'esp32c5', 'esp32c61', 'esp32h21', 'esp32h4']

View File

@ -96,7 +96,8 @@
"esp32h2", "esp32h2",
"esp32p4", "esp32p4",
"esp32c61", "esp32c61",
"esp32h21" "esp32h21",
"esp32h4"
], ],
"version_cmd": [ "version_cmd": [
"riscv32-esp-elf-gdb-no-python", "riscv32-esp-elf-gdb-no-python",
@ -254,7 +255,8 @@
"esp32h2", "esp32h2",
"esp32p4", "esp32p4",
"esp32c61", "esp32c61",
"esp32h21" "esp32h21",
"esp32h4"
], ],
"version_cmd": [ "version_cmd": [
"clang", "clang",
@ -321,7 +323,8 @@
"esp32h2", "esp32h2",
"esp32c61", "esp32c61",
"esp32p4", "esp32p4",
"esp32h21" "esp32h21",
"esp32h4"
], ],
"version_cmd": [ "version_cmd": [
"riscv32-esp-elf-gcc", "riscv32-esp-elf-gcc",