32 lines
1.3 KiB
Docker
32 lines
1.3 KiB
Docker
FROM espressif/idf:v5.5 AS firmware-builder
|
|
SHELL ["/bin/bash", "-c"]
|
|
|
|
ARG TARGET=esp32
|
|
ARG LED_BUILTIN=2
|
|
ARG BSP_CONFIG_GPIO=9
|
|
ARG BOARD_SPECIFIC_INIT="boards/default.h"
|
|
|
|
COPY CMakeLists.txt /workspace/
|
|
COPY main /workspace/main
|
|
COPY sdkconfig.defaults /workspace/sdkconfig.defaults
|
|
WORKDIR /workspace
|
|
RUN sed -i "s/^CONFIG_LED_BUILTIN=.*/CONFIG_LED_BUILTIN=${LED_BUILTIN}/" sdkconfig.defaults && \
|
|
sed -i "s/^CONFIG_BSP_CONFIG_GPIO=.*/CONFIG_BSP_CONFIG_GPIO=${BSP_CONFIG_GPIO}/" sdkconfig.defaults && \
|
|
sed -i "s|^CONFIG_BOARD_SPECIFIC_INIT=.*|CONFIG_BOARD_SPECIFIC_INIT=\"${BOARD_SPECIFIC_INIT}\"|" sdkconfig.defaults
|
|
RUN source /opt/esp/idf/export.sh > /dev/null 2>&1 && \
|
|
idf.py set-target ${TARGET} && idf.py build && \
|
|
if [ "${TARGET}" = "esp32c6" ]; then \
|
|
esptool.py --chip ${TARGET} merge_bin \
|
|
-o build/merged-firmware.bin \
|
|
0x0 build/bootloader/bootloader.bin \
|
|
0x8000 build/partition_table/partition-table.bin \
|
|
0x10000 build/esp-scope.bin; \
|
|
else \
|
|
esptool.py --chip ${TARGET} merge_bin \
|
|
-o build/merged-firmware.bin \
|
|
--flash_mode dio --flash_freq 80m --flash_size 2MB \
|
|
0x1000 build/bootloader/bootloader.bin \
|
|
0x8000 build/partition_table/partition-table.bin \
|
|
0x10000 build/esp-scope.bin; \
|
|
fi
|