123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- ESP_KCONFIGS=
- ESP_KCONFIGS_PROJBUILD=
- ESP_LDFRAGMENTS=
- ESP_SDKCONFIG_RENAMES=
- macro ESP_KCONFIG(Kconfig) {
- SET_APPEND(ESP_KCONFIGS \${input;hide:$Kconfig})
- SET_APPEND(ESP_KCONFIGS_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Kconfig})
- }
- macro ESP_KCONFIG_PROJBUILD(Kconfig) {
- SET_APPEND(ESP_KCONFIGS_PROJBUILD \${input;hide:$Kconfig})
- SET_APPEND(ESP_KCONFIGS_PROJBUILD_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Kconfig})
- }
- macro ESP_LDFRAGMENTS(Fragments...) {
- SET_APPEND(ESP_LDFRAGMENTS ${pre=\$\{input\;hide\:\";suf=\"\}:Fragments})
- SET_APPEND(ESP_LDFRAGMENTS_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Fragments})
- }
- macro ESP_SDKCONFIG_RENAME(Rename) {
- SET_APPEND(ESP_SDKCONFIG_RENAMES \${input;hide:$Rename})
- SET_APPEND(ESP_SDKCONFIG_RENAMES_GLOBAL ${pre=$ARCADIA_ROOT/$MODDIR/:Rename})
- }
- ESP_LINK_LIB=$LINK_LIB $ESP_KCONFIGS $ESP_KCONFIGS_PROJBUILD $ESP_LDFRAGMENTS $ESP_SDKCONFIG_RENAMES
- ESP_CONFIG=contrib/libs/esp-idf/config
- module ESP_LIBRARY: LIBRARY {
- .CMD=ESP_LINK_LIB
- .GLOBAL=ESP_KCONFIGS ESP_KCONFIGS_PROJBUILD ESP_LDFRAGMENTS ESP_SDKCONFIG_RENAMES
- ADDINCL(GLOBAL $ESP_CONFIG)
- }
- ESP_KCONFIGS_CMD=$WRITER_PY --file ${tmp:"kconfigs.in"} -m ${pre="source \"";suf="\"":ESP_KCONFIGS_GLOBAL}
- ESP_KCONFIGS_PROJBUILD_CMD=$WRITER_PY --file ${tmp:"kconfigs_projbuild.in"} -m ${pre="source \"";suf="\"":ESP_KCONFIGS_PROJBUILD_GLOBAL}
- ESP_SDKCONFIG_DEFAULTS=contrib/libs/esp-idf/sdkconfig.defaults
- macro _ESP_CONFGEN_DEFAULTS_HELPER(Defaults...) {
- .CMD=${pre=--defaults :Defaults}
- }
- macro _ESP_CONFGEN_DEFAULTS_ARGS(Defaults...) {
- .CMD=$_ESP_CONFGEN_DEFAULTS_HELPER(${input:Defaults})
- }
- ESP_CONFGEN_CMD= \
- ${tool:"contrib/libs/esp-idf/tools/kconfig_new/confgen"} \
- $_ESP_CONFGEN_DEFAULTS_ARGS($ESP_SDKCONFIG_DEFAULTS) \
- --kconfig ${input:"contrib/libs/esp-idf/Kconfig"} \
- --sdkconfig-rename ${input:"contrib/libs/esp-idf/sdkconfig.rename"} \
- --env IDF_CMAKE=y \
- --env IDF_TARGET=esp32c3 \
- --env IDF_ENV_FPGA= \
- --env IDF_PATH=$ARCADIA_ROOT/contrib/libs/esp-idf \
- --env COMPONENT_KCONFIGS_SOURCE_FILE=${tmp:"kconfigs.in"} \
- --env COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE=${tmp:"kconfigs_projbuild.in"} \
- --env COMPONENT_SDKCONFIG_RENAMES=${join=" ":ESP_SDKCONFIG_RENAMES_GLOBAL} \
- --output config ${output:"sdkconfig"} \
- --output header ${output:"sdkconfig.h"}
- ESP_LIBRARIES_CMD=$WRITER_PY --file ${tmp:"ldgen_libraries"} -m $PEERS
- ESP_LDGEN_CMD= \
- ${tool:"contrib/libs/esp-idf/tools/ldgen"} \
- --config ${tmp:"sdkconfig"} \
- --fragments $ESP_LDFRAGMENTS_GLOBAL \
- --input ${input:"contrib/libs/esp-idf/components/esp_system/ld/esp32c3/sections.ld.in"} \
- --output ${output:"sections.ld"} \
- --kconfig ${input:"contrib/libs/esp-idf/Kconfig"} \
- --env IDF_CMAKE=y \
- --env IDF_TARGET=esp32c3 \
- --env IDF_ENV_FPGA= \
- --env IDF_PATH=$ARCADIA_ROOT/contrib/libs/esp-idf \
- --env COMPONENT_KCONFIGS_SOURCE_FILE=${tmp:"kconfigs.in"} \
- --env COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE=${tmp:"kconfigs_projbuild.in"} \
- --libraries-file ${tmp:"ldgen_libraries"} \
- --objdump $OBJDUMP_TOOL
- ESP_FLASH_SIZE=4MB
- macro _ESP_ELF2IMAGE(Elf, Args...) {
- .CMD=${cwd:BINDIR} ${tool:"contrib/tools/esptool/esptool"} --chip esp32c3 elf2image $Args --flash_mode dio --flash_freq 80m --flash_size $ESP_FLASH_SIZE --min-rev 3 -o ${output;noext:Elf.bin} $Elf
- }
- ESP_PARTITION_TABLE_OFFSET=0x8000
- ESP_PARTITION_TABLE=partitions.csv
- ESP_GEN_ESP32PART_CMD= \
- ${tool:"contrib/libs/esp-idf/components/partition_table/gen_esp32part"} \
- --flash-size $ESP_FLASH_SIZE \
- --offset $ESP_PARTITION_TABLE_OFFSET \
- --secure \
- ${input:ESP_PARTITION_TABLE} \
- ${output:"partition-table.bin"}
- ESP_LINK_EXE= \
- && $ESP_KCONFIGS_CMD \
- && $ESP_KCONFIGS_PROJBUILD_CMD \
- && $ESP_CONFGEN_CMD \
- && $ESP_LIBRARIES_CMD \
- && $ESP_LDGEN_CMD \
- && $ESP_GEN_ESP32PART_CMD \
- && $LINK_EXE \
- && $_ESP_ELF2IMAGE($MODULE_PREFIX$REALPRJNAME, "--secure-pad-v2")
- ### @usage: ESP_PROGRAM([progname])
- ###
- ### Program module for Espressif microcontrollers.
- ### Converts ELF to binary image file suitable for flashing.
- ### Currently, only ESP32-C3 is supported.
- module ESP_PROGRAM: PROGRAM {
- .CMD=ESP_LINK_EXE
- .GLOBAL=ESP_KCONFIGS ESP_KCONFIGS_PROJBUILD ESP_LDFRAGMENTS ESP_SDKCONFIG_RENAMES
- ALLOCATOR(FAKE)
- NO_PLATFORM()
- LINKER_SCRIPT_VALUE+=-T$ARCADIA_BUILD_ROOT/$MODDIR/sections.ld
- }
- ESP_BOOTLOADER_LINK_EXE= \
- && $LINK_EXE \
- && $_ESP_ELF2IMAGE($MODULE_PREFIX$REALPRJNAME, "--pad-to-size", "4KB")
- module ESP_BOOTLOADER: PROGRAM {
- .CMD=ESP_BOOTLOADER_LINK_EXE
- ALLOCATOR(FAKE)
- NO_PLATFORM()
- }
- when ($ESP_BOOTLOADER_BUILD == "yes") {
- CFLAGS+=-DBOOTLOADER_BUILD -fno-stack-protector
- }
|