]> git.sur5r.net Git - freertos/commitdiff
Kernel changes:
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 20 Nov 2015 14:11:11 +0000 (14:11 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 20 Nov 2015 14:11:11 +0000 (14:11 +0000)
+ Support tickless idle when configUSE_PREEMPTION is 0 (previously tickless idle was only supported when the pre-emptive scheduler was being used).
+ If a stack was statically allocated, then don't try freeing it if the TCB cannot be allocated.
+ Remove use of INCLUDE_xEventGroupsSetBitsFromISR() pre-processor macro, as it was not tested anyway.

Demo app changes:

+ Updated SAM4L Atmel Studio project to use Atmel Studio 7.

git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2393 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

20 files changed:
FreeRTOS-Plus/Source/FreeRTOS-Plus-Trace/Include/trcKernelPort.h
FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4L_Atmel_Studio/FreeRTOS_Demo.cproj
FreeRTOS/Demo/CORTEX_M4_ATSAM4L_Atmel_Studio/src/asf/sam/utils/compiler.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4L_Atmel_Studio/src/config/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4L_Atmel_Studio/src/main.c
FreeRTOS/Demo/CORTEX_R4F_RZ_T_GCC_IAR/src/FreeRTOSConfig.h
FreeRTOS/Demo/MSP430X_MSP430FR5969_LaunchPad_IAR_CCS/FreeRTOSConfig.h
FreeRTOS/Demo/Xilinx_FreeRTOS_BSP/repo/bsp/freertos822_xilinx_v1_0/data/freertos822_xilinx.tcl
FreeRTOS/Source/event_groups.c
FreeRTOS/Source/include/FreeRTOS.h
FreeRTOS/Source/include/event_groups.h
FreeRTOS/Source/include/projdefs.h
FreeRTOS/Source/portable/MSVC-MingW/portmacro.h
FreeRTOS/Source/portable/RVDS/ARM_CM3/portmacro.h
FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h
FreeRTOS/Source/portable/RVDS/ARM_CM7/r0p1/portmacro.h
FreeRTOS/Source/portable/readme.txt
FreeRTOS/Source/tasks.c

index c5d25d9216589d054ef556c66f72b29e2458d41b..7c8244137969340dbbb0680b7f076db03df9a58c 100644 (file)
@@ -165,7 +165,7 @@ extern int uiInEventGroupSetBitsFromISR;
 #include "trcUser.h"\r
 \r
 #if (INCLUDE_NEW_TIME_EVENTS == 1 && configUSE_TICKLESS_IDLE != 0)\r
-#error "NewTime events can not be used in combination with tickless idle!"\r
+       #error "NewTime events can not be used in combination with tickless idle!"\r
 #endif\r
 \r
 /* Initialization of the object property table */\r
index 514cc4743665233a4f9fdaa3fbaa77c26a3d4114..a043cdf3e1710f6a06fba3086842e9c55d021b62 100644 (file)
@@ -124,7 +124,7 @@ to exclude the API function. */
 #define INCLUDE_vTaskDelayUntil                                        1\r
 #define INCLUDE_vTaskDelay                                             1\r
 #define INCLUDE_eTaskGetState                                  1\r
-#define INCLUDE_xEventGroupSetBitFromISR               1\r
+#define INCLUDE_xEventGroupSetBitsFromISR              1\r
 #define INCLUDE_xTimerPendFunctionCall                 1\r
 \r
 /* This demo makes use of one or more example stats formatting functions.  These\r
index c05ac6aeda631a4d46987811a8b8b30ff6e44b3b..6d9f6e8a010f1455e369d03ec00d4f36855d54fe 100644 (file)
@@ -124,7 +124,7 @@ to exclude the API function. */
 #define INCLUDE_vTaskDelayUntil                                        1\r
 #define INCLUDE_vTaskDelay                                             1\r
 #define INCLUDE_eTaskGetState                                  1\r
-#define INCLUDE_xEventGroupSetBitFromISR               1\r
+#define INCLUDE_xEventGroupSetBitsFromISR              1\r
 #define INCLUDE_xTimerPendFunctionCall                 1\r
 \r
 /* This demo makes use of one or more example stats formatting functions.  These\r
index ee91e87e1dc4f285c4f6205daef4771970eefc55..b35d9406629b26aa687f036ed4761f8c184e6c9c 100644 (file)
@@ -2,7 +2,7 @@
 <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
   <PropertyGroup>\r
     <SchemaVersion>2.0</SchemaVersion>\r
-    <ProjectVersion>6.2</ProjectVersion>\r
+    <ProjectVersion>7.0</ProjectVersion>\r
     <ToolchainName>com.Atmel.ARMGCC.C</ToolchainName>\r
     <ProjectGuid>{dfc77570-bc67-4ee7-8143-c34e75167169}</ProjectGuid>\r
     <avrdevice>ATSAM4LC4C</avrdevice>\r
     <AsfVersion>3.5.1</AsfVersion>\r
     <AsfFrameworkConfig>\r
       <framework-data>\r
-  <options>\r
-    <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
-    <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />\r
-    <option id="common.services.ioport" value="Add" config="" content-id="Atmel.ASF" />\r
-    <option id="common.services.basic.sleepmgr" value="Add" config="" content-id="Atmel.ASF" />\r
-    <option id="sam.drivers.ast" value="Add" config="" content-id="Atmel.ASF" />\r
-    <option id="sam.drivers.bpm" value="Add" config="" content-id="Atmel.ASF" />\r
-    <option id="sam.drivers.eic" value="Add" config="" content-id="Atmel.ASF" />\r
-  </options>\r
-  <configurations>\r
-    <configuration key="config.compiler.armgcc.create_aux" value="no" default="no" content-id="Atmel.ASF" />\r
-    <configuration key="config.compiler.iarewarm.create_aux" value="no" default="no" content-id="Atmel.ASF" />\r
-    <configuration key="config.compiler.as5_arm.create_aux" value="no" default="no" content-id="Atmel.ASF" />\r
-  </configurations>\r
-  <files>\r
-    <file path="src/asf/common/boards/board.h" framework="" version="3.5.1" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/dfll.h" framework="" version="3.5.1" source="common/services/clock/dfll.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/genclk.h" framework="" version="3.5.1" source="common/services/clock/genclk.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/osc.h" framework="" version="3.5.1" source="common/services/clock/osc.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/pll.h" framework="" version="3.5.1" source="common/services/clock/pll.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/dfll.c" framework="" version="3.5.1" source="common/services/clock/sam4l/dfll.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/dfll.h" framework="" version="3.5.1" source="common/services/clock/sam4l/dfll.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/genclk.h" framework="" version="3.5.1" source="common/services/clock/sam4l/genclk.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/osc.c" framework="" version="3.5.1" source="common/services/clock/sam4l/osc.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/osc.h" framework="" version="3.5.1" source="common/services/clock/sam4l/osc.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/pll.c" framework="" version="3.5.1" source="common/services/clock/sam4l/pll.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/pll.h" framework="" version="3.5.1" source="common/services/clock/sam4l/pll.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/sysclk.c" framework="" version="3.5.1" source="common/services/clock/sam4l/sysclk.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sam4l/sysclk.h" framework="" version="3.5.1" source="common/services/clock/sam4l/sysclk.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/clock/sysclk.h" framework="" version="3.5.1" source="common/services/clock/sysclk.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/ioport/ioport.h" framework="" version="3.5.1" source="common/services/ioport/ioport.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/ioport/sam/ioport_gpio.h" framework="" version="3.5.1" source="common/services/ioport/sam/ioport_gpio.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/sleepmgr/sam4l/sleepmgr.c" framework="" version="3.5.1" source="common/services/sleepmgr/sam4l/sleepmgr.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/sleepmgr/sam4l/sleepmgr.h" framework="" version="3.5.1" source="common/services/sleepmgr/sam4l/sleepmgr.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/services/sleepmgr/sleepmgr.h" framework="" version="3.5.1" source="common/services/sleepmgr/sleepmgr.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/utils/interrupt.h" framework="" version="3.5.1" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="3.5.1" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="3.5.1" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/common/utils/parts.h" framework="" version="3.5.1" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/boards/sam4l_ek/init.c" framework="" version="3.5.1" source="sam/boards/sam4l_ek/init.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/boards/sam4l_ek/sam4l_ek.h" framework="" version="3.5.1" source="sam/boards/sam4l_ek/sam4l_ek.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/bpm/bpm.c" framework="" version="3.5.1" source="sam/drivers/bpm/bpm.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/bpm/bpm.h" framework="" version="3.5.1" source="sam/drivers/bpm/bpm.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/bpm/sleep.h" framework="" version="3.5.1" source="sam/drivers/bpm/sleep.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/flashcalw/flashcalw.c" framework="" version="3.5.1" source="sam/drivers/flashcalw/flashcalw.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/flashcalw/flashcalw.h" framework="" version="3.5.1" source="sam/drivers/flashcalw/flashcalw.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/lcdca_example.c" framework="" version="3.5.1" source="sam/drivers/lcdca/example/lcdca_example.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/config/conf_board.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/config/conf_clock.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_clock.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/config/conf_example.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_example.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/config/conf_sleepmgr.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_sleepmgr.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/cmsis/sam4l/include/sam4l.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/include/sam4l.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/cmsis/sam4l/include/sam4l_patch_asf.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/include/sam4l_patch_asf.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/exceptions.c" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/exceptions.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/gcc/startup_sam4l.c" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/gcc/startup_sam4l.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/system_sam4l.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/system_sam4l.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/compiler.h" framework="" version="3.5.1" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/header_files/io.h" framework="" version="3.5.1" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/linker_scripts/sam4l/sam4l4/gcc/flash.ld" framework="" version="3.5.1" source="sam/utils/linker_scripts/sam4l/sam4l4/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.5.1" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.5.1" source="sam/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/preprocessor/preprocessor.h" framework="" version="3.5.1" source="sam/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/preprocessor/stringz.h" framework="" version="3.5.1" source="sam/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/preprocessor/tpaste.h" framework="" version="3.5.1" source="sam/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/status_codes.h" framework="" version="3.5.1" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/utils/syscalls/gcc/syscalls.c" framework="" version="3.5.1" source="sam/utils/syscalls/gcc/syscalls.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.5.1" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/Include/arm_math.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/arm_math.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/Include/core_cm4.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cm4.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cm4_simd.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" framework="" version="3.5.1" source="thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.5.1" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.5.1" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/timers.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\timers.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/tasks.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\tasks.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/queue.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\queue.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/list.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\list.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/FreeRTOS_CLI.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\FreeRTOS_CLI.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/portable/memmang/heap_4.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\portable\memmang\heap_4.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/portable/gcc/arm_cm3/port.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\portable\gcc\arm_cm3\port.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/readme.txt" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\readme.txt" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/ATMEL-disclaimer.txt" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\ATMEL-disclaimer.txt" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/mpu_wrappers.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\mpu_wrappers.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/semphr.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\semphr.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/FreeRTOS.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\FreeRTOS.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/portable.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\portable.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/queue.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\queue.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/list.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\list.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/timers.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\timers.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/StackMacros.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\StackMacros.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/projdefs.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\projdefs.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/task.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\task.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/portable/gcc/arm_cm3/portmacro.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\portable\gcc\arm_cm3\portmacro.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/FreeRTOS_CLI.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\FreeRTOS_CLI.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/croutine.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\croutine.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/ast/ast.c" framework="" version="" source="sam\drivers\ast\ast.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/asf/sam/drivers/ast/ast.h" framework="" version="" source="sam\drivers\ast\ast.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/config/conf_ast.h" framework="" version="" source="sam\drivers\ast\module_config\conf_ast.h" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/ASF/sam/drivers/eic/eic.c" framework="" version="3.6.0" source="sam\drivers\eic\eic.c" changed="False" content-id="Atmel.ASF" />\r
-    <file path="src/ASF/sam/drivers/eic/eic.h" framework="" version="3.6.0" source="sam\drivers\eic\eic.h" changed="False" content-id="Atmel.ASF" />\r
-  </files>\r
-  <documentation help="" />\r
-  <offline-documentation help="" />\r
-  <dependencies>\r
-    <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.6.0" />\r
-  </dependencies>\r
-</framework-data>\r
+        <options>\r
+          <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
+          <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />\r
+          <option id="common.services.ioport" value="Add" config="" content-id="Atmel.ASF" />\r
+          <option id="common.services.basic.sleepmgr" value="Add" config="" content-id="Atmel.ASF" />\r
+          <option id="sam.drivers.ast" value="Add" config="" content-id="Atmel.ASF" />\r
+          <option id="sam.drivers.bpm" value="Add" config="" content-id="Atmel.ASF" />\r
+          <option id="sam.drivers.eic" value="Add" config="" content-id="Atmel.ASF" />\r
+        </options>\r
+        <configurations>\r
+          <configuration key="config.compiler.armgcc.create_aux" value="no" default="no" content-id="Atmel.ASF" />\r
+          <configuration key="config.compiler.iarewarm.create_aux" value="no" default="no" content-id="Atmel.ASF" />\r
+          <configuration key="config.compiler.as5_arm.create_aux" value="no" default="no" content-id="Atmel.ASF" />\r
+        </configurations>\r
+        <files>\r
+          <file path="src/asf/common/boards/board.h" framework="" version="3.5.1" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/dfll.h" framework="" version="3.5.1" source="common/services/clock/dfll.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/genclk.h" framework="" version="3.5.1" source="common/services/clock/genclk.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/osc.h" framework="" version="3.5.1" source="common/services/clock/osc.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/pll.h" framework="" version="3.5.1" source="common/services/clock/pll.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/dfll.c" framework="" version="3.5.1" source="common/services/clock/sam4l/dfll.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/dfll.h" framework="" version="3.5.1" source="common/services/clock/sam4l/dfll.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/genclk.h" framework="" version="3.5.1" source="common/services/clock/sam4l/genclk.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/osc.c" framework="" version="3.5.1" source="common/services/clock/sam4l/osc.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/osc.h" framework="" version="3.5.1" source="common/services/clock/sam4l/osc.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/pll.c" framework="" version="3.5.1" source="common/services/clock/sam4l/pll.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/pll.h" framework="" version="3.5.1" source="common/services/clock/sam4l/pll.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/sysclk.c" framework="" version="3.5.1" source="common/services/clock/sam4l/sysclk.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sam4l/sysclk.h" framework="" version="3.5.1" source="common/services/clock/sam4l/sysclk.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/clock/sysclk.h" framework="" version="3.5.1" source="common/services/clock/sysclk.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/ioport/ioport.h" framework="" version="3.5.1" source="common/services/ioport/ioport.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/ioport/sam/ioport_gpio.h" framework="" version="3.5.1" source="common/services/ioport/sam/ioport_gpio.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/sleepmgr/sam4l/sleepmgr.c" framework="" version="3.5.1" source="common/services/sleepmgr/sam4l/sleepmgr.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/sleepmgr/sam4l/sleepmgr.h" framework="" version="3.5.1" source="common/services/sleepmgr/sam4l/sleepmgr.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/services/sleepmgr/sleepmgr.h" framework="" version="3.5.1" source="common/services/sleepmgr/sleepmgr.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/utils/interrupt.h" framework="" version="3.5.1" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.c" framework="" version="3.5.1" source="common/utils/interrupt/interrupt_sam_nvic.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/utils/interrupt/interrupt_sam_nvic.h" framework="" version="3.5.1" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/common/utils/parts.h" framework="" version="3.5.1" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/boards/sam4l_ek/init.c" framework="" version="3.5.1" source="sam/boards/sam4l_ek/init.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/boards/sam4l_ek/sam4l_ek.h" framework="" version="3.5.1" source="sam/boards/sam4l_ek/sam4l_ek.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/bpm/bpm.c" framework="" version="3.5.1" source="sam/drivers/bpm/bpm.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/bpm/bpm.h" framework="" version="3.5.1" source="sam/drivers/bpm/bpm.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/bpm/sleep.h" framework="" version="3.5.1" source="sam/drivers/bpm/sleep.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/flashcalw/flashcalw.c" framework="" version="3.5.1" source="sam/drivers/flashcalw/flashcalw.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/flashcalw/flashcalw.h" framework="" version="3.5.1" source="sam/drivers/flashcalw/flashcalw.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/lcdca_example.c" framework="" version="3.5.1" source="sam/drivers/lcdca/example/lcdca_example.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/config/conf_board.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/config/conf_clock.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_clock.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/config/conf_example.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_example.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/config/conf_sleepmgr.h" framework="" version="3.5.1" source="sam/drivers/lcdca/example/sam4lc4c_sam4l_ek/conf_sleepmgr.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/cmsis/sam4l/include/sam4l.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/include/sam4l.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/cmsis/sam4l/include/sam4l_patch_asf.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/include/sam4l_patch_asf.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/exceptions.c" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/exceptions.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/gcc/startup_sam4l.c" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/gcc/startup_sam4l.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/cmsis/sam4l/source/templates/system_sam4l.h" framework="" version="3.5.1" source="sam/utils/cmsis/sam4l/source/templates/system_sam4l.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/compiler.h" framework="" version="3.5.1" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/header_files/io.h" framework="" version="3.5.1" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/linker_scripts/sam4l/sam4l4/gcc/flash.ld" framework="" version="3.5.1" source="sam/utils/linker_scripts/sam4l/sam4l4/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.5.1" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.5.1" source="sam/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/preprocessor/preprocessor.h" framework="" version="3.5.1" source="sam/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/preprocessor/stringz.h" framework="" version="3.5.1" source="sam/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/preprocessor/tpaste.h" framework="" version="3.5.1" source="sam/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/status_codes.h" framework="" version="3.5.1" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/utils/syscalls/gcc/syscalls.c" framework="" version="3.5.1" source="sam/utils/syscalls/gcc/syscalls.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.5.1" source="thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/Include/arm_math.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/arm_math.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/Include/core_cm4.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cm4.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/Include/core_cm4_simd.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cm4_simd.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/Include/core_cmFunc.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cmFunc.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/Include/core_cmInstr.h" framework="" version="3.5.1" source="thirdparty/CMSIS/Include/core_cmInstr.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" framework="" version="3.5.1" source="thirdparty/CMSIS/Lib/GCC/libarm_cortexM4l_math.a" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.5.1" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.5.1" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/timers.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\timers.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/tasks.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\tasks.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/queue.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\queue.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/list.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\list.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/FreeRTOS_CLI.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\FreeRTOS_CLI.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/portable/memmang/heap_4.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\portable\memmang\heap_4.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/portable/gcc/arm_cm3/port.c" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\portable\gcc\arm_cm3\port.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/readme.txt" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\readme.txt" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/ATMEL-disclaimer.txt" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\ATMEL-disclaimer.txt" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/mpu_wrappers.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\mpu_wrappers.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/semphr.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\semphr.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/FreeRTOS.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\FreeRTOS.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/portable.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\portable.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/queue.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\queue.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/list.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\list.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/timers.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\timers.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/StackMacros.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\StackMacros.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/projdefs.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\projdefs.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/task.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\task.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/portable/gcc/arm_cm3/portmacro.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\portable\gcc\arm_cm3\portmacro.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/FreeRTOS_CLI.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\FreeRTOS_CLI.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/thirdparty/freertos/freertos-7.3.0/source/include/croutine.h" framework="" version="" source="thirdparty\freertos\freertos-7.3.0\source\include\croutine.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/ast/ast.c" framework="" version="" source="sam\drivers\ast\ast.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/asf/sam/drivers/ast/ast.h" framework="" version="" source="sam\drivers\ast\ast.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/config/conf_ast.h" framework="" version="" source="sam\drivers\ast\module_config\conf_ast.h" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/ASF/sam/drivers/eic/eic.c" framework="" version="3.6.0" source="sam\drivers\eic\eic.c" changed="False" content-id="Atmel.ASF" />\r
+          <file path="src/ASF/sam/drivers/eic/eic.h" framework="" version="3.6.0" source="sam\drivers\eic\eic.h" changed="False" content-id="Atmel.ASF" />\r
+        </files>\r
+        <documentation help="" />\r
+        <offline-documentation help="" />\r
+        <dependencies>\r
+          <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.18.1" />\r
+        </dependencies>\r
+      </framework-data>\r
     </AsfFrameworkConfig>\r
     <avrtoolinterface>SWD</avrtoolinterface>\r
     <avrtool>com.atmel.avrdbg.tool.samice</avrtool>\r
     <RamSnippetAddress>0x20000000</RamSnippetAddress>\r
     <UncachedRange />\r
     <BootSegment>2</BootSegment>\r
+    <preserveEEPROM>true</preserveEEPROM>\r
+    <ExternalProgrammingToolCommand />\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">\r
     <ToolchainSettings>\r
   <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
   <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam4l/sam4l4/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>\r
   <armgcc.assembler.general.AssemblerFlags>-D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__</armgcc.assembler.general.AssemblerFlags>\r
-  <armgcc.assembler.general.IncludePaths>\r
-    <ListValues>\r
-      <Value>../src/ASF/sam/drivers/eic</Value>\r
-    </ListValues>\r
-  </armgcc.assembler.general.IncludePaths>\r
   <armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM4=true -DBOARD=SAM4L_EK -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
   <armgcc.preprocessingassembler.general.IncludePaths>\r
     <ListValues>\r
   <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
   <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>\r
   <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
-  <armgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -Wmissing-field-initializers -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__</armgcc.compiler.miscellaneous.OtherFlags>\r
+  <armgcc.compiler.miscellaneous.OtherFlags>-std=gnu99 -Wmissing-field-initializers -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -Wno-attributes</armgcc.compiler.miscellaneous.OtherFlags>\r
   <armgcc.linker.libraries.Libraries>\r
     <ListValues>\r
       <Value>libm</Value>\r
     </ListValues>\r
   </armgcc.linker.libraries.LibrarySearchPaths>\r
   <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
+  <armgcc.linker.memorysettings.ExternalRAM />\r
   <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam4l/sam4l4/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>\r
   <armgcc.assembler.general.AssemblerFlags>-D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__</armgcc.assembler.general.AssemblerFlags>\r
-  <armgcc.assembler.general.IncludePaths>\r
-    <ListValues>\r
-      <Value>../src/ASF/sam/drivers/eic</Value>\r
-    </ListValues>\r
-  </armgcc.assembler.general.IncludePaths>\r
   <armgcc.assembler.debugging.DebugLevel>Default (-g)</armgcc.assembler.debugging.DebugLevel>\r
   <armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM4=true -DBOARD=SAM4L_EK -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__ -D__ATSAM4LC4C__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
   <armgcc.preprocessingassembler.general.IncludePaths>\r
index 5f1e1d239b8d4c06904048fed5344b1440522b84..22d88dadad92e6249fe79af3f14edccb7647004f 100644 (file)
 #if defined(__CC_ARM)\r
 #   define __always_inline   __forceinline\r
 #elif (defined __GNUC__)\r
+#      undef __always_inline /* remove warning of the macro being redefined. */\r
 #      define __always_inline   inline __attribute__((__always_inline__))\r
 #elif (defined __ICCARM__)\r
 #      define __always_inline   _Pragma("inline=forced")\r
index f37cae4459ed0f5318dac267c9bcf742ddd88470..fb2639c1c7d41934a9206142ef8a21bc8b093384 100644 (file)
 \r
 /* Set configCREATE_LOW_POWER_DEMO to one to run the simple blinky demo,\r
 or 0 to run the more comprehensive test and demo application. */\r
-#define configCREATE_LOW_POWER_DEMO    1\r
+#define configCREATE_LOW_POWER_DEMO                            1\r
 \r
 #if configCREATE_LOW_POWER_DEMO == 1\r
-       #define configCPU_CLOCK_HZ                              16384\r
-       #define configSYSTICK_CLOCK_HZ                  16384\r
-       #define configUSE_TICKLESS_IDLE                 1\r
-       #define configTICK_RATE_HZ                              ( ( TickType_t ) 128 )\r
+       #define configCPU_CLOCK_HZ                                      16384\r
+       #define configSYSTICK_CLOCK_HZ                          16384\r
+       #define configUSE_TICKLESS_IDLE                         1\r
+       #define configTICK_RATE_HZ                                      ( ( TickType_t ) 128 )\r
 #else\r
-       #define configCPU_CLOCK_HZ                              sysclk_get_cpu_hz()\r
-       #define configUSE_TICKLESS_IDLE                 0\r
-       #define configTICK_RATE_HZ                              ( ( TickType_t ) 1000 )\r
+       #define configCPU_CLOCK_HZ                                      sysclk_get_cpu_hz()\r
+       #define configUSE_TICKLESS_IDLE                         0\r
+       #define configTICK_RATE_HZ                                      ( ( TickType_t ) 1000 )\r
 #endif /* configCREATE_LOW_POWER_DEMO */\r
 \r
-#define configUSE_PREEMPTION                   1\r
-#define configUSE_IDLE_HOOK                            0\r
-#define configUSE_TICK_HOOK                            0\r
-#define configMAX_PRIORITIES                   ( 5 )\r
-#define configMINIMAL_STACK_SIZE               ( ( unsigned short ) 130 )\r
-#define configTOTAL_HEAP_SIZE                  ( ( size_t ) ( 26000 ) )\r
-#define configMAX_TASK_NAME_LEN                        ( 10 )\r
-#define configUSE_TRACE_FACILITY               1\r
-#define configUSE_16_BIT_TICKS                 0\r
-#define configIDLE_SHOULD_YIELD                        1\r
-#define configUSE_MUTEXES                              1\r
-#define configQUEUE_REGISTRY_SIZE              8\r
-#define configCHECK_FOR_STACK_OVERFLOW 0\r
-#define configUSE_RECURSIVE_MUTEXES            1\r
-#define configUSE_MALLOC_FAILED_HOOK   1\r
-#define configUSE_APPLICATION_TASK_TAG 0\r
-#define configUSE_COUNTING_SEMAPHORES  1\r
+#define configUSE_PREEMPTION                                   1\r
+#define configUSE_IDLE_HOOK                                            0\r
+#define configUSE_TICK_HOOK                                            0\r
+#define configMAX_PRIORITIES                                   ( 5 )\r
+#define configMINIMAL_STACK_SIZE                               ( ( unsigned short ) 130 )\r
+#define configTOTAL_HEAP_SIZE                                  ( ( size_t ) ( 26000 ) )\r
+#define configMAX_TASK_NAME_LEN                                        ( 10 )\r
+#define configUSE_TRACE_FACILITY                               1\r
+#define configUSE_16_BIT_TICKS                                 0\r
+#define configIDLE_SHOULD_YIELD                                        1\r
+#define configUSE_MUTEXES                                              1\r
+#define configQUEUE_REGISTRY_SIZE                              8\r
+#define configCHECK_FOR_STACK_OVERFLOW                 0\r
+#define configUSE_RECURSIVE_MUTEXES                            1\r
+#define configUSE_MALLOC_FAILED_HOOK                   1\r
+#define configUSE_APPLICATION_TASK_TAG                 0\r
+#define configUSE_COUNTING_SEMAPHORES                  1\r
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION        1\r
 \r
 /* Co-routine definitions. */\r
 #define configUSE_CO_ROUTINES                  0\r
index 2116fbe18606c8d159869ae851aed502a5f5dbf5..fdf1c3e43d8ba6e688474746c2956055223df4d0 100644 (file)
@@ -131,7 +131,7 @@ int main( void )
 \r
        /* The configCREATE_LOW_POWER_DEMO setting is described at the top of\r
        this file. */\r
-       #if configCREATE_LOW_POWER_DEMO == 1\r
+       #if( configCREATE_LOW_POWER_DEMO == 1 )\r
        {\r
                main_low_power();\r
        }\r
index 8c7d07d9508b3aa8b90bb413fd8181cd35f90f78..8e63501a00d0377af2984fdb2d20a72326becdda 100644 (file)
@@ -125,7 +125,7 @@ to exclude the API function. */
 #define INCLUDE_vTaskDelayUntil                                        1\r
 #define INCLUDE_vTaskDelay                                             1\r
 #define INCLUDE_eTaskGetState                                  1\r
-#define INCLUDE_xEventGroupSetBitFromISR               1\r
+#define INCLUDE_xEventGroupSetBitsFromISR              1\r
 #define INCLUDE_xTimerPendFunctionCall                 1\r
 \r
 /* This demo makes use of one or more example stats formatting functions.  These\r
index fa65262c415372041d1ac883c2f716b11b1d5ca9..28f4e6aaa5284a9823fc65333ef3e844b3b76304 100644 (file)
@@ -144,7 +144,7 @@ left at 1 with no impact on the code size. */
 #define INCLUDE_xTaskGetIdleTaskHandle                 1\r
 #define INCLUDE_xQueueGetMutexHolder                   1\r
 #define INCLUDE_eTaskGetState                                  1\r
-#define INCLUDE_xEventGroupSetBitFromISR               1\r
+#define INCLUDE_xEventGroupSetBitsFromISR              1\r
 #define INCLUDE_xTimerPendFunctionCall                 1\r
 #define INCLUDE_pcTaskGetTaskName                              1\r
 \r
index b6242e529d8e9e2f45560683b21ff3158264f3aa..27451fced36273afa3b4436f3be057d636542a16 100644 (file)
@@ -402,7 +402,7 @@ proc generate {os_handle} {
        puts $config_file "#define INCLUDE_xTaskGetIdleTaskHandle       1"\r
        puts $config_file "#define INCLUDE_xQueueGetMutexHolder         1"\r
        puts $config_file "#define INCLUDE_eTaskGetState                1"\r
-       puts $config_file "#define INCLUDE_xEventGroupSetBitFromISR     1"\r
+       puts $config_file "#define INCLUDE_xEventGroupSetBitsFromISR    1"\r
        puts $config_file "#define INCLUDE_xTimerPendFunctionCall       1"\r
        puts $config_file "#define INCLUDE_pcTaskGetTaskName            1"\r
        puts $config_file "#define INCLUDE_xTaskResumeFromISR           1"\r
index 625548c56c78b594a09f5c2899b9a328edbca57c..e8fe1a7fbb96221738af8b0b654a46a0c001c9fd 100644 (file)
@@ -87,14 +87,6 @@ header files above, but not in this file, in order to generate the correct
 privileged Vs unprivileged linkage and placement. */\r
 #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */\r
 \r
-#if ( INCLUDE_xEventGroupSetBitFromISR == 1 ) && ( configUSE_TIMERS == 0 )\r
-       #error configUSE_TIMERS must be set to 1 to make the xEventGroupSetBitFromISR() function available.\r
-#endif\r
-\r
-#if ( INCLUDE_xEventGroupSetBitFromISR == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 0 )\r
-       #error INCLUDE_xTimerPendFunctionCall must also be set to one to make the xEventGroupSetBitFromISR() function available.\r
-#endif\r
-\r
 /* The following bit fields convey control information in a task's event list\r
 item value.  It is important they don't clash with the\r
 taskEVENT_LIST_ITEM_VALUE_IN_USE definition. */\r
index 7d34ec63bb51796ff02f130e26c23ccd0f291e3d..83ab38c8549c7efb96c37978cf3120ff098d95b4 100644 (file)
@@ -247,10 +247,6 @@ extern "C" {
        #define INCLUDE_xTaskResumeFromISR 1\r
 #endif\r
 \r
-#ifndef INCLUDE_xEventGroupSetBitFromISR\r
-       #define INCLUDE_xEventGroupSetBitFromISR 0\r
-#endif\r
-\r
 #ifndef INCLUDE_xTimerPendFunctionCall\r
        #define INCLUDE_xTimerPendFunctionCall 0\r
 #endif\r
@@ -405,6 +401,10 @@ extern "C" {
        #define traceMOVED_TASK_TO_READY_STATE( pxTCB )\r
 #endif\r
 \r
+#ifndef tracePOST_MOVED_TASK_TO_READY_STATE\r
+       #define tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB )\r
+#endif\r
+\r
 #ifndef traceQUEUE_CREATE\r
        #define traceQUEUE_CREATE( pxNewQueue )\r
 #endif\r
@@ -821,7 +821,7 @@ V8 if desired. */
 \r
 /* Set configUSE_TASK_FPU_SUPPORT to 0 to omit floating point support even\r
 if floating point hardware is otherwise supported by the FreeRTOS port in use.\r
-This constant is not supported by all FreeRTOS ports that include floating \r
+This constant is not supported by all FreeRTOS ports that include floating\r
 point support. */\r
 #ifndef configUSE_TASK_FPU_SUPPORT\r
        #define configUSE_TASK_FPU_SUPPORT 1\r
index a381ed0726010521968e55fc974332b2c4156490..b2642b644266e1137cf0686a845a9592bde9ca67 100644 (file)
@@ -376,7 +376,7 @@ EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBit
                }\r
   }\r
    </pre>\r
- * \defgroup xEventGroupSetBitsFromISR xEventGroupSetBitsFromISR\r
+ * \defgroup xEventGroupClearBitsFromISR xEventGroupClearBitsFromISR\r
  * \ingroup EventGroup\r
  */\r
 #if( configUSE_TRACE_FACILITY == 1 )\r
@@ -470,7 +470,7 @@ EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_
  * Setting bits in an event group is not a deterministic operation because there\r
  * are an unknown number of tasks that may be waiting for the bit or bits being\r
  * set.  FreeRTOS does not allow nondeterministic operations to be performed in\r
- * interrupts or from critical sections.  Therefore xEventGroupSetBitFromISR()\r
+ * interrupts or from critical sections.  Therefore xEventGroupSetBitsFromISR()\r
  * sends a message to the timer task to have the set operation performed in the\r
  * context of the timer task - where a scheduler lock is used in place of a\r
  * critical section.\r
index 956264b953a110f90c92e44c09e979aa33e5f58f..92f5dafe9f435ed8486b41fa7fc9e20e6a75f9e5 100644 (file)
@@ -107,6 +107,7 @@ typedef void (*TaskFunction_t)( void * );
 itself. */\r
 #define pdFREERTOS_ERRNO_NONE                  0       /* No errors */\r
 #define        pdFREERTOS_ERRNO_ENOENT                 2       /* No such file or directory */\r
+#define        pdFREERTOS_ERRNO_EINTR                  4       /* Interrupted system call */\r
 #define        pdFREERTOS_ERRNO_EIO                    5       /* I/O error */\r
 #define        pdFREERTOS_ERRNO_ENXIO                  6       /* No such device or address */\r
 #define        pdFREERTOS_ERRNO_EBADF                  9       /* Bad file number */\r
index e8ed3c9805966ec8643d575af55b7a44de3fa09f..f4ba0921a35c335a13675f50d46a85f0f5a7ffb5 100644 (file)
@@ -118,6 +118,7 @@ typedef unsigned long UBaseType_t;
 /* Simulated interrupts return pdFALSE if no context switch should be performed,\r
 or a non-zero number if a context switch should be performed. */\r
 #define portYIELD_FROM_ISR( x ) return x\r
+#define portEND_SWITCHING_ISR( x ) portYIELD_FROM_ISR( ( x ) )\r
 \r
 void vPortCloseRunningThread( void *pvTaskToDelete, volatile BaseType_t *pxPendYield );\r
 void vPortDeleteThread( void *pvThreadToDelete );\r
index 808663ff2832989b1b7a95374d137ff7398d8aa8..4f4da9a373d81456c042ed9dea2600c68d9a4c22 100644 (file)
@@ -185,6 +185,8 @@ not necessary for to use this port.  They are defined so the common demo files
 /* portNOP() is not required by this port. */\r
 #define portNOP()\r
 \r
+#define portINLINE __inline\r
+\r
 #ifdef __cplusplus\r
 }\r
 #endif\r
index d65d2607d81c54abf68d16cf24530cbdd68d6627..9b85f30ddb476c2accd48e9887c17b2e84f7e411 100644 (file)
@@ -198,6 +198,8 @@ not necessary for to use this port.  They are defined so the common demo files
 /* portNOP() is not required by this port. */\r
 #define portNOP()\r
 \r
+#define portINLINE __inline\r
+\r
 #ifndef portFORCE_INLINE\r
        #define portFORCE_INLINE __forceinline\r
 #endif\r
index f98fb037eee1b3ad37a78c3e06381a65a5a6e139..0c5ccb97cdc6884c7f61f191fafeeda68f0e6aef 100644 (file)
@@ -202,6 +202,8 @@ not necessary for to use this port.  They are defined so the common demo files
        #define portFORCE_INLINE __forceinline\r
 #endif\r
 \r
+#define portINLINE __inline\r
+\r
 /*-----------------------------------------------------------*/\r
 \r
 static portFORCE_INLINE void vPortSetBASEPRI( uint32_t ulBASEPRI )\r
index a20d687e07292ac56494e22ed8e1dae389448349..a259d267b3cb9ff597936b51ea517cfc898c573f 100644 (file)
@@ -1,19 +1,19 @@
 Each real time kernel port consists of three files that contain the core kernel\r
-components and are common to every port, and one or more files that are \r
+components and are common to every port, and one or more files that are\r
 specific to a particular microcontroller and/or compiler.\r
 \r
 \r
-+ The FreeRTOS/Source/Portable/MemMang directory contains the three sample \r
++ The FreeRTOS/Source/Portable/MemMang directory contains the three sample\r
 memory allocators as described on the http://www.FreeRTOS.org WEB site.\r
 \r
-+ The other directories each contain files specific to a particular \r
++ The other directories each contain files specific to a particular\r
 microcontroller or compiler.\r
 \r
 \r
 \r
-For example, if you are interested in the GCC port for the ATMega323 \r
-microcontroller then the port specific files are contained in\r
-FreeRTOS/Source/Portable/GCC/ATMega323 directory.  If this is the only\r
-port you are interested in then all the other directories can be\r
+For example, if you are interested in the [compiler] port for the [architecture]\r
+microcontroller, then the port specific files are contained in\r
+FreeRTOS/Source/Portable/[compiler]/[architecture] directory.  If this is the\r
+only port you are interested in then all the other directories can be\r
 ignored.\r
 \r
index 11ca0e976b9a5c5d697802e271a5cbe460c04194..d4e5ad050c7e5f47b6c00a9649c144fe267b6f37 100644 (file)
@@ -341,7 +341,7 @@ PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended    = ( UBaseType_t
        {                                                                                                                                                                                               \\r
        UBaseType_t uxTopPriority;                                                                                                                                              \\r
                                                                                                                                                                                                        \\r
-               /* Find the highest priority queue that contains ready tasks. */                                                        \\r
+               /* Find the highest priority list that contains ready tasks. */                                                         \\r
                portGET_HIGHEST_PRIORITY( uxTopPriority, uxTopReadyPriority );                                                          \\r
                configASSERT( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ uxTopPriority ] ) ) > 0 );         \\r
                listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopPriority ] ) );           \\r
@@ -389,7 +389,8 @@ count overflows. */
 #define prvAddTaskToReadyList( pxTCB )                                                                                                                         \\r
        traceMOVED_TASK_TO_READY_STATE( pxTCB );                                                                                                                \\r
        taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority );                                                                                             \\r
-       vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) )\r
+       vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) ); \\r
+       tracePOST_MOVED_TASK_TO_READY_STATE( pxTCB )\r
 /*-----------------------------------------------------------*/\r
 \r
 /*\r
@@ -1645,6 +1646,34 @@ void vTaskSuspendAll( void )
        static TickType_t prvGetExpectedIdleTime( void )\r
        {\r
        TickType_t xReturn;\r
+       UBaseType_t uxHigherPriorityReadyTasks = pdFALSE;\r
+\r
+               /* uxHigherPriorityReadyTasks takes care of the case where\r
+               configUSE_PREEMPTION is 0, so there may be tasks above the idle priority\r
+               task that are in the Ready state, even though the idle task is\r
+               running. */\r
+               #if( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 )\r
+               {\r
+                       if( uxTopReadyPriority > tskIDLE_PRIORITY )\r
+                       {\r
+                               uxHigherPriorityReadyTasks = pdTRUE;\r
+                       }\r
+               }\r
+               #else\r
+               {\r
+                       const UBaseType_t uxLeastSignificantBit = ( UBaseType_t ) 0x01;\r
+\r
+                       /* When port optimised task selection is used the uxTopReadyPriority\r
+                       variable is used as a bit map.  If bits other than the least\r
+                       significant bit are set then there are tasks that have a priority\r
+                       above the idle priority that are in the Ready state.  This takes\r
+                       care of the case where the co-operative scheduler is in use. */\r
+                       if( uxTopReadyPriority > uxLeastSignificantBit )\r
+                       {\r
+                               uxHigherPriorityReadyTasks = pdTRUE;\r
+                       }\r
+               }\r
+               #endif\r
 \r
                if( pxCurrentTCB->uxPriority > tskIDLE_PRIORITY )\r
                {\r
@@ -1657,6 +1686,13 @@ void vTaskSuspendAll( void )
                        processed. */\r
                        xReturn = 0;\r
                }\r
+               else if( uxHigherPriorityReadyTasks != pdFALSE )\r
+               {\r
+                       /* There are tasks in the Ready state that have a priority above the\r
+                       idle priority.  This path can only be reached if\r
+                       configUSE_PREEMPTION is 0. */\r
+                       xReturn = 0;\r
+               }\r
                else\r
                {\r
                        xReturn = xNextTaskUnblockTime - xTickCount;\r
@@ -2222,9 +2258,9 @@ void vTaskSwitchContext( void )
                                #endif\r
 \r
                                /* Add the amount of time the task has been running to the\r
-                               accumulated     time so far.  The time the task started running was\r
+                               accumulated time so far.  The time the task started running was\r
                                stored in ulTaskSwitchedInTime.  Note that there is no overflow\r
-                               protection here so count values are only valid until the timer\r
+                               protection here so count values are only valid until the timer\r
                                overflows.  The guard against negative values is to protect\r
                                against suspect run time stat counter implementations - which\r
                                are provided by the application, not the kernel. */\r
@@ -3148,7 +3184,10 @@ TCB_t *pxNewTCB;
                        {\r
                                /* The stack cannot be used as the TCB was not created.  Free it\r
                                again. */\r
-                               vPortFree( pxStack );\r
+                               if( puxStackBuffer == NULL )\r
+                               {\r
+                                       vPortFree( pxStack );\r
+                               }\r
                        }\r
                }\r
                else\r