ref: 51f1e57ab39213c2a84155f9383f87d483dad769
parent: 49363e93477e3a0065dbc73da9b383a8e52aefe3
author: gkostka <kostka.grzegorz@gmail.com>
date: Fri May 30 09:25:30 EDT 2014
New targets for: - xmaga - arm-sim (arm-none-eabi-run) - cortex-m0 Improved toolchain directory structure.
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -13,9 +13,16 @@
set_target_properties(lwext4 PROPERTIES COMPILE_FLAGS "-Wall -Wextra -pedantic")
#Examples
-if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m3)
- #cortex-m3 demos
+if (CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m0)
+ #cortex-m0 demos
#...
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m3)
+ #cortex-m3 demos
+
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL arm-sim)
+ #arm-sim demos
+ add_subdirectory(blockdev)
+ add_subdirectory(demos/generic)
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL cortex-m4)
#cortex-m4 demos
add_subdirectory(demos/stm32f429_disco)
@@ -22,7 +29,7 @@
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL bf518)
#bf518 demos
#...
-else()
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL generic)
#Generic example target
add_subdirectory(blockdev)
add_subdirectory(fs_test)
--- a/Makefile
+++ b/Makefile
@@ -18,25 +18,36 @@
mkdir build_bf518
cd build_bf518 && cmake -G$(PROJECT_SETUP) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_TOOLCHAIN_FILE=../toolchain/bf518.cmake ..
+avrxmega7:
+ rm -R -f build_avrxmega7
+ mkdir build_avrxmega7
+ cd build_avrxmega7 && cmake -G$(PROJECT_SETUP) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_TOOLCHAIN_FILE=../toolchain/avrxmega7.cmake ..
+
+cortex-m0:
+ rm -R -f build_cortex-m0
+ mkdir build_cortex-m0
+ cd build_cortex-m0 && cmake -G$(PROJECT_SETUP) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_TOOLCHAIN_FILE=../toolchain/cortex-m0.cmake ..
+
cortex-m3:
rm -R -f build_cortex-m3
mkdir build_cortex-m3
cd build_cortex-m3 && cmake -G$(PROJECT_SETUP) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_TOOLCHAIN_FILE=../toolchain/cortex-m3.cmake ..
-
cortex-m4:
rm -R -f build_cortex-m4
mkdir build_cortex-m4
cd build_cortex-m4 && cmake -G$(PROJECT_SETUP) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_TOOLCHAIN_FILE=../toolchain/cortex-m4.cmake ..
+
+arm-sim:
+ rm -R -f build_arm-sim
+ mkdir build_arm-sim
+ cd build_arm-sim && cmake -G$(PROJECT_SETUP) -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_TOOLCHAIN_FILE=../toolchain/arm-sim.cmake ..
all: generic bf518 cortex-m3 cortex-m4 generic
clean:
- rm -R -f build_bf518
- rm -R -f build_cortex-m3
- rm -R -f build_cortex-m4
- rm -R -f build_generic
+ rm -R -f build_*
rm -R -f ext_images
unpack_images:
--- a/lwext4/ext4_config.h
+++ b/lwext4/ext4_config.h
@@ -56,7 +56,7 @@
/**@brief Include error codes from ext4_errno or sandard library.*/
#ifndef CONFIG_HAVE_OWN_ERRNO
-#define CONFIG_HAVE_OWN_ERRNO 0
+#define CONFIG_HAVE_OWN_ERRNO 1
#endif
--- /dev/null
+++ b/toolchain/arm-sim.cmake
@@ -1,0 +1,9 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME arm-none-eabi)
+set(CMAKE_SYSTEM_PROCESSOR arm-sim)
+
+set(MCPU_FLAGS "")
+set(VFP_FLAGS "")
+set(SIM_FLAGS "--specs=rdimon.specs -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group")
+
+include(${CMAKE_CURRENT_LIST_DIR}/common/arm-none-eabi.cmake)
\ No newline at end of file
--- /dev/null
+++ b/toolchain/avrxmega7.cmake
@@ -1,0 +1,7 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME avr)
+set(CMAKE_SYSTEM_PROCESSOR avrxmega7)
+
+set(MCPU_FLAGS "-mmcu=avrxmega7")
+
+include(${CMAKE_CURRENT_LIST_DIR}/common/avr-gcc.cmake)
\ No newline at end of file
--- a/toolchain/bf518.cmake
+++ b/toolchain/bf518.cmake
@@ -2,25 +2,6 @@
set(CMAKE_SYSTEM_NAME bfin-elf)
set(CMAKE_SYSTEM_PROCESSOR bf518)
-# Toolchain settings
-set(CMAKE_C_COMPILER bfin-elf-gcc)
-set(CMAKE_CXX_COMPILER bfin-elf-g++)
-set(AS bfin-elf--gcc)
-set(AR bfin-elf-ar)
-set(OBJCOPY bfin-elf-objcopy)
-set(OBJDUMP bfin-elf-objdump)
-set(SIZE bfin-elf-size)
+set(MCPU_FLAGS "-mcpu=bf518")
-set(CMAKE_C_FLAGS "-mcpu=bf518 -Wall -std=gnu99 -fdata-sections -ffunction-sections" CACHE INTERNAL "c compiler flags")
-set(CMAKE_CXX_FLAGS "-mcpu=bf518 -Wall -fdata-sections -ffunction-sections" CACHE INTERNAL "cxx compiler flags")
-set(CMAKE_ASM_FLAGS "-mcpu=bf518 -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
-set(CMAKE_EXE_LINKER_FLAGS "-mcpu=bf592 -nostartfiles -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
-
-
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
-SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
-
-SET(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release compiler flags")
-SET(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release compiler flags")
-SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
\ No newline at end of file
+include(${CMAKE_CURRENT_LIST_DIR}/common/bfin-elf.cmake)
\ No newline at end of file
--- /dev/null
+++ b/toolchain/common/arm-none-eabi.cmake
@@ -1,0 +1,23 @@
+# Toolchain settings
+set(CMAKE_C_COMPILER arm-none-eabi-gcc)
+set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
+set(AS arm-none-eabi-as)
+set(AR arm-none-eabi-ar)
+set(OBJCOPY arm-none-eabi-objcopy)
+set(OBJDUMP arm-none-eabi-objdump)
+set(SIZE arm-none-eabi-size)
+
+set(CMAKE_C_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} -Wall -fno-builtin -std=gnu99 -fdata-sections -ffunction-sections" CACHE INTERNAL "c compiler flags")
+set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} ${VFP_FLAGS} -Wall -fno-builtin -fdata-sections -ffunction-sections" CACHE INTERNAL "cxx compiler flags")
+set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
+set(CMAKE_EXE_LINKER_FLAGS "${MCPU_FLAGS} -nostartfiles -Wl,--gc-sections ${SIM_FLAGS}" CACHE INTERNAL "exe link flags")
+
+
+
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
+SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
+
+SET(CMAKE_C_FLAGS_RELEASE "-O2" CACHE INTERNAL "c release compiler flags")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O2" CACHE INTERNAL "cxx release compiler flags")
+SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
\ No newline at end of file
--- /dev/null
+++ b/toolchain/common/avr-gcc.cmake
@@ -1,0 +1,22 @@
+# Toolchain settings
+set(CMAKE_C_COMPILER avr-gcc)
+set(CMAKE_CXX_COMPILER avr-g++)
+set(AS avr--gcc)
+set(AR avr-ar)
+set(OBJCOPY avr-objcopy)
+set(OBJDUMP avr-objdump)
+set(SIZE avr-size)
+
+set(CMAKE_C_FLAGS "${MCPU_FLAGS} -Wall -std=gnu99 -fdata-sections -ffunction-sections" CACHE INTERNAL "c compiler flags")
+set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} -Wall -fdata-sections -ffunction-sections" CACHE INTERNAL "cxx compiler flags")
+set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
+set(CMAKE_EXE_LINKER_FLAGS "${MCPU_FLAGS} -nostartfiles -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
+
+
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
+SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
+
+SET(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release compiler flags")
+SET(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release compiler flags")
+SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
\ No newline at end of file
--- /dev/null
+++ b/toolchain/common/bfin-elf.cmake
@@ -1,0 +1,22 @@
+# Toolchain settings
+set(CMAKE_C_COMPILER bfin-elf-gcc)
+set(CMAKE_CXX_COMPILER bfin-elf-g++)
+set(AS bfin-elf--gcc)
+set(AR bfin-elf-ar)
+set(OBJCOPY bfin-elf-objcopy)
+set(OBJDUMP bfin-elf-objdump)
+set(SIZE bfin-elf-size)
+
+set(CMAKE_C_FLAGS "${MCPU_FLAGS} -Wall -std=gnu99 -fdata-sections -ffunction-sections" CACHE INTERNAL "c compiler flags")
+set(CMAKE_CXX_FLAGS "${MCPU_FLAGS} -Wall -fdata-sections -ffunction-sections" CACHE INTERNAL "cxx compiler flags")
+set(CMAKE_ASM_FLAGS "${MCPU_FLAGS} -x assembler-with-cpp" CACHE INTERNAL "asm compiler flags")
+set(CMAKE_EXE_LINKER_FLAGS "${MCPU_FLAGS} -nostartfiles -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
+
+
+SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
+SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
+SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
+
+SET(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release compiler flags")
+SET(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release compiler flags")
+SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
\ No newline at end of file
--- /dev/null
+++ b/toolchain/cortex-m0.cmake
@@ -1,0 +1,8 @@
+# Name of the target
+set(CMAKE_SYSTEM_NAME arm-none-eabi)
+set(CMAKE_SYSTEM_PROCESSOR cortex-m0)
+
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m0")
+set(VFP_FLAGS "")
+
+include(${CMAKE_CURRENT_LIST_DIR}/common/arm-none-eabi.cmake)
\ No newline at end of file
--- a/toolchain/cortex-m3.cmake
+++ b/toolchain/cortex-m3.cmake
@@ -2,24 +2,8 @@
set(CMAKE_SYSTEM_NAME arm-none-eabi)
set(CMAKE_SYSTEM_PROCESSOR cortex-m3)
-# Toolchain settings
-set(CMAKE_C_COMPILER arm-none-eabi-gcc)
-set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
-set(AS arm-none-eabi-as)
-set(AR arm-none-eabi-ar)
-set(OBJCOPY arm-none-eabi-objcopy)
-set(OBJDUMP arm-none-eabi-objdump)
-set(SIZE arm-none-eabi-size)
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m3")
+set(VFP_FLAGS "")
-set(CMAKE_C_FLAGS "-mthumb -mcpu=cortex-m3 -fno-builtin -Wall -std=gnu99 -fdata-sections -ffunction-sections" CACHE INTERNAL "c compiler flags")
-set(CMAKE_CXX_FLAGS "-mthumb -mcpu=cortex-m3 -fno-builtin -Wall -fdata-sections -ffunction-sections" CACHE INTERNAL "cxx compiler flags")
-set(CMAKE_ASM_FLAGS "-mthumb -mcpu=cortex-m3" CACHE INTERNAL "asm compiler flags")
-set(CMAKE_EXE_LINKER_FLAGS "-mthumb -mcpu=cortex-m3 -nostartfiles -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
-SET(CMAKE_C_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
-SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
-
-SET(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release compiler flags")
-SET(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release compiler flags")
-SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
\ No newline at end of file
+include(${CMAKE_CURRENT_LIST_DIR}/common/arm-none-eabi.cmake)
\ No newline at end of file
--- a/toolchain/cortex-m4.cmake
+++ b/toolchain/cortex-m4.cmake
@@ -2,26 +2,8 @@
set(CMAKE_SYSTEM_NAME arm-none-eabi)
set(CMAKE_SYSTEM_PROCESSOR cortex-m4)
-# Toolchain settings
-set(CMAKE_C_COMPILER arm-none-eabi-gcc)
-set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
-set(AS arm-none-eabi-as)
-set(AR arm-none-eabi-ar)
-set(OBJCOPY arm-none-eabi-objcopy)
-set(OBJDUMP arm-none-eabi-objdump)
-set(SIZE arm-none-eabi-size)
+set(MCPU_FLAGS "-mthumb -mcpu=cortex-m4")
+set(VFP_FLAGS "-mfloat-abi=hard -mfpu=fpv4-sp-d16")
-set(CMAKE_C_FLAGS "-mthumb -mcpu=cortex-m4 -fno-builtin -Wall -std=gnu99 -fdata-sections -ffunction-sections" CACHE INTERNAL "c compiler flags")
-set(CMAKE_CXX_FLAGS "-mthumb -mcpu=cortex-m4 -fno-builtin -Wall -fdata-sections -ffunction-sections" CACHE INTERNAL "cxx compiler flags")
-set(CMAKE_ASM_FLAGS "-mthumb -mcpu=cortex-m4" CACHE INTERNAL "asm compiler flags")
-set(CMAKE_EXE_LINKER_FLAGS " -mthumb -mcpu=cortex-m4 -nostartfiles -Wl,--gc-sections" CACHE INTERNAL "exe link flags")
-
-
-SET(CMAKE_C_FLAGS_DEBUG "-O2 -g -ggdb3" CACHE INTERNAL "c debug compiler flags")
-SET(CMAKE_CXX_FLAGS_DEBUG "-O2 -g -ggdb3" CACHE INTERNAL "cxx debug compiler flags")
-SET(CMAKE_ASM_FLAGS_DEBUG "-g -ggdb3" CACHE INTERNAL "asm debug compiler flags")
-
-SET(CMAKE_C_FLAGS_RELEASE "-Os" CACHE INTERNAL "c release compiler flags")
-SET(CMAKE_CXX_FLAGS_RELEASE "-Os" CACHE INTERNAL "cxx release compiler flags")
-SET(CMAKE_ASM_FLAGS_RELEASE "" CACHE INTERNAL "asm release compiler flags")
\ No newline at end of file
+include(${CMAKE_CURRENT_LIST_DIR}/common/arm-none-eabi.cmake)
\ No newline at end of file