-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflash.cmd
More file actions
69 lines (59 loc) · 2.41 KB
/
flash.cmd
File metadata and controls
69 lines (59 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set FIRMWARE="FM-DX-Tuner.ino.bin"
set BACKUP="backup-%YYYY%%MM%%DD%-%HH%%Min%%Sec%.bin"
set VERIFICATION="verify-%YYYY%%MM%%DD%-%HH%%Min%%Sec%.bin"
set USB_ID="0483:df11"
set ADDRESS="0x08000000"
set FLASH_SIZE="131072"
echo --------------------------------------------------------------------------
echo Creating backup of current firmware...
echo --------------------------------------------------------------------------
dfu-util -w -d "%USB_ID%" -a 0 -s "%ADDRESS%:%FLASH_SIZE%" -U "%BACKUP%"
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: Failed to create backup. Make sure to remove existing backup.bin file.
pause
EXIT /B
)
echo --------------------------------------------------------------------------
echo Flashing new firmware...
echo --------------------------------------------------------------------------
dfu-util -d "%USB_ID%" -a 0 -s "%ADDRESS%" -D "%FIRMWARE%"
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: Failed to update the firmware.
pause
EXIT /B
)
echo --------------------------------------------------------------------------
echo Verifying new firmware...
echo --------------------------------------------------------------------------
FOR /F "usebackq" %%A IN ('%FIRMWARE%') DO set FW_SIZE=%%~zA
dfu-util -d "%USB_ID%" -a 0 -s "%ADDRESS%:%FW_SIZE%" -U "%VERIFICATION%"
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: Failed to retrieve the new firmware.
pause
EXIT /B
)
fc "%FIRMWARE%" "%VERIFICATION%" > nul
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: Verification FAILED, try to flash again.
pause
EXIT /B
)
del "%VERIFICATION%"
echo Update finished sucessfully.
echo --------------------------------------------------------------------------
echo Starting new firmware...
echo --------------------------------------------------------------------------
dfu-util -d "%USB_ID%" -a 0 -s "%ADDRESS%:leave"
IF %ERRORLEVEL% NEQ 0 (
echo ERROR: Failed to start new firmware.
pause
EXIT /B
)
echo --------------------------------------------------------------------------
echo Firmware started sucessfully
echo --------------------------------------------------------------------------
pause