[修改] 增加Linux编译环境,暂存。23.06.01

This commit is contained in:
2023-05-31 16:10:01 +00:00
parent 28316be1ad
commit 26dd495427
4 changed files with 97 additions and 5 deletions

3
.gitignore vendored
View File

@ -1,2 +1,3 @@
build/
.cmake/
output/

40
Makefile Normal file
View File

@ -0,0 +1,40 @@
#==============================================================================#
# Path information
#==============================================================================#
LOCAL_DIR := $(strip $(shell pwd))
SDK_TOP := $(LOCAL_DIR)
CMAKE_DIR := $(LOCAL_DIR)/.cmake
OUTPUT_DIR ?= $(LOCAL_DIR)/output
INSTALL_DIR ?= $(LOCAL_DIR)/__install
#==============================================================================#
# Functions
#==============================================================================#
#==============================================================================#
# Variables
#==============================================================================#
MULTI_CORES ?= $(shell grep -c ^processor /proc/cpuinfo)
BUILD_ALL :=
CLEAN_ALL :=
#==============================================================================#
# Compile configure
#==============================================================================#
#==============================================================================#
# Target
#==============================================================================#
.PHONY: all $(BUILD_ALL) $(CLEAN_ALL)
all: check_env $(BUILD_ALL)
$(MAKE) -C $(CMAKE_DIR) -j$(MULTI_CORES)
check_env:
if [ ! -e $(CMAKE_DIR) ]; then \
mkdir -p $(CMAKE_DIR); \
cmake -G "Unix Makefiles" \
-DCMAKE_TOOLCHAIN_FILE:PATH=$(SDK_TOP)/scripts/cmake/toolchain.cmake \
-S $(LOCAL_DIR) -B $(CMAKE_DIR); \
fi;

View File

@ -57,7 +57,14 @@ target_link_options(${TARGET_EXE}
-Wl,--cref
)
add_custom_command(TARGET ${TARGET_EXE} POST_BUILD
if(CMAKE_HOST_UNIX)
add_custom_command(TARGET ${TARGET_EXE} POST_BUILD
COMMAND ${TAGET_PROJECT_DIR}/nspe_afterbuild.sh ${TAGET_PROJECT_DIR}/GCC/output/bin GCC \"\"
COMMENT "Building ${TARGET_EXE}"
)
elseif(CMAKE_HOST_WIN32)
add_custom_command(TARGET ${TARGET_EXE} POST_BUILD
COMMAND ${TAGET_PROJECT_DIR}/nspe_afterbuild.bat ${TAGET_PROJECT_DIR}/GCC/output/bin GCC \"\"
COMMENT "Building ${TARGET_EXE}"
)
)
endif()

View File

@ -0,0 +1,44 @@
OUTPUT_PATH=$1
TOOLKIT=$2
TOOLKIT_PATH=$3
"OUTPUT_PATH=%OUTPUT_PATH:/=\%"
echo TOOLKIT=%TOOLKIT%
echo TOOLKIT_PATH=%TOOLKIT_PATH%
set ROOT=%OUTPUT_PATH%\..\..\..\..\..\..
set INDEX=0
set OUTPUT_IMAGE_PATH=%ROOT%\scripts\images
set SREC_CAT=%ROOT%\scripts\imgtool\srec_cat.exe
set OUTPUT_FILE=nspe
IF EXIST %OUTPUT_PATH%\..\nspe* del %OUTPUT_PATH%\..\nspe*
if "%TOOLKIT%" == "KEIL" (
# Generate txt for debug
%TOOLKIT_PATH%\ARM\ARMCC\bin\fromelf.exe --text -c -d --output=%OUTPUT_PATH%\..\%OUTPUT_FILE%.txt %OUTPUT_PATH%\%OUTPUT_FILE%.axf
# Generate binary image
%TOOLKIT_PATH%\ARM\ARMCC\bin\fromelf.exe --bin --8x1 --bincombined --output=%OUTPUT_PATH%\..\nspe.bin %OUTPUT_PATH%\%OUTPUT_FILE%.axf
)
if "%TOOLKIT%" == "IAR" (
# Generate ASM file
%TOOLKIT_PATH%\bin\ielfdumparm.exe %OUTPUT_PATH%\%OUTPUT_FILE%.axf --output %OUTPUT_PATH%\..\%OUTPUT_FILE%.asm --code
# Generate binary image
%TOOLKIT_PATH%\bin\ielftool.exe %OUTPUT_PATH%\%OUTPUT_FILE%.axf --bin %OUTPUT_PATH%\..\%OUTPUT_FILE%.bin
)
if "%TOOLKIT%" == "GCC" (
arm-none-eabi-objdump -xS %OUTPUT_PATH%\%OUTPUT_FILE%.axf > %OUTPUT_PATH%\..\%OUTPUT_FILE%.txt
arm-none-eabi-objcopy -Obinary %OUTPUT_PATH%\%OUTPUT_FILE%.axf %OUTPUT_PATH%\..\%OUTPUT_FILE%.bin
)
# Copy nspe.bin to the image path as ota image
copy %OUTPUT_PATH%\..\nspe.bin %OUTPUT_IMAGE_PATH%\image-ota.bin
# concatenate mbl-ns.bin and nspe.bin
%SREC_CAT% %OUTPUT_IMAGE_PATH%\mbl-ns.bin -Binary -offset 0 %OUTPUT_PATH%\..\nspe.bin -Binary -offset 0xa000 -fill 0xFF 0x7FFC 0xA000 -o %OUTPUT_IMAGE_PATH%\image-all.bin -Binary
# Convert to HEX file
if exist %OUTPUT_IMAGE_PATH%\image-all.bin %SREC_CAT% %OUTPUT_IMAGE_PATH%\image-all.bin -Binary -offset 0x0C000000 -o %OUTPUT_IMAGE_PATH%\image-all.hex -Intel