aboutsummaryrefslogtreecommitdiffstats
path: root/build/conf/project_specific/esp.conf
diff options
context:
space:
mode:
authoralexv-smirnov <alex@ydb.tech>2023-06-13 11:05:01 +0300
committeralexv-smirnov <alex@ydb.tech>2023-06-13 11:05:01 +0300
commitbf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0 (patch)
tree1d1df72c0541a59a81439842f46d95396d3e7189 /build/conf/project_specific/esp.conf
parent8bfdfa9a9bd19bddbc58d888e180fbd1218681be (diff)
downloadydb-bf0f13dd39ee3e65092ba3572bb5b1fcd125dcd0.tar.gz
add ymake export to ydb
Diffstat (limited to 'build/conf/project_specific/esp.conf')
-rw-r--r--build/conf/project_specific/esp.conf136
1 files changed, 136 insertions, 0 deletions
diff --git a/build/conf/project_specific/esp.conf b/build/conf/project_specific/esp.conf
new file mode 100644
index 0000000000..ce939d1629
--- /dev/null
+++ b/build/conf/project_specific/esp.conf
@@ -0,0 +1,136 @@
+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
+}