Files
SDK_GD32W51x/MBL/Project/mbl_afterbuild_tz.bat
gaoyang3513 cc9e198164 [修改] MBL、NSPE支持Linux下make编译
[详细说明]
    1. 增加build_date.sh支持编译时间生成;
    2. 增加xxx_afterbuild.sh脚本,支持elf文件生成;
    3. MBL修改Project目录大小写错误导致的编译失败问题;
    4. 修改头文件目录分隔符心解决编译失败问题;
2023-06-13 15:53:18 +00:00

115 lines
3.9 KiB
Batchfile

@echo off
set SIP=%1
set AESK=%~2
set DEBUGGER=%3
set OUTPUT_PATH=%4
set OUTPUT_NAME=%5
set TOOLKIT=%6
set TOOLKIT_DIR=%7
set "OUTPUT_PATH=%OUTPUT_PATH:/=\%"
set ROOT=%OUTPUT_PATH%\..\..\..\..\..\
set KEY_PASSPHRASE="12345678"
set MBL_KEY=%ROOT%\scripts\certs\mbl-key.pem
set ROTPK=%ROOT%\scripts\certs\rot-key.pem
set MBL_CERT=%ROOT%\scripts\certs\mbl-cert.pem
set CONFIG_FILE=%ROOT%\config\config_gdm32.h
set SYSTOOL=%ROOT%\scripts\imgtool\sysset.py
set IMGTOOL=%ROOT%\scripts\imgtool\imgtool.py
set HEXTOOL=%ROOT%\scripts\imgtool\hextool.py
set GENTOOL=%ROOT%\scripts\imgtool\gentool.py
set AESTOOL=%ROOT%\scripts\imgtool\aestool.py
set SREC_CAT=%ROOT%\scripts\imgtool\srec_cat.exe
set DLTOOL=%ROOT%\scripts\imgtool\download.py
set OUTPUT_HEX_PATH=%ROOT%\scripts\images\
set OUTPUT_FILE=%OUTPUT_PATH%\..\%OUTPUT_NAME%
:: Save Orignal Working Path
set WORK_PATH=%CD%
if "%SIP%" == "SIP" (
set ALGO=GD32W51x_S
) else (
set ALGO=GD32W51x_Q_S
)
if "%AESK%" NEQ "" (
set AES_SUFFIX=-aes
) else (
set AES_SUFFIX=
)
:: Generate system setting hex
python %SYSTOOL% -t "SYS_SET" -c %CONFIG_FILE% %OUTPUT_HEX_PATH%\sysset.bin
:: Generate system status hex (padding with 0xFF)
:: python %SYSTOOL% -t "SYS_STATUS" -c %CONFIG_FILE% %OUTPUT_HEX_PATH%\sysstatus.bin
if "%TOOLKIT%" == "KEIL" (
:: Generate txt for debug
%TOOLKIT_DIR%\ARM\ARMCC\bin\fromelf.exe --text -c -d --output=%OUTPUT_FILE%.txt %OUTPUT_PATH%\%OUTPUT_NAME%.axf
:: Generate binary image
%TOOLKIT_DIR%\ARM\ARMCC\bin\fromelf.exe --bin --8x1 --bincombined --output=%OUTPUT_FILE%.bin %OUTPUT_PATH%\%OUTPUT_NAME%.axf
)
if "%TOOLKIT%" == "IAR" (
:: Generate ASM file
%TOOLKIT_DIR%\bin\ielfdumparm.exe %OUTPUT_PATH%\%OUTPUT_NAME%.axf --output %OUTPUT_FILE%.asm --code
:: Generate binary image
%TOOLKIT_DIR%\bin\ielftool.exe %OUTPUT_PATH%\%OUTPUT_NAME%.axf --bin %OUTPUT_FILE%.bin
)
if "%TOOLKIT%" == "GCC" (
arm-none-eabi-objdump -xS %OUTPUT_PATH%/%OUTPUT_NAME%.axf > %OUTPUT_FILE%.txt
arm-none-eabi-objcopy -Obinary %OUTPUT_PATH%/%OUTPUT_NAME%.axf %OUTPUT_FILE%.bin
)
if exist %OUTPUT_HEX_PATH%\mbl-sign.bin del %OUTPUT_HEX_PATH%\mbl-sign.bin
:: Add image header, ptlvs and concatenate the cert
python %IMGTOOL% sign --config %CONFIG_FILE% ^
-k %MBL_KEY% ^
-P %KEY_PASSPHRASE% ^
-t "MBL" ^
--cert %MBL_CERT% ^
%OUTPUT_FILE%.bin %OUTPUT_HEX_PATH%\mbl-sign.bin
python %GENTOOL% --config %CONFIG_FILE% ^
--sys_set %OUTPUT_HEX_PATH%\sysset.bin ^
--mbl %OUTPUT_HEX_PATH%\mbl-sign.bin ^
-o %OUTPUT_HEX_PATH%\mbl-sys.bin
IF EXIST %OUTPUT_HEX_PATH%\sysset.bin del %OUTPUT_HEX_PATH%\sysset.bin
IF EXIST %OUTPUT_HEX_PATH%\mbl-sign.bin del %OUTPUT_HEX_PATH%\mbl-sign.bin
if "%AESK%" == "" (
python %HEXTOOL% -c %CONFIG_FILE% ^
-t "SYS_SET" ^
-e %SREC_CAT% ^
%OUTPUT_HEX_PATH%\mbl-sys.bin ^
%OUTPUT_HEX_PATH%\mbl-sys.hex
) else (
python %IMGTOOL% pad -s 0x8000 ^
%OUTPUT_HEX_PATH%\mbl-sys.bin %OUTPUT_HEX_PATH%\mbl-sys-pad.bin
python %AESTOOL% --c %CONFIG_FILE% ^
-t "SYS_SET" ^
-i %OUTPUT_HEX_PATH%\mbl-sys-pad.bin ^
-o %OUTPUT_HEX_PATH%\mbl-sys%AES_SUFFIX%.bin ^
-k %AESK%
python %HEXTOOL% -c %CONFIG_FILE% ^
-t "SYS_SET" ^
-e %SREC_CAT% ^
%OUTPUT_HEX_PATH%\mbl-sys%AES_SUFFIX%.bin ^
%OUTPUT_HEX_PATH%\mbl-sys.hex
del %OUTPUT_HEX_PATH%\mbl-sys-pad.bin
echo Encrypted!
)
copy %OUTPUT_HEX_PATH%\mbl-sys.hex %OUTPUT_PATH%\mbl.hex
copy %OUTPUT_PATH%\mbl_cmse_Lib.o %ROOT%\NSPE\WIFI_IOT\lib\%TOOLKIT%
cd %ROOT%
python %DLTOOL% -a %ALGO% -f %OUTPUT_HEX_PATH%\mbl-sys.hex --debugger %DEBUGGER%
cd %WORK_PATH%
::exit