From 9d522d56d408cb64cca85ba7e5e50ee34a7e740e Mon Sep 17 00:00:00 2001 From: Yilin Sun Date: Wed, 5 Jul 2023 14:02:49 +0800 Subject: [PATCH] CI: Added ARM builds. Signed-off-by: Yilin Sun --- .drone.yml | 91 +++++++++++++++++++++++++++++++++++++ cmake/arm-cortex-m0p.cmake | 17 +++++++ cmake/arm-cortex-m3.cmake | 17 +++++++ cmake/arm-cortex-m33.cmake | 17 +++++++ cmake/arm-cortex-m33f.cmake | 17 +++++++ cmake/arm-cortex-m4.cmake | 17 +++++++ cmake/arm-cortex-m4f.cmake | 17 +++++++ cmake/arm-cortex-m7f.cmake | 17 +++++++ 8 files changed, 210 insertions(+) create mode 100644 .drone.yml create mode 100644 cmake/arm-cortex-m0p.cmake create mode 100644 cmake/arm-cortex-m3.cmake create mode 100644 cmake/arm-cortex-m33.cmake create mode 100644 cmake/arm-cortex-m33f.cmake create mode 100644 cmake/arm-cortex-m4.cmake create mode 100644 cmake/arm-cortex-m4f.cmake create mode 100644 cmake/arm-cortex-m7f.cmake diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..f67a1a4 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,91 @@ +--- +kind: pipeline +type: docker +name: Build - Cortex-M0+ + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m0p.cmake + - make + +--- +kind: pipeline +type: docker +name: Build - Cortex-M3 + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m3.cmake + - make + +--- +kind: pipeline +type: docker +name: Build - Cortex-M4 + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m4.cmake + - make + +--- +kind: pipeline +type: docker +name: Build - Cortex-M4F + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m4f.cmake + - make + +--- +kind: pipeline +type: docker +name: Build - Cortex-M7F + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m7f.cmake + - make + +--- +kind: pipeline +type: docker +name: Build - Cortex-M33 without DSP extension + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m33.cmake + - make + +--- +kind: pipeline +type: docker +name: Build - Cortex-M33F + +steps: + - name: Build + image: "git.minori.work/embedded_sdk/embedded-builder-arm:latest" + commands: + - mkdir build && cd build + - cmake -DCMAKE_TOOLCHAIN_FILE=cmake/arm-cortex-m33f.cmake + - make + diff --git a/cmake/arm-cortex-m0p.cmake b/cmake/arm-cortex-m0p.cmake new file mode 100644 index 0000000..2b68248 --- /dev/null +++ b/cmake/arm-cortex-m0p.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m0plus -mthumb -mfloat-abi=soft") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m0plus -mthumb -mfloat-abi=soft") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/cmake/arm-cortex-m3.cmake b/cmake/arm-cortex-m3.cmake new file mode 100644 index 0000000..cd9b94f --- /dev/null +++ b/cmake/arm-cortex-m3.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m3 -mthumb -mfloat-abi=soft") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m3 -mthumb -mfloat-abi=soft") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/cmake/arm-cortex-m33.cmake b/cmake/arm-cortex-m33.cmake new file mode 100644 index 0000000..78a09c7 --- /dev/null +++ b/cmake/arm-cortex-m33.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m33+nodsp -mthumb -mfloat-abi=soft") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m33+nodsp -mthumb -mfloat-abi=soft") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/cmake/arm-cortex-m33f.cmake b/cmake/arm-cortex-m33f.cmake new file mode 100644 index 0000000..be090f8 --- /dev/null +++ b/cmake/arm-cortex-m33f.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m33 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=hard") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m33 -mthumb -mfpu=fpv5-sp-d16 -mfloat-abi=hard") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/cmake/arm-cortex-m4.cmake b/cmake/arm-cortex-m4.cmake new file mode 100644 index 0000000..685cc60 --- /dev/null +++ b/cmake/arm-cortex-m4.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfloat-abi=soft") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfloat-abi=soft") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/cmake/arm-cortex-m4f.cmake b/cmake/arm-cortex-m4f.cmake new file mode 100644 index 0000000..7eab194 --- /dev/null +++ b/cmake/arm-cortex-m4f.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/cmake/arm-cortex-m7f.cmake b/cmake/arm-cortex-m7f.cmake new file mode 100644 index 0000000..47422dd --- /dev/null +++ b/cmake/arm-cortex-m7f.cmake @@ -0,0 +1,17 @@ +# Poor old Windows... +if(WIN32) + set(CMAKE_SYSTEM_NAME "Generic") +endif() + +set(CMAKE_C_COMPILER arm-none-eabi-gcc) +set(CMAKE_CXX_COMPILER arm-none-eabi-g++) + +# Optionally set size binary name, for elf section size reporting. +set(TARGET_TOOLCHAIN_SIZE arm-none-eabi-size) + +set(CMAKE_C_FLAGS_INIT "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard") +set(CMAKE_CXX_FLAGS_INIT "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard") +set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=nano.specs -specs=nosys.specs -Wl,--print-memory-usage -Wl,--no-warn-rwx-segments") + +# Make CMake happy about those compilers +set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY")