shithub: lwext4

Download patch

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