[修改] 增加Linux编译环境,暂存。23.06.01
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
||||
|
||||
build/
|
||||
.cmake/
|
||||
output/
|
||||
|
||||
40
Makefile
Normal file
40
Makefile
Normal 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;
|
||||
@ -57,7 +57,14 @@ target_link_options(${TARGET_EXE}
|
||||
-Wl,--cref
|
||||
)
|
||||
|
||||
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}"
|
||||
)
|
||||
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()
|
||||
44
NSPE/Project/WIFI_IOT/nspe_afterbuild.sh
Normal file
44
NSPE/Project/WIFI_IOT/nspe_afterbuild.sh
Normal 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
|
||||
|
||||
Reference in New Issue
Block a user