40 lines
1.6 KiB
Bash
Executable File
40 lines
1.6 KiB
Bash
Executable File
#!/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
|