From 4a0641e22d21d5e05103338cbd2f6dbcab974141 Mon Sep 17 00:00:00 2001 From: Raul Munoz Date: Fri, 19 May 2017 15:06:11 -0300 Subject: examples: ecspi_interrupt_master: update CMake structure Updating this CMake struct according hello_world example. Using this new struct we can build debug and release configuration at the same time and use Eclipse. Signed-off-by: Raul Munoz Signed-off-by: Stefan Agner --- .../ecspi_interrupt/master/armgcc/CMakeLists.txt | 41 +++++++++++----------- .../ecspi_interrupt/master/armgcc/build_all.bat | 10 +++--- .../ecspi_interrupt/master/armgcc/build_all.sh | 10 +++--- .../ecspi_interrupt/master/armgcc/build_debug.bat | 3 -- .../ecspi_interrupt/master/armgcc/build_debug.sh | 3 -- .../master/armgcc/build_release.bat | 3 -- .../ecspi_interrupt/master/armgcc/build_release.sh | 3 -- .../ecspi/ecspi_interrupt/master/armgcc/clean.bat | 10 ++++-- .../ecspi/ecspi_interrupt/master/armgcc/clean.sh | 8 +++-- .../master/armgcc/debug/build_debug.bat | 3 ++ .../master/armgcc/debug/build_debug.sh | 3 ++ .../master/armgcc/release/build_release.bat | 3 ++ .../master/armgcc/release/build_release.sh | 3 ++ 13 files changed, 59 insertions(+), 44 deletions(-) delete mode 100644 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat delete mode 100755 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.sh delete mode 100644 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat delete mode 100755 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.sh create mode 100644 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.bat create mode 100755 examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.sh diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt index dc68cc1..0f04d2e 100644 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/CMakeLists.txt @@ -1,3 +1,8 @@ +INCLUDE(CMakeForceCompiler) + +SET(ProjectName ecspi_interrupt_master) +PROJECT(${ProjectName}) + # CROSS COMPILER SETTING SET(CMAKE_SYSTEM_NAME Generic) CMAKE_MINIMUM_REQUIRED (VERSION 2.6) @@ -22,7 +27,7 @@ SET(ProjDirPath ${CMAKE_CURRENT_SOURCE_DIR}) SET(BspRootDirPath ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../..) # RELEASE/DEBUG LINK FILE -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T${BspRootDirPath}/platform/devices/MCIMX7D/linker/gcc/MCIMX7D_M4_tcm.ld -static") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -T MCIMX7D_M4_tcm.ld -static -L ${BspRootDirPath}/platform/devices/MCIMX7D/linker/gcc/") # DEFAULT ASM FLAGS SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") @@ -31,7 +36,7 @@ SET(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mthumb -MMD -MP -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mapcs -std=gnu99") # DEFAULT LD FLAGS -SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -Xlinker muldefs") +SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 --specs=nano.specs -Wall -fno-common -ffunction-sections -fdata-sections -ffreestanding -fno-builtin -mthumb -mapcs -Xlinker --gc-sections -Xlinker -static -Xlinker -z -z max-page-size=4096 -Xlinker muldefs") # DEBUG ASM FLAGS SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -g") @@ -49,27 +54,22 @@ SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Os") SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -D__DEBUG") # C MACRO +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DCPU_MCIMX7D_M4") SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D__DEBUG") SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D__NDEBUG") -SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DCPU_MCIMX7D_M4") - # INCLUDE_DIRECTORIES -IF(CMAKE_BUILD_TYPE MATCHES Debug) -ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) -ENDIF() - INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) +INCLUDE_DIRECTORIES(${ProjDirPath}/..) INCLUDE_DIRECTORIES(${BspRootDirPath}/platform/CMSIS/Include) INCLUDE_DIRECTORIES(${BspRootDirPath}/platform/devices) INCLUDE_DIRECTORIES(${BspRootDirPath}/platform/devices/MCIMX7D/include) INCLUDE_DIRECTORIES(${BspRootDirPath}/platform/devices/MCIMX7D/startup) INCLUDE_DIRECTORIES(${BspRootDirPath}/platform/drivers/inc) INCLUDE_DIRECTORIES(${BspRootDirPath}/platform/utilities/inc) -INCLUDE_DIRECTORIES(${ProjDirPath}/../../../../..) # ADD_EXECUTABLE -ADD_EXECUTABLE(ecspi_interrupt_master_example +ADD_EXECUTABLE(${ProjectName} "${BspRootDirPath}/platform/devices/MCIMX7D/startup/gcc/startup_MCIMX7D_M4.S" "${BspRootDirPath}/platform/utilities/src/debug_console_imx.c" "${BspRootDirPath}/platform/utilities/inc/debug_console_imx.h" @@ -101,24 +101,25 @@ ADD_EXECUTABLE(ecspi_interrupt_master_example "${BspRootDirPath}/platform/drivers/src/uart_imx.c" "${BspRootDirPath}/platform/drivers/inc/uart_imx.h" ) -SET_TARGET_PROPERTIES(ecspi_interrupt_master_example PROPERTIES OUTPUT_NAME "ecspi_interrupt_master_example.elf") +SET_TARGET_PROPERTIES(${ProjectName} PROPERTIES OUTPUT_NAME "${ProjectName}.elf") -TARGET_LINK_LIBRARIES(ecspi_interrupt_master_example -Wl,--start-group) +TARGET_LINK_LIBRARIES(${ProjectName} -Wl,--start-group) # LIBRARIES IF(CMAKE_BUILD_TYPE MATCHES Debug) ELSEIF(CMAKE_BUILD_TYPE MATCHES Release) ENDIF() # SYSTEM LIBRARIES -TARGET_LINK_LIBRARIES(ecspi_interrupt_master_example m) -TARGET_LINK_LIBRARIES(ecspi_interrupt_master_example c) -TARGET_LINK_LIBRARIES(ecspi_interrupt_master_example gcc) -TARGET_LINK_LIBRARIES(ecspi_interrupt_master_example nosys) -TARGET_LINK_LIBRARIES(ecspi_interrupt_master_example -Wl,--end-group) +TARGET_LINK_LIBRARIES(${ProjectName} m) +TARGET_LINK_LIBRARIES(${ProjectName} c) +TARGET_LINK_LIBRARIES(${ProjectName} gcc) +TARGET_LINK_LIBRARIES(${ProjectName} nosys) +TARGET_LINK_LIBRARIES(${ProjectName} -Wl,--end-group) # MAP FILE -SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Xlinker -Map=${EXECUTABLE_OUTPUT_PATH}/ecspi_interrupt_master_example.map") +SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Xlinker -Map=${ProjectName}.map") # BIN AND HEX -ADD_CUSTOM_COMMAND(TARGET ecspi_interrupt_master_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/ecspi_interrupt_master_example.elf ${EXECUTABLE_OUTPUT_PATH}/ecspi_interrupt_master_example.hex) -ADD_CUSTOM_COMMAND(TARGET ecspi_interrupt_master_example POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/ecspi_interrupt_master_example.elf ${EXECUTABLE_OUTPUT_PATH}/ecspi_interrupt_master_example.bin) +ADD_CUSTOM_COMMAND(TARGET ${ProjectName} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Oihex ${EXECUTABLE_OUTPUT_PATH}/${ProjectName}.elf ${EXECUTABLE_OUTPUT_PATH}/${ProjectName}.hex) +# bin does not support sparse memory area, which our default linker file uses... +#ADD_CUSTOM_COMMAND(TARGET ${ProjectName} POST_BUILD COMMAND ${CMAKE_OBJCOPY} -Obinary ${EXECUTABLE_OUTPUT_PATH}/${ProjectName}.elf ${EXECUTABLE_OUTPUT_PATH}/${ProjectName}.bin) diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat index 1939438..426a29f 100644 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.bat @@ -1,5 +1,7 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 +cd release +call build_release.bat +cd .. +cd debug +call build_debug.bat +cd .. pause diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.sh b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.sh index fc1cfb1..99e6267 100755 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.sh +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_all.sh @@ -1,5 +1,7 @@ #!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 +cd debug/ +./build_debug.sh +cd .. +cd release/ +./build_release.sh +cd .. diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat deleted file mode 100644 index 4950fc9..0000000 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.sh b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.sh deleted file mode 100755 index 869b369..0000000 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_debug.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug . -make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat deleted file mode 100644 index 9ec4b80..0000000 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.bat +++ /dev/null @@ -1,3 +0,0 @@ -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release . -mingw32-make -j4 -pause diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.sh b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.sh deleted file mode 100755 index 25773b2..0000000 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/build_release.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh -cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Release . -make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat index ffea088..fc53949 100644 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.bat @@ -1,3 +1,9 @@ -RD /s /Q Debug Release CMakeFiles -DEL /s /Q /F Makefile cmake_install.cmake CMakeCache.txt +cd debug +rd /s /Q CMakeFiles/ +del /s /Q /F Makefile cmake_install.cmake CMakeCache.txt *.elf *.bin *.map *.hex +cd .. +cd release +rd /s /Q CMakeFiles/ +del /s /Q /F Makefile cmake_install.cmake CMakeCache.txt *.elf *.bin *.map *.hex +cd .. pause diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.sh b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.sh index 795ad87..4b188ab 100755 --- a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.sh +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/clean.sh @@ -1,3 +1,7 @@ #!/bin/sh -rm -rf debug release CMakeFiles -rm -rf Makefile cmake_install.cmake CMakeCache.txt +cd debug +rm -rf Makefile cmake_install.cmake CMakeCache.txt CMakeFiles *.elf *.bin *.map *.hex .cproject .project +cd .. +cd release +rm -rf Makefile cmake_install.cmake CMakeCache.txt CMakeFiles *.elf *.bin *.map *.hex +cd .. diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.bat b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.bat new file mode 100644 index 0000000..cc4df42 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Debug .. +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.sh b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.sh new file mode 100755 index 0000000..23808cf --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/debug/build_debug.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug .. +make -j4 diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.bat b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.bat new file mode 100644 index 0000000..52ccf99 --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.bat @@ -0,0 +1,3 @@ +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release .. +mingw32-make -j4 +pause diff --git a/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.sh b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.sh new file mode 100755 index 0000000..2000dba --- /dev/null +++ b/examples/imx7_colibri_m4/driver_examples/ecspi/ecspi_interrupt/master/armgcc/release/build_release.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../../tools/cmake_toolchain_files/armgcc.cmake" -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release .. +make -j4 -- cgit v1.2.3