@echo off

SET ECU_SAMPLE=B0

SET FILE_PATH_SBL=Y01_SB019_SWSB_0030.hex
SET FILE_PATH_RAM=Y01_IN009_SWIN_0010.hex
SET FILE_PATH_ROM=Z03Hh002_App_default_B.hex

rem portions of MCU partition B except PBL
set CODE_START_ADDR=0x80338000
set CODE_LENGTH=0x2C8000            :: do not use --codeLength %CODE_LENGTH%, it is possible a bug of SBL

SET GEN_FLAGS=--ecuClass AUG2

ECHO.
ECHO =====================================
ECHO. LDC-ALFlasher - %ECU_SAMPLE% sample
ECHO =====================================
ECHO.
ECHO. [1] Flash ROM memory
ECHO. [2] Upload RAM application (EOL/INIOP)
ECHO. [3] Read Code (TBD)
ECHO. [4] Erase Data Flash
ECHO.
ECHO. [Q] Quit
ECHO.
SET /P OPT= Select option:
IF %OPT%==1 GOTO ROM_FLASH
IF %OPT%==2 GOTO RAM_UPLOAD
IF %OPT%==4 GOTO DATAFLASH_ERASE
IF %OPT%==Q GOTO FINISH
IF %OPT%==q GOTO FINISH

ECHO Invalid selection
GOTO FINISH

:ROM_FLASH
set OPT_FLAGS=--ram %FILE_PATH_SBL% --writeCode %FILE_PATH_ROM% --codeStartAddr %CODE_START_ADDR%
GOTO RUN_FLASHER

:RAM_UPLOAD
set OPT_FLAGS=--ram %FILE_PATH_RAM%
GOTO RUN_FLASHER

:DATAFLASH_ERASE
set OPT_FLAGS=--ram %FILE_PATH_SBL% --eraseData --dataStartAddr 0xFFFFFFFF
GOTO RUN_FLASHER

:RUN_FLASHER
ECHO.
ECHO =====================================
ECHO.
ECHO. Run Flasher...
@echo off
ALFlasherAll.exe %OPT_FLAGS% %GEN_FLAGS%

:FINISH
pause
