summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorHa Thach <[email protected]>2023-05-19 18:39:21 +0700
committerGitHub <[email protected]>2023-05-19 18:39:21 +0700
commitc998e9c60bc76894006c3bd049d661124a9bfbfd (patch)
tree0459812c4a53c81e2456453b919a05f194d35f6d /examples
parent6ecd4800061ac72421bf3e33468ee670c2d9ae55 (diff)
parent9f0bae4c3fb687b8a3c1e6df84512ec48690369f (diff)
Merge pull request #2069 from hathach/minor-build-system
Minor build system
Diffstat (limited to 'examples')
-rw-r--r--examples/cmake/cpu/cortex-m33.cmake12
-rw-r--r--examples/cmake/cpu/cortex-m4.cmake12
-rw-r--r--examples/cmake/cpu/cortex-m7.cmake12
-rw-r--r--examples/cmake/toolchain/arm_gcc.cmake60
-rw-r--r--examples/cmake/toolchain/set_flags.cmake24
-rw-r--r--examples/make.mk3
-rw-r--r--examples/rules.mk17
7 files changed, 14 insertions, 126 deletions
diff --git a/examples/cmake/cpu/cortex-m33.cmake b/examples/cmake/cpu/cortex-m33.cmake
deleted file mode 100644
index fbd5027b1..000000000
--- a/examples/cmake/cpu/cortex-m33.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-if (TOOLCHAIN STREQUAL "gcc")
- list(APPEND TOOLCHAIN_COMMON_FLAGS
- -mthumb
- -mcpu=cortex-m33
- -mfloat-abi=hard
- -mfpu=fpv5-d16
- )
-
- set(FREERTOS_PORT GCC_ARM_CM33_NONSECURE CACHE INTERNAL "")
-else ()
- # TODO support IAR
-endif ()
diff --git a/examples/cmake/cpu/cortex-m4.cmake b/examples/cmake/cpu/cortex-m4.cmake
deleted file mode 100644
index 5a2d16c05..000000000
--- a/examples/cmake/cpu/cortex-m4.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-if (TOOLCHAIN STREQUAL "gcc")
- list(APPEND TOOLCHAIN_COMMON_FLAGS
- -mthumb
- -mcpu=cortex-m4
- -mfloat-abi=hard
- -mfpu=fpv4-sp-d16
- )
-
- set(FREERTOS_PORT GCC_ARM_CM4F CACHE INTERNAL "")
-else ()
- # TODO support IAR
-endif ()
diff --git a/examples/cmake/cpu/cortex-m7.cmake b/examples/cmake/cpu/cortex-m7.cmake
deleted file mode 100644
index 481c86bc5..000000000
--- a/examples/cmake/cpu/cortex-m7.cmake
+++ /dev/null
@@ -1,12 +0,0 @@
-if (TOOLCHAIN STREQUAL "gcc")
- list(APPEND TOOLCHAIN_COMMON_FLAGS
- -mthumb
- -mcpu=cortex-m7
- -mfloat-abi=hard
- -mfpu=fpv5-d16
- )
-
- set(FREERTOS_PORT GCC_ARM_CM7 CACHE INTERNAL "")
-else ()
- # TODO support IAR
-endif ()
diff --git a/examples/cmake/toolchain/arm_gcc.cmake b/examples/cmake/toolchain/arm_gcc.cmake
deleted file mode 100644
index c7b6cff98..000000000
--- a/examples/cmake/toolchain/arm_gcc.cmake
+++ /dev/null
@@ -1,60 +0,0 @@
-set(CMAKE_SYSTEM_NAME Generic)
-
-set(CMAKE_ASM_COMPILER "arm-none-eabi-gcc")
-set(CMAKE_C_COMPILER "arm-none-eabi-gcc")
-set(CMAKE_CXX_COMPILER "arm-none-eabi-g++")
-set(GCC_ELF2BIN "arm-none-eabi-objcopy")
-set_property(GLOBAL PROPERTY ELF2BIN ${GCC_ELF2BIN})
-
-# Look for includes and libraries only in the target system prefix.
-set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
-set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-
-# pass TOOLCHAIN_CPU to
-set(CMAKE_TRY_COMPILE_PLATFORM_VARIABLES CMAKE_SYSTEM_PROCESSOR)
-
-include(${CMAKE_CURRENT_LIST_DIR}/../cpu/${CMAKE_SYSTEM_PROCESSOR}.cmake)
-
-# enable all possible warnings for building examples
-list(APPEND TOOLCHAIN_COMMON_FLAGS
- -fdata-sections
- -ffunction-sections
- -fsingle-precision-constant
- -fno-strict-aliasing
- )
-
-list(APPEND TOOLCHAIN_EXE_LINKER_FLAGS
- -Wl,--print-memory-usage
- -Wl,--gc-sections
- -Wl,--cref
- )
-
-list(APPEND TOOLCHAIN_WARNING_FLAGS
- -Wall
- -Wextra
- -Werror
- -Wfatal-errors
- -Wdouble-promotion
- -Wstrict-prototypes
- -Wstrict-overflow
- -Werror-implicit-function-declaration
- -Wfloat-equal
- -Wundef
- -Wshadow
- -Wwrite-strings
- -Wsign-compare
- -Wmissing-format-attribute
- -Wunreachable-code
- -Wcast-align
- -Wcast-function-type
- -Wcast-qual
- -Wnull-dereference
- -Wuninitialized
- -Wunused
- -Wreturn-type
- -Wredundant-decls
- )
-
-include(${CMAKE_CURRENT_LIST_DIR}/set_flags.cmake)
diff --git a/examples/cmake/toolchain/set_flags.cmake b/examples/cmake/toolchain/set_flags.cmake
deleted file mode 100644
index 3f109b59e..000000000
--- a/examples/cmake/toolchain/set_flags.cmake
+++ /dev/null
@@ -1,24 +0,0 @@
-include(CMakePrintHelpers)
-foreach(LANG IN ITEMS C CXX ASM)
- # join the toolchain flags into a single string
- list(APPEND TOOLCHAIN_${LANG}_FLAGS ${TOOLCHAIN_COMMON_FLAGS})
- list(JOIN TOOLCHAIN_${LANG}_FLAGS " " TOOLCHAIN_${LANG}_FLAGS)
- set(CMAKE_${LANG}_FLAGS_INIT "${TOOLCHAIN_${LANG}_FLAGS}")
-
- #cmake_print_variables(CMAKE_${LANG}_FLAGS_INIT)
-
- # optimization flags
- set(CMAKE_${LANG}_FLAGS_RELEASE_INIT "-Os")
- set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0")
-endforeach()
-
-# Linker
-list(JOIN TOOLCHAIN_EXE_LINKER_FLAGS " " CMAKE_EXE_LINKER_FLAGS_INIT)
-
-# try_compile is cmake test compiling its own example,
-# pass -nostdlib to skip stdlib linking
-get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE)
-if(IS_IN_TRY_COMPILE)
- set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -nostdlib")
- set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib")
-endif()
diff --git a/examples/make.mk b/examples/make.mk
index 2ce6fb398..28ebc62da 100644
--- a/examples/make.mk
+++ b/examples/make.mk
@@ -2,6 +2,8 @@
# Common make definition for all examples
# ---------------------------------------
+TOOLCHAIN ?= gcc
+
#-------------- TOP and CURRENT_PATH ------------
# Set TOP to be the path to get from the current directory (where make was
@@ -75,6 +77,7 @@ else
endif
#-------------- Cross Compiler ------------
+
# Can be set by board, default to ARM GCC
CROSS_COMPILE ?= arm-none-eabi-
diff --git a/examples/rules.mk b/examples/rules.mk
index 426000128..f6422092a 100644
--- a/examples/rules.mk
+++ b/examples/rules.mk
@@ -227,14 +227,19 @@ endif
# Jlink Interface
JLINK_IF ?= swd
+# Jlink script
+define jlink_script
+halt
+loadfile $^
+r
+go
+exit
+endef
+export jlink_script
+
# Flash using jlink
flash-jlink: $(BUILD)/$(PROJECT).hex
- @echo halt > $(BUILD)/$(BOARD).jlink
- @echo r >> $(BUILD)/$(BOARD).jlink
- @echo loadfile $^ >> $(BUILD)/$(BOARD).jlink
- @echo r >> $(BUILD)/$(BOARD).jlink
- @echo go >> $(BUILD)/$(BOARD).jlink
- @echo exit >> $(BUILD)/$(BOARD).jlink
+ @echo "$$jlink_script" > $(BUILD)/$(BOARD).jlink
$(JLINKEXE) -device $(JLINK_DEVICE) -if $(JLINK_IF) -JTAGConf -1,-1 -speed auto -CommandFile $(BUILD)/$(BOARD).jlink
# Flash STM32 MCU using stlink with STM32 Cube Programmer CLI