51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ESP_DEVICE=${ESP_DEVICE:-/dev/ttyUSB0}
|
|
ESP_BAUD_RATE=${ESP_BAUD_RATE:-921600}
|
|
ESP_FLASH_SIZE=${ESP_FLASH_SIZE:-detect}
|
|
ESP_FLASH_FREQ=${ESP_FLASH_FREQ:-40m}
|
|
ESP_FLASH_MODE=${ESP_FLASH_MODE:-dio}
|
|
ESP_TOOL=${ESP_TOOL:-espidf}
|
|
|
|
cmd_flash() {
|
|
local esptool
|
|
local elf_name=${O}/${KERNEL_ELF_NAME}
|
|
|
|
if [ "x${ESP_TOOL}" = "xespidf" ]; then
|
|
esptool=${ESP_IDF_PATH}/components/esptool_py/esptool/esptool.py
|
|
else
|
|
esptool=${ESP_TOOL}
|
|
fi
|
|
if [ ! -x ${esptool} ]; then
|
|
echo "esptool could not be found at ${esptool}"
|
|
exit 1
|
|
fi
|
|
|
|
echo "Converting ELF to BIN"
|
|
${esptool} --chip esp32 elf2image ${elf_name}
|
|
|
|
echo "Flashing ESP32 on ${ESP_DEVICE} (${ESP_BAUD_RATE}bps)"
|
|
${esptool} --chip esp32 \
|
|
--port ${ESP_DEVICE} \
|
|
--baud ${ESP_BAUD_RATE} \
|
|
--before default_reset \
|
|
--after hard_reset \
|
|
write_flash \
|
|
-u \
|
|
--flash_mode ${ESP_FLASH_MODE} \
|
|
--flash_freq ${ESP_FLASH_FREQ} \
|
|
--flash_size ${ESP_FLASH_SIZE} \
|
|
0x1000 ${elf_name/.elf/.bin}
|
|
}
|
|
|
|
CMD="$1"; shift
|
|
case "${CMD}" in
|
|
flash)
|
|
cmd_flash "$@"
|
|
;;
|
|
*)
|
|
echo "${CMD} not supported"
|
|
exit 1
|
|
;;
|
|
esac
|