[修改] MBL、NSPE支持Linux下make编译
[详细说明]
1. 增加build_date.sh支持编译时间生成;
2. 增加xxx_afterbuild.sh脚本,支持elf文件生成;
3. MBL修改Project目录大小写错误导致的编译失败问题;
4. 修改头文件目录分隔符心解决编译失败问题;
This commit is contained in:
1485
MBL/Project/IAR/Project_MBL.ewd
Normal file
1485
MBL/Project/IAR/Project_MBL.ewd
Normal file
File diff suppressed because it is too large
Load Diff
1100
MBL/Project/IAR/Project_MBL.ewp
Normal file
1100
MBL/Project/IAR/Project_MBL.ewp
Normal file
File diff suppressed because it is too large
Load Diff
1485
MBL/Project/IAR/Project_MBL_NS.ewd
Normal file
1485
MBL/Project/IAR/Project_MBL_NS.ewd
Normal file
File diff suppressed because it is too large
Load Diff
1107
MBL/Project/IAR/Project_MBL_NS.ewp
Normal file
1107
MBL/Project/IAR/Project_MBL_NS.ewp
Normal file
File diff suppressed because it is too large
Load Diff
28
MBL/Project/IAR/mbl_prebuild.bat
Normal file
28
MBL/Project/IAR/mbl_prebuild.bat
Normal file
@ -0,0 +1,28 @@
|
||||
@echo off
|
||||
:: Preprocess to generate ICF file
|
||||
set TZ=%1
|
||||
set PROJ_DIR=%2
|
||||
set TOOLKIT_DIR=%3
|
||||
|
||||
if "%TZ%" == "TZ" (
|
||||
set IFILE=%PROJ_DIR%\..\..\platform\gdm32\iar\mbl_gdm32.i
|
||||
set OFILE=%PROJ_DIR%\mbl_gdm32.icf
|
||||
set CMSE=-D__ARM_FEATURE_CMSE=3
|
||||
) else (
|
||||
set IFILE=%PROJ_DIR%\..\..\platform\gdm32\iar\mbl_gdm32_ns.i
|
||||
set OFILE=%PROJ_DIR%\mbl_gdm32_ns.icf
|
||||
set CMSE=
|
||||
)
|
||||
|
||||
|
||||
IF EXIST %OFILE% del %OFILE%
|
||||
%TOOLKIT_DIR%\bin\iccarm.exe %IFILE% ^
|
||||
--preprocess=sn ^
|
||||
%OFILE% ^
|
||||
-I %PROJ_DIR%\..\..\..\config ^
|
||||
-I %PROJ_DIR%\..\..\platform %CMSE%
|
||||
|
||||
:: set CONFIG_FILE=%1
|
||||
:: echo /* config_gdm32*.h symbol list */ > %PROJ_DIR%\..\..\platform\gdm32\iar\%CONFIG_FILE%.icf
|
||||
:: for /f "eol=/ tokens=1,2,3" %%i in (%PROJ_DIR%\..\..\..\..\config\%CONFIG_FILE%.h )
|
||||
:: do echo define exported symbol %%j = %%k; >> %PROJ_DIR%\..\..\platform\gdm32\iar\%CONFIG_FILE%.icf
|
||||
38
MBL/Project/mbl_afterbuild.bat
Normal file
38
MBL/Project/mbl_afterbuild.bat
Normal file
@ -0,0 +1,38 @@
|
||||
@echo off
|
||||
|
||||
set OUTPUT_PATH=%1
|
||||
set OUTPUT_NAME=%2
|
||||
set TOOLKIT=%3
|
||||
set TOOLKIT_PATH=%4
|
||||
set "OUTPUT_PATH=%OUTPUT_PATH:/=\%"
|
||||
|
||||
set ROOT=%OUTPUT_PATH%\..\..\..\..\..
|
||||
set SREC_CAT=%ROOT%\scripts\imgtool\srec_cat.exe
|
||||
set OUTPUT_IMAGE_PATH=%ROOT%\scripts\images
|
||||
|
||||
if "%TOOLKIT%" == "KEIL" (
|
||||
:: Generate txt for debug
|
||||
%TOOLKIT_PATH%\ARM\ARMCC\bin\fromelf.exe --text -c -d --output=%OUTPUT_PATH%\..\%OUTPUT_NAME%.txt %OUTPUT_PATH%\%OUTPUT_NAME%.axf
|
||||
|
||||
:: Generate binary image
|
||||
%TOOLKIT_PATH%\ARM\ARMCC\bin\fromelf.exe --bin --8x1 --bincombined --output=%OUTPUT_PATH%\..\%OUTPUT_NAME%.bin %OUTPUT_PATH%\%OUTPUT_NAME%.axf
|
||||
)
|
||||
if "%TOOLKIT%" == "IAR" (
|
||||
:: Generate ASM file
|
||||
%TOOLKIT_PATH%\bin\ielfdumparm.exe %OUTPUT_PATH%\%OUTPUT_NAME%.axf --output %OUTPUT_PATH%\..\%OUTPUT_NAME%.asm --code
|
||||
|
||||
:: Generate binary image
|
||||
%TOOLKIT_PATH%\bin\ielftool.exe %OUTPUT_PATH%\%OUTPUT_NAME%.axf --bin %OUTPUT_PATH%\..\%OUTPUT_NAME%.bin
|
||||
)
|
||||
if "%TOOLKIT%" == "GCC" (
|
||||
arm-none-eabi-objdump -xS %OUTPUT_PATH%\%OUTPUT_NAME%.axf > %OUTPUT_PATH%\..\%OUTPUT_NAME%.txt
|
||||
arm-none-eabi-objcopy -Obinary %OUTPUT_PATH%\%OUTPUT_NAME%.axf %OUTPUT_PATH%\..\%OUTPUT_NAME%.bin
|
||||
)
|
||||
|
||||
IF EXIST %OUTPUT_IMAGE_PATH%\%OUTPUT_NAME%* del %OUTPUT_IMAGE_PATH%\%OUTPUT_NAME%*
|
||||
:: Copy to output image path
|
||||
copy %OUTPUT_PATH%\..\%OUTPUT_NAME%.bin %OUTPUT_IMAGE_PATH%\
|
||||
:: Generate Hex file
|
||||
%SREC_CAT% %OUTPUT_IMAGE_PATH%\%OUTPUT_NAME%.bin -Binary -offset 0x0C000000 -o %OUTPUT_IMAGE_PATH%\%OUTPUT_NAME%.hex -Intel
|
||||
|
||||
::exit
|
||||
40
MBL/Project/mbl_afterbuild.sh
Executable file
40
MBL/Project/mbl_afterbuild.sh
Executable file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
#set -x
|
||||
#echo "Args: $@"
|
||||
|
||||
OUTPUT_PATH=$1
|
||||
OUTPUT_NAME=$2
|
||||
TOOLKIT=$3
|
||||
TOOLKIT_PATH=$4
|
||||
OUTPUT_PATH=${OUTPUT_PATH%/}
|
||||
|
||||
ROOT=$(realpath ${OUTPUT_PATH}/../../../../..)
|
||||
SREC_CAT=/usr/bin/srec_cat
|
||||
OUTPUT_IMAGE_PATH=${ROOT}/scripts/images
|
||||
|
||||
if [ "${TOOLKIT}" == "KEIL" ]; then
|
||||
# Generate txt for debug
|
||||
${TOOLKIT_PATH}/ARM/ARMCC/bin/fromelf.exe --text -c -d --output=${OUTPUT_PATH}/../${OUTPUT_NAME}.txt ${OUTPUT_PATH}/${OUTPUT_NAME}.axf
|
||||
# Generate binary image
|
||||
%TOOLKIT_PATH%/ARM/ARMCC/bin/fromelf.exe --bin --8x1 --bincombined --output=${OUTPUT_PATH}/../${OUTPUT_NAME}.bin ${OUTPUT_PATH}/${OUTPUT_NAME}.axf
|
||||
elif [ "${TOOLKIT}" == "IAR" ]; then
|
||||
# Generate ASM file
|
||||
%TOOLKIT_PATH%/bin/ielfdumparm.exe ${OUTPUT_PATH}/${OUTPUT_NAME}.axf --output ${OUTPUT_PATH}/../${OUTPUT_NAME}.asm --code
|
||||
# Generate binary image
|
||||
%TOOLKIT_PATH%/bin/ielftool.exe ${OUTPUT_PATH}/${OUTPUT_NAME}.axf --bin ${OUTPUT_PATH}/../${OUTPUT_NAME}.bin
|
||||
elif [ "${TOOLKIT}" == "GCC" ]; then
|
||||
arm-none-eabi-objdump -xS ${OUTPUT_PATH}/${OUTPUT_NAME}.axf > ${OUTPUT_PATH}/../${OUTPUT_NAME}.txt
|
||||
arm-none-eabi-objcopy -Obinary ${OUTPUT_PATH}/${OUTPUT_NAME}.axf ${OUTPUT_PATH}/../${OUTPUT_NAME}.bin
|
||||
fi
|
||||
|
||||
mkdir -p ${OUTPUT_IMAGE_PATH}
|
||||
if [ -n "$(ls ${OUTPUT_IMAGE_PATH}/${OUTPUT_NAME}*)" ]; then
|
||||
rm -rf ${OUTPUT_IMAGE_PATH}/${OUTPUT_NAME}*
|
||||
fi
|
||||
|
||||
# Copy to output image path
|
||||
cp ${OUTPUT_PATH}/../${OUTPUT_NAME}.bin ${OUTPUT_IMAGE_PATH}
|
||||
# Generate Hex file
|
||||
${SREC_CAT} ${OUTPUT_IMAGE_PATH}/${OUTPUT_NAME}.bin -Binary -offset 0x0C000000 -o ${OUTPUT_IMAGE_PATH}/${OUTPUT_NAME}.hex -Intel
|
||||
|
||||
87
MBL/Project/mbl_afterbuild_adv.bat
Normal file
87
MBL/Project/mbl_afterbuild_adv.bat
Normal file
@ -0,0 +1,87 @@
|
||||
@echo off
|
||||
set SIP=%1
|
||||
set AESK=%~2
|
||||
set DEBUGGER=%3
|
||||
set OUTPUT_PATH=%4
|
||||
set OUTPUT_NAME=%5
|
||||
set TOOLKIT=%6
|
||||
set TOOLKIT_PATH=%7
|
||||
|
||||
set "OUTPUT_PATH=%OUTPUT_PATH:/=\%"
|
||||
|
||||
set ROOT=%OUTPUT_PATH%\..\..\..\..\..
|
||||
set IMGTOOL=%ROOT%\scripts\imgtool\imgtool.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 CONFIG_FILE=%ROOT%\config\config_gdm32_ntz.h
|
||||
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
|
||||
) else (
|
||||
set ALGO=GD32W51x_Q
|
||||
)
|
||||
|
||||
if "%AESK%" NEQ "" (
|
||||
set AES_SUFFIX=-aes
|
||||
) else (
|
||||
set AES_SUFFIX=
|
||||
)
|
||||
|
||||
if "%TOOLKIT%" == "KEIL" (
|
||||
:: Generate txt for debug
|
||||
%TOOLKIT_PATH%\ARM\ARMCC\bin\fromelf.exe --text -c -d --output=%OUTPUT_FILE%.txt %OUTPUT_PATH%\%OUTPUT_NAME%.axf
|
||||
|
||||
:: Generate binary image
|
||||
%TOOLKIT_PATH%\ARM\ARMCC\bin\fromelf.exe --bin --8x1 --bincombined --output=%OUTPUT_FILE%.bin %OUTPUT_PATH%\%OUTPUT_NAME%.axf
|
||||
)
|
||||
if "%TOOLKIT%" == "IAR" (
|
||||
:: Generate ASM file
|
||||
%TOOLKIT_PATH%\bin\ielfdumparm.exe %OUTPUT_PATH%\%OUTPUT_NAME%.axf --output %OUTPUT_FILE%.asm --code
|
||||
|
||||
:: Generate binary image
|
||||
%TOOLKIT_PATH%\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_ns* del %OUTPUT_HEX_PATH%\mbl_ns*
|
||||
|
||||
if "%AESK%" == "" (
|
||||
%SREC_CAT% %OUTPUT_FILE%.bin -Binary -offset 0x0C000000 -o %OUTPUT_FILE%.hex -Intel
|
||||
) else (
|
||||
:: Pad mbl.bin to 32K with 0xFF
|
||||
python %IMGTOOL% pad -s 0x8000 %OUTPUT_FILE%.bin %OUTPUT_FILE%-pad.bin
|
||||
|
||||
:: Encrypt MBL with AES Key
|
||||
python %AESTOOL% --c %CONFIG_FILE% ^
|
||||
-t "MBL" ^
|
||||
-i %OUTPUT_FILE%-pad.bin ^
|
||||
-o %OUTPUT_FILE%-aes.bin ^
|
||||
-k %AESK%
|
||||
|
||||
:: Convert to HEX file
|
||||
%SREC_CAT% %OUTPUT_FILE%-aes.bin -Binary -offset 0x0C000000 -o %OUTPUT_FILE%-aes.hex -Intel
|
||||
|
||||
IF EXIST %OUTPUT_FILE%-pad.bin del %OUTPUT_FILE%-pad.bin
|
||||
echo AES encrypted!
|
||||
)
|
||||
|
||||
:: Copy to output hex path
|
||||
copy %OUTPUT_FILE%%AES_SUFFIX%.bin %OUTPUT_HEX_PATH%
|
||||
copy %OUTPUT_FILE%%AES_SUFFIX%.hex %OUTPUT_HEX_PATH%
|
||||
|
||||
:: Download to FLASH
|
||||
cd %ROOT%
|
||||
python %DLTOOL% -a %ALGO% -f %OUTPUT_FILE%%AES_SUFFIX%.hex --debugger %DEBUGGER%
|
||||
cd %WORK_PATH%
|
||||
|
||||
::exit
|
||||
114
MBL/Project/mbl_afterbuild_tz.bat
Normal file
114
MBL/Project/mbl_afterbuild_tz.bat
Normal file
@ -0,0 +1,114 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user