mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-06 03:27:01 +03:00
114 lines
3.9 KiB
Bash
114 lines
3.9 KiB
Bash
#!/bin/bash
|
|
echo
|
|
echo =================================================================
|
|
echo Build flash command
|
|
echo =================================================================
|
|
# Location of partitions.csv relative to this script
|
|
partitionsCsv="../partitions.csv"
|
|
|
|
# File to output readme instructions to
|
|
outputReadme="./flash_cmd.txt"
|
|
|
|
# File to output bash script to
|
|
outputBashScript="./writeSequeezeEsp.sh"
|
|
|
|
# File to output bat script to
|
|
outputBatScript="./writeSequeezeEsp.bat"
|
|
|
|
# The name of partitions to ignore from partitions.csv
|
|
paritionsToIgnore=(
|
|
"nvs"
|
|
"phy_init"
|
|
"storage"
|
|
"coredump"
|
|
"settings"
|
|
)
|
|
|
|
# Function that maps partition name to actual bin file
|
|
# defaults to "[PARTION_NAME_FROM_CSV].bin"
|
|
function partitionNameToBinFile {
|
|
if [[ "$1" == "otadata" ]]; then
|
|
echo "ota_data_initial.bin"
|
|
elif [[ "$1" == "ota_0" || "$1" == "factory" ]]; then
|
|
echo "squeezelite.bin"
|
|
else
|
|
echo $1.bin
|
|
fi
|
|
}
|
|
|
|
# write parameters for esptool.py
|
|
writeParameters="$writeParameters write_flash"
|
|
writeParameters="$writeParameters --flash_mode dio --flash_freq 80m --flash_size detect"
|
|
|
|
# bootloader.bin and partitions.bin not in partitions.csv so manually add here
|
|
partitionsParameters=" 0x1000 bootloader/bootloader.bin"
|
|
partitionsParameters="$partitionsParameters 0x8000 partitions.bin"
|
|
|
|
# ==============================================================================
|
|
|
|
# Loop over partitions.csv and add partition bins and offsets to partitionsParameters
|
|
|
|
for line in $($IDF_PATH/components/partition_table/gen_esp32part.py --quiet build/partitions.bin | grep '^[^#]')
|
|
do
|
|
partitionName=$(echo $line | awk -F',' '{printf "%s", $1}' )
|
|
partitionOffset=$(echo $line |awk -F',' '{printf "%s", $4}' )
|
|
partitionFile=$(partitionNameToBinFile $partitionName)
|
|
|
|
if [[ " ${paritionsToIgnore[@]} " =~ " ${partitionName} " ]]; then
|
|
continue
|
|
fi
|
|
|
|
partitionsParameters="$partitionsParameters $partitionOffset $partitionFile"
|
|
echo "$partitionsParameters"
|
|
|
|
done
|
|
|
|
# Write README Instructions
|
|
if [ ! -f "$outputReadme" ]; then
|
|
touch $outputReadme
|
|
fi
|
|
|
|
echo "" >> $outputReadme
|
|
echo "====LINUX====" >> $outputReadme
|
|
echo "To flash sequeezelite run the following script:" >> $outputReadme
|
|
echo "$outputBashScript [PORT_HERE] [BAUD_RATE]" >> $outputReadme
|
|
echo "e.g. $outputBashScript /dev/ttyUSB0 115200" >> $outputReadme
|
|
echo "" >> $outputReadme
|
|
echo "====WINDOWS====" >> $outputReadme
|
|
echo "To flash sequeezelite run the following script:" >> $outputReadme
|
|
echo "$outputBatScript [PORT_HERE] [BAUD_RATE]" >> $outputReadme
|
|
echo "e.g. $outputBatScript COM11 115200" >> $outputReadme
|
|
echo "" >> $outputReadme
|
|
echo "If you don't know how to run the BAT file with arguments then you can" >> $outputReadme
|
|
echo "edit the bat file in Notepad. Open the file up and edit the following:" >> $outputReadme
|
|
echo "Change 'set port=%1' to 'set port=[PORT_HERE]'. E.g. 'set port=COM11'" >> $outputReadme
|
|
echo "Change 'set baud=%2' to 'set baud=[BAUD_RATE]'. E.g. 'set baud=115200'" >> $outputReadme
|
|
echo "" >> $outputReadme
|
|
echo "====MANUAL====" >> $outputReadme
|
|
echo "Python esptool.py --port [PORT_HERE] --baud [BAUD_RATE] $writeParameters $partitionsParameters" >> $outputReadme
|
|
|
|
# Write Linux BASH File
|
|
if [ ! -f "$outputBashScript" ]; then
|
|
touch $outputBashScript
|
|
fi
|
|
|
|
echo "#!/bin/bash" >> $outputBashScript
|
|
echo >> $outputBashScript
|
|
echo "port=\$1" >> $outputBashScript
|
|
echo "baud=\$2" >> $outputBashScript
|
|
linuxFlashCommand="Python esptool.py --port \$port --baud \$baud"
|
|
echo "$linuxFlashCommand $writeParameters $partitionsParameters" >> $outputBashScript
|
|
|
|
# Write Windows BAT File
|
|
if [ ! -f "$outputBatScript" ]; then
|
|
touch $outputBatScript
|
|
fi
|
|
|
|
echo "echo off" >> $outputBatScript
|
|
echo "" >> $outputBatScript
|
|
echo "set port=%1" >> $outputBatScript
|
|
echo "set baud=%2" >> $outputBatScript
|
|
windowsFlashCommand="Python esptool.py --port %port% --baud %baud%"
|
|
echo "$windowsFlashCommand $writeParameters $partitionsParameters" >> $outputBatScript
|
|
|