]> git.sur5r.net Git - freertos/commitdiff
Demo code only:
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 2 Sep 2014 16:06:57 +0000 (16:06 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 2 Sep 2014 16:06:57 +0000 (16:06 +0000)
Add the IntQ standard test to the SAM4S project.

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

FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/CreateProjectDirectoryStructure.bat
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsln
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.cproj
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/IntQueueTimer.c [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/IntQueueTimer.h [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/tc/tc.c [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/tc/tc.h [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c

index eec5266132bf49864365b5387c97176cbc1533e5..26df7ce1dfa297197652f6d69e1c534b22903b15 100644 (file)
@@ -47,6 +47,7 @@ IF EXIST src\asf\thirdparty\FreeRTOS Goto END
     copy %COMMON_SOURCE%\countsem.c        src\Common-Demo-Source\r
     copy %COMMON_SOURCE%\integer.c         src\Common-Demo-Source\r
     copy %COMMON_SOURCE%\QueueSet.c        src\Common-Demo-Source\r
+    COPY %COMMON_SOURCE%\IntQueue.c        src\Common-Demo-Source\r
 \r
     REM Copy the common demo file headers.\r
     copy %COMMON_INCLUDE%\*.h              src\Common-Demo-Source\include\r
index cbafd976ac22e2ea0c49f357033d722a02649e16..d6af61e522618f168667d16705bda0dd8319843e 100644 (file)
@@ -6,10 +6,13 @@ EndProject
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                Debug|ARM = Debug|ARM\r
+               Release|ARM = Release|ARM\r
        EndGlobalSection\r
        GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
                {3D8959CD-73CA-4147-9C1B-CFCF2EE40326}.Debug|ARM.ActiveCfg = Debug|ARM\r
                {3D8959CD-73CA-4147-9C1B-CFCF2EE40326}.Debug|ARM.Build.0 = Debug|ARM\r
+               {3D8959CD-73CA-4147-9C1B-CFCF2EE40326}.Release|ARM.ActiveCfg = Release|ARM\r
+               {3D8959CD-73CA-4147-9C1B-CFCF2EE40326}.Release|ARM.Build.0 = Release|ARM\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
index 9e0627d8022f81611163c87eb35e3c8874d672c8..f2ad135f456c55a7dc55cee8c782c2c8d9e4734a 100644 (file)
Binary files a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo and b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo differ
index 7a918c37eb2ff88800ee59f0a301946bc7f5a05b..d97e4ff1635567d3df3242bf222f85e5081a2f2c 100644 (file)
@@ -2,7 +2,7 @@
 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">\r
   <PropertyGroup>\r
     <SchemaVersion>2.0</SchemaVersion>\r
-    <ProjectVersion>6.0</ProjectVersion>\r
+    <ProjectVersion>6.2</ProjectVersion>\r
     <ProjectGuid>{3d8959cd-73ca-4147-9c1b-cfcf2ee40326}</ProjectGuid>\r
     <Name>$(MSBuildProjectName)</Name>\r
     <AssemblyName>$(MSBuildProjectName)</AssemblyName>\r
     <AsfVersion>2.11.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.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />\r
-          <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />\r
-          <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />\r
-        </options>\r
-        <configurations />\r
-        <files>\r
-          <file path="src/asf.h" framework="" version="3.1.3" source="./common/applications/user_application/sam4s16c_sam4s_ek/as5_arm_template/asf.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/main.c" framework="" version="3.1.3" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/config/conf_board.h" framework="" version="3.1.3" source="common/applications/user_application/sam4s16c_sam4s_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/boards/board.h" framework="" version="3.1.3" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/gpio/gpio.h" framework="" version="3.1.3" source="common/services/gpio/gpio.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/gpio/sam_ioport/sam_gpio.h" framework="" version="3.1.3" source="common/services/gpio/sam_ioport/sam_gpio.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/utils/interrupt.h" framework="" version="3.1.3" 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.1.3" 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.1.3" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/boards/sam4s_ek/init.c" framework="" version="3.1.3" source="sam/boards/sam4s_ek/init.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/boards/sam4s_ek/sam4s_ek.h" framework="" version="3.1.3" source="sam/boards/sam4s_ek/sam4s_ek.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pio/pio.c" framework="" version="3.1.3" source="sam/drivers/pio/pio.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pio/pio.h" framework="" version="3.1.3" source="sam/drivers/pio/pio.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pio/pio_handler.c" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pio/pio_handler.h" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_acc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_chipid.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_crccu.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_dacc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_efc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_gpbr.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_hsmci.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_matrix.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pdc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pio.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pmc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pwm.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rstc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtt.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_smc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_spi.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_ssc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_supc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_twi.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_uart.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_udp.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_usart.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_acc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_efc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_piob.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_smc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_spi.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_supc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_udp.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s16c.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/compiler.h" framework="" version="3.1.3" 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.1.3" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" framework="" version="3.1.3" source="sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.1.3" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/parts.h" framework="" version="3.1.3" source="sam/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/sam4s/sysclk.c" framework="" version="" source="common\services\clock\sam4s\sysclk.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/sam4s/pll.h" framework="" version="" source="common\services\clock\sam4s\pll.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/sam4s/osc.h" framework="" version="" source="common\services\clock\sam4s\osc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/sam4s/sysclk.h" framework="" version="" source="common\services\clock\sam4s\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/sam4s/genclk.h" framework="" version="" source="common\services\clock\sam4s\genclk.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/config/conf_clock.h" framework="" version="" source="common\services\clock\sam4s\module_config\conf_clock.h" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />\r
-          <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />\r
-        </files>\r
-        <documentation help="http://asf.atmel.com/docs/3.1.3/common.applications.user_application.sam4s_ek/html/index.html" />\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.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />\r
+    <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />\r
+    <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />\r
+    <option id="sam.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />\r
+  </options>\r
+  <configurations>\r
+    <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />\r
+  </configurations>\r
+  <files>\r
+    <file path="src/asf.h" framework="" version="3.1.3" source="./common/applications/user_application/sam4s16c_sam4s_ek/as5_arm_template/asf.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/main.c" framework="" version="3.1.3" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/config/conf_board.h" framework="" version="3.1.3" source="common/applications/user_application/sam4s16c_sam4s_ek/conf_board.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/boards/board.h" framework="" version="3.1.3" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/gpio/gpio.h" framework="" version="3.1.3" source="common/services/gpio/gpio.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/gpio/sam_ioport/sam_gpio.h" framework="" version="3.1.3" source="common/services/gpio/sam_ioport/sam_gpio.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/utils/interrupt.h" framework="" version="3.1.3" 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.1.3" 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.1.3" source="common/utils/interrupt/interrupt_sam_nvic.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/boards/sam4s_ek/init.c" framework="" version="3.1.3" source="sam/boards/sam4s_ek/init.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/boards/sam4s_ek/sam4s_ek.h" framework="" version="3.1.3" source="sam/boards/sam4s_ek/sam4s_ek.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pio/pio.c" framework="" version="3.1.3" source="sam/drivers/pio/pio.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pio/pio.h" framework="" version="3.1.3" source="sam/drivers/pio/pio.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pio/pio_handler.c" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pio/pio_handler.h" framework="" version="3.1.3" source="sam/drivers/pio/pio_handler.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_acc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_adc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_chipid.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_crccu.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_dacc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_efc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_gpbr.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_hsmci.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_matrix.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pdc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pdc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pio.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pio.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pmc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_pwm.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rstc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_rtt.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_smc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_spi.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_ssc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_supc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_tc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_tc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_twi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_twi.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_uart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_uart.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_udp.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_usart.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_usart.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/component/component_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/component/component_wdt.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_acc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_acc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_adc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_adc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_chipid.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_crccu.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_dacc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_efc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_efc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_gpbr.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_hsmci.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_matrix.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioa.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_piob.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_piob.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pioc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pmc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_pwm.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rstc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_rtt.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_smc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_smc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_spi.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_spi.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_ssc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_supc.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_supc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc0.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_tc1.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi0.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_twi1.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart0.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_uart1.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_udp.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_udp.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart0.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_usart1.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/instance/instance_wdt.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/pio/pio_sam4s16c.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/include/sam4s16c.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/include/sam4s16c.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/exceptions.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/exceptions.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/gcc/startup_sam4s.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" framework="" version="3.1.3" source="sam/utils/cmsis/sam4s/source/templates/system_sam4s.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/compiler.h" framework="" version="3.1.3" 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.1.3" source="sam/utils/header_files/io.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" framework="" version="3.1.3" source="sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/make/Makefile.in" framework="" version="3.1.3" source="sam/utils/make/Makefile.in" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/parts.h" framework="" version="3.1.3" source="sam/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/utils/preprocessor/mrepeat.h" framework="" version="3.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" source="sam/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/thirdparty/CMSIS/CMSIS END USER LICENCE AGREEMENT.pdf" framework="" version="3.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" 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.1.3" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/sam4s/sysclk.c" framework="" version="" source="common\services\clock\sam4s\sysclk.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/sam4s/pll.h" framework="" version="" source="common\services\clock\sam4s\pll.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/sam4s/osc.h" framework="" version="" source="common\services\clock\sam4s\osc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/sam4s/sysclk.h" framework="" version="" source="common\services\clock\sam4s\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/sam4s/genclk.h" framework="" version="" source="common\services\clock\sam4s\genclk.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/config/conf_clock.h" framework="" version="" source="common\services\clock\sam4s\module_config\conf_clock.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/ASF/sam/drivers/tc/tc.c" framework="" version="3.6.0" source="sam\drivers\tc\tc.c" changed="False" content-id="Atmel.ASF" />\r
+    <file path="src/ASF/sam/drivers/tc/tc.h" framework="" version="3.6.0" source="sam\drivers\tc\tc.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
     </AsfFrameworkConfig>\r
     <avrdevice>ATSAM4S16C</avrdevice>\r
     <avrdeviceseries>sam4s</avrdeviceseries>\r
     <Language>C</Language>\r
-    <ToolchainName>com.Atmel.ARMGCC</ToolchainName>\r
+    <ToolchainName>com.Atmel.ARMGCC.C</ToolchainName>\r
     <ArmGccProjectExtensions />\r
     <OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>\r
     <OutputFileName>$(MSBuildProjectName)</OutputFileName>\r
     <ToolchainFlavour>Native</ToolchainFlavour>\r
     <KeepTimersRunning>true</KeepTimersRunning>\r
     <OverrideVtor>false</OverrideVtor>\r
-    <OverrideVtorValue />\r
+    <OverrideVtorValue>exception_table</OverrideVtorValue>\r
     <eraseonlaunchrule>1</eraseonlaunchrule>\r
     <avrtoolinterface>JTAG</avrtoolinterface>\r
     <avrtool>com.atmel.avrdbg.tool.samice</avrtool>\r
     <com_atmel_avrdbg_tool_samice>\r
       <ToolType>com.atmel.avrdbg.tool.samice</ToolType>\r
       <ToolName>J-Link</ToolName>\r
-      <ToolNumber>000158008149</ToolNumber>\r
-      <KeepTimersRunning>true</KeepTimersRunning>\r
-      <OverrideVtor>false</OverrideVtor>\r
-      <OverrideVtorValue>\r
-      </OverrideVtorValue>\r
+      <ToolNumber>158002654</ToolNumber>\r
       <Channel>\r
         <host>127.0.0.1</host>\r
         <port>1637</port>\r
       <ToolOptions>\r
         <InterfaceName>JTAG</InterfaceName>\r
         <InterfaceProperties>\r
-          <JtagDbgClock>4000000</JtagDbgClock>\r
+          <JtagDbgClock>0</JtagDbgClock>\r
           <JtagProgClock>1000000</JtagProgClock>\r
           <IspClock>150000</IspClock>\r
           <JtagInChain>false</JtagInChain>\r
-          <JtagEnableExtResetOnStartSession>false</JtagEnableExtResetOnStartSession>\r
+          <JtagEnableExtResetOnStartSession>true</JtagEnableExtResetOnStartSession>\r
           <JtagDevicesBefore>0</JtagDevicesBefore>\r
           <JtagDevicesAfter>0</JtagDevicesAfter>\r
           <JtagInstrBitsBefore>0</JtagInstrBitsBefore>\r
           <JtagInstrBitsAfter>0</JtagInstrBitsAfter>\r
+          <JtagSelectedDeviceIndexInChain>\r
+          </JtagSelectedDeviceIndexInChain>\r
+          <JtagDaisyChainDevices>\r
+          </JtagDaisyChainDevices>\r
         </InterfaceProperties>\r
       </ToolOptions>\r
     </com_atmel_avrdbg_tool_samice>\r
+    <CacheFlash>true</CacheFlash>\r
+    <ProgFlashFromRam>true</ProgFlashFromRam>\r
+    <RamSnippetAddress>0x20000000</RamSnippetAddress>\r
+    <UncachedRange />\r
+    <BootSegment>2</BootSegment>\r
   </PropertyGroup>\r
   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">\r
-    <ToolchainSettings>\r
-      <ArmGcc>\r
-        <armgcc.common.general.symbols>__SAM4S16C__</armgcc.common.general.symbols>\r
-        <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
-        <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
-        <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
-        <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
-        <armgcc.compiler.symbols.DefSymbols>\r
-          <ListValues>\r
-            <Value>ARM_MATH_CM4=true</Value>\r
-            <Value>BOARD=SAM4S_EK</Value>\r
-            <Value>__SAM4S16C__</Value>\r
-          </ListValues>\r
-        </armgcc.compiler.symbols.DefSymbols>\r
-        <armgcc.compiler.directories.IncludePaths>\r
-          <ListValues>\r
-            <Value>../src</Value>\r
-            <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
-            <Value>../src/asf/common/boards</Value>\r
-            <Value>../src/asf/common/services/gpio</Value>\r
-            <Value>../src/asf/common/utils</Value>\r
-            <Value>../src/asf/sam/boards</Value>\r
-            <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
-            <Value>../src/asf/sam/drivers/pio</Value>\r
-            <Value>../src/asf/sam/utils</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
-            <Value>../src/asf/sam/utils/header_files</Value>\r
-            <Value>../src/asf/sam/utils/preprocessor</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-            <Value>../src/config</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam4s\include</Value>\r
-            <Value>../src/asf/sam/drivers/pmc</Value>\r
-            <Value>../src/asf/common/services/clock</Value>\r
-            <Value>../src/asf/sam/drivers/usart</Value>\r
-          </ListValues>\r
-        </armgcc.compiler.directories.IncludePaths>\r
-        <armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>\r
-        <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\r
-        <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
-        <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
-        <armgcc.compiler.miscellaneous.OtherFlags>-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return  -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>\r
-        <armgcc.linker.general.DoNotUseStandardStartFiles />\r
-        <armgcc.linker.general.DoNotUseDefaultLibraries />\r
-        <armgcc.linker.general.NoStartupOrDefaultLibs />\r
-        <armgcc.linker.libraries.Libraries>\r
-          <ListValues>\r
-            <Value>arm_cortexM4l_math</Value>\r
-          </ListValues>\r
-        </armgcc.linker.libraries.Libraries>\r
-        <armgcc.linker.libraries.LibrarySearchPaths>\r
-          <ListValues>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-          </ListValues>\r
-        </armgcc.linker.libraries.LibrarySearchPaths>\r
-        <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
-        <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>\r
-        <armgcc.assembler.general.IncludePaths>\r
-          <ListValues>\r
-            <Value>../src</Value>\r
-            <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
-            <Value>../src/asf/common/boards</Value>\r
-            <Value>../src/asf/common/services/gpio</Value>\r
-            <Value>../src/asf/common/utils</Value>\r
-            <Value>../src/asf/sam/boards</Value>\r
-            <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
-            <Value>../src/asf/sam/drivers/pio</Value>\r
-            <Value>../src/asf/sam/utils</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
-            <Value>../src/asf/sam/utils/header_files</Value>\r
-            <Value>../src/asf/sam/utils/preprocessor</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-            <Value>../src/config</Value>\r
-            <Value>../src/asf/sam/drivers/pmc</Value>\r
-            <Value>../src/asf/common/services/clock</Value>\r
-            <Value>../src/asf/sam/drivers/usart</Value>\r
-          </ListValues>\r
-        </armgcc.assembler.general.IncludePaths>\r
-        <armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM4=true -DBOARD=SAM4S_EK -D__SAM4S16C__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
-        <armgcc.preprocessingassembler.general.IncludePaths>\r
-          <ListValues>\r
-            <Value>../src</Value>\r
-            <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
-            <Value>../src/asf/common/boards</Value>\r
-            <Value>../src/asf/common/services/gpio</Value>\r
-            <Value>../src/asf/common/utils</Value>\r
-            <Value>../src/asf/sam/boards</Value>\r
-            <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
-            <Value>../src/asf/sam/drivers/pio</Value>\r
-            <Value>../src/asf/sam/utils</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
-            <Value>../src/asf/sam/utils/header_files</Value>\r
-            <Value>../src/asf/sam/utils/preprocessor</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-            <Value>../src/config</Value>\r
-            <Value>../src/asf/sam/drivers/pmc</Value>\r
-            <Value>../src/asf/common/services/clock</Value>\r
-            <Value>../src/asf/sam/drivers/usart</Value>\r
-          </ListValues>\r
-        </armgcc.preprocessingassembler.general.IncludePaths>\r
-      </ArmGcc>\r
-    </ToolchainSettings>\r
     <GenerateHexFile>True</GenerateHexFile>\r
     <GenerateMapFile>True</GenerateMapFile>\r
     <GenerateListFile>True</GenerateListFile>\r
     <GenerateEepFile>True</GenerateEepFile>\r
-  </PropertyGroup>\r
-  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">\r
     <ToolchainSettings>\r
       <ArmGcc>\r
-        <armgcc.common.general.symbols>__SAM4S16C__</armgcc.common.general.symbols>\r
-        <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
-        <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
-        <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
-        <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
-        <armgcc.compiler.symbols.DefSymbols>\r
-          <ListValues>\r
-            <Value>ARM_MATH_CM4=true</Value>\r
-            <Value>BOARD=SAM4S_EK</Value>\r
-            <Value>__SAM4S16C__</Value>\r
-            <Value>XMEGA=0</Value>\r
-            <Value>MEGA=0</Value>\r
-            <Value>UC3=0</Value>\r
-          </ListValues>\r
-        </armgcc.compiler.symbols.DefSymbols>\r
-        <armgcc.compiler.directories.IncludePaths>\r
-          <ListValues>\r
-            <Value>../src</Value>\r
-            <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
-            <Value>../src/asf/common/boards</Value>\r
-            <Value>../src/asf/common/services/gpio</Value>\r
-            <Value>../src/asf/common/utils</Value>\r
-            <Value>../src/asf/sam/boards</Value>\r
-            <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
-            <Value>../src/asf/sam/drivers/pio</Value>\r
-            <Value>../src/asf/sam/utils</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
-            <Value>../src/asf/sam/utils/header_files</Value>\r
-            <Value>../src/asf/sam/utils/preprocessor</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-            <Value>../src/config</Value>\r
-            <Value>../src/asf/thirdparty/FreeRTOS/include</Value>\r
-            <Value>../src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3</Value>\r
-            <Value>../src/Common-Demo-Source/include</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
-            <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam4s\include</Value>\r
-            <Value>../src/asf/sam/drivers/pmc</Value>\r
-            <Value>../src/asf/common/services/clock</Value>\r
-            <Value>../src/asf/sam/drivers/usart</Value>\r
-          </ListValues>\r
-        </armgcc.compiler.directories.IncludePaths>\r
-        <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\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>-pipe -Wall -Wextra -std=gnu99 -ffunction-sections -fdata-sections --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>\r
-        <armgcc.linker.libraries.LibrarySearchPaths>\r
-          <ListValues>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-          </ListValues>\r
-        </armgcc.linker.libraries.LibrarySearchPaths>\r
-        <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
-        <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>\r
-        <armgcc.assembler.general.IncludePaths>\r
-          <ListValues>\r
-            <Value>../src</Value>\r
-            <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
-            <Value>../src/asf/common/boards</Value>\r
-            <Value>../src/asf/common/services/gpio</Value>\r
-            <Value>../src/asf/common/utils</Value>\r
-            <Value>../src/asf/sam/boards</Value>\r
-            <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
-            <Value>../src/asf/sam/drivers/pio</Value>\r
-            <Value>../src/asf/sam/utils</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
-            <Value>../src/asf/sam/utils/header_files</Value>\r
-            <Value>../src/asf/sam/utils/preprocessor</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-            <Value>../src/config</Value>\r
-            <Value>../src/asf/sam/drivers/pmc</Value>\r
-            <Value>../src/asf/common/services/clock</Value>\r
-            <Value>../src/asf/sam/drivers/usart</Value>\r
-          </ListValues>\r
-        </armgcc.assembler.general.IncludePaths>\r
-        <armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM4=true -DBOARD=SAM4S_EK -D__SAM4S16C__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
-        <armgcc.preprocessingassembler.general.IncludePaths>\r
-          <ListValues>\r
-            <Value>../src</Value>\r
-            <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
-            <Value>../src/asf/common/boards</Value>\r
-            <Value>../src/asf/common/services/gpio</Value>\r
-            <Value>../src/asf/common/utils</Value>\r
-            <Value>../src/asf/sam/boards</Value>\r
-            <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
-            <Value>../src/asf/sam/drivers/pio</Value>\r
-            <Value>../src/asf/sam/utils</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
-            <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
-            <Value>../src/asf/sam/utils/header_files</Value>\r
-            <Value>../src/asf/sam/utils/preprocessor</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
-            <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
-            <Value>../src/config</Value>\r
-            <Value>../src/asf/sam/drivers/pmc</Value>\r
-            <Value>../src/asf/common/services/clock</Value>\r
-            <Value>../src/asf/sam/drivers/usart</Value>\r
-          </ListValues>\r
-        </armgcc.preprocessingassembler.general.IncludePaths>\r
-      </ArmGcc>\r
+  <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
+  <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
+  <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
+  <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
+  <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>\r
+  <armgcc.compiler.symbols.DefSymbols>\r
+    <ListValues>\r
+      <Value>ARM_MATH_CM4=true</Value>\r
+      <Value>BOARD=SAM4S_EK</Value>\r
+      <Value>__SAM4S16C__</Value>\r
+    </ListValues>\r
+  </armgcc.compiler.symbols.DefSymbols>\r
+  <armgcc.compiler.directories.IncludePaths>\r
+    <ListValues>\r
+      <Value>../src</Value>\r
+      <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
+      <Value>../src/asf/common/boards</Value>\r
+      <Value>../src/asf/common/services/gpio</Value>\r
+      <Value>../src/asf/common/utils</Value>\r
+      <Value>../src/asf/sam/boards</Value>\r
+      <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
+      <Value>../src/asf/sam/drivers/pio</Value>\r
+      <Value>../src/asf/sam/utils</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
+      <Value>../src/asf/sam/utils/header_files</Value>\r
+      <Value>../src/asf/sam/utils/preprocessor</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
+      <Value>../src/config</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam4s\include</Value>\r
+      <Value>../src/asf/sam/drivers/pmc</Value>\r
+      <Value>../src/asf/common/services/clock</Value>\r
+      <Value>../src/asf/sam/drivers/usart</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL\sam4s\include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\CMSIS\Include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL</Value>\r
+      <Value>../src/ASF/sam/drivers/tc</Value>\r
+    </ListValues>\r
+  </armgcc.compiler.directories.IncludePaths>\r
+  <armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>\r
+  <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\r
+  <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
+  <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
+  <armgcc.compiler.miscellaneous.OtherFlags>-pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration -Wpointer-arith -std=gnu99 -ffunction-sections -fdata-sections -Wchar-subscripts -Wcomment -Wformat=2 -Wimplicit-int -Wmain -Wparentheses -Wsequence-point -Wreturn-type -Wswitch -Wtrigraphs -Wunused -Wuninitialized -Wunknown-pragmas -Wfloat-equal -Wundef -Wshadow -Wbad-function-cast -Wwrite-strings -Wsign-compare -Waggregate-return  -Wmissing-declarations -Wformat -Wmissing-format-attribute -Wno-deprecated-declarations -Wpacked -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wunreachable-code -Wcast-align --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>\r
+  <armgcc.linker.general.DoNotUseStandardStartFiles />\r
+  <armgcc.linker.general.DoNotUseDefaultLibraries />\r
+  <armgcc.linker.general.NoStartupOrDefaultLibs />\r
+  <armgcc.linker.libraries.Libraries>\r
+    <ListValues>\r
+      <Value>arm_cortexM4l_math</Value>\r
+    </ListValues>\r
+  </armgcc.linker.libraries.Libraries>\r
+  <armgcc.linker.libraries.LibrarySearchPaths>\r
+    <ListValues>\r
+      <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
+    </ListValues>\r
+  </armgcc.linker.libraries.LibrarySearchPaths>\r
+  <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
+  <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>\r
+  <armgcc.assembler.general.IncludePaths>\r
+    <ListValues>\r
+      <Value>../src/ASF/sam/drivers/tc</Value>\r
+    </ListValues>\r
+  </armgcc.assembler.general.IncludePaths>\r
+  <armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM4=true -DBOARD=SAM4S_EK -D__SAM4S16C__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
+  <armgcc.preprocessingassembler.general.IncludePaths>\r
+    <ListValues>\r
+      <Value>../src</Value>\r
+      <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
+      <Value>../src/asf/common/boards</Value>\r
+      <Value>../src/asf/common/services/gpio</Value>\r
+      <Value>../src/asf/common/utils</Value>\r
+      <Value>../src/asf/sam/boards</Value>\r
+      <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
+      <Value>../src/asf/sam/drivers/pio</Value>\r
+      <Value>../src/asf/sam/utils</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
+      <Value>../src/asf/sam/utils/header_files</Value>\r
+      <Value>../src/asf/sam/utils/preprocessor</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
+      <Value>../src/config</Value>\r
+      <Value>../src/asf/sam/drivers/pmc</Value>\r
+      <Value>../src/asf/common/services/clock</Value>\r
+      <Value>../src/asf/sam/drivers/usart</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL\sam4s\include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\CMSIS\Include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL</Value>\r
+      <Value>../src/ASF/sam/drivers/tc</Value>\r
+    </ListValues>\r
+  </armgcc.preprocessingassembler.general.IncludePaths>\r
+</ArmGcc>\r
     </ToolchainSettings>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">\r
     <GenerateHexFile>True</GenerateHexFile>\r
     <GenerateMapFile>True</GenerateMapFile>\r
     <GenerateListFile>True</GenerateListFile>\r
     <GenerateEepFile>True</GenerateEepFile>\r
+    <ToolchainSettings>\r
+      <ArmGcc>\r
+  <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
+  <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
+  <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
+  <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
+  <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>\r
+  <armgcc.compiler.symbols.DefSymbols>\r
+    <ListValues>\r
+      <Value>ARM_MATH_CM4=true</Value>\r
+      <Value>BOARD=SAM4S_EK</Value>\r
+      <Value>__SAM4S16C__</Value>\r
+      <Value>XMEGA=0</Value>\r
+      <Value>MEGA=0</Value>\r
+      <Value>UC3=0</Value>\r
+    </ListValues>\r
+  </armgcc.compiler.symbols.DefSymbols>\r
+  <armgcc.compiler.directories.IncludePaths>\r
+    <ListValues>\r
+      <Value>../src</Value>\r
+      <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
+      <Value>../src/asf/common/boards</Value>\r
+      <Value>../src/asf/common/services/gpio</Value>\r
+      <Value>../src/asf/common/utils</Value>\r
+      <Value>../src/asf/sam/boards</Value>\r
+      <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
+      <Value>../src/asf/sam/drivers/pio</Value>\r
+      <Value>../src/asf/sam/utils</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
+      <Value>../src/asf/sam/utils/header_files</Value>\r
+      <Value>../src/asf/sam/utils/preprocessor</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
+      <Value>../src/config</Value>\r
+      <Value>../src/asf/thirdparty/FreeRTOS/include</Value>\r
+      <Value>../src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3</Value>\r
+      <Value>../src/Common-Demo-Source/include</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
+      <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam4s\include</Value>\r
+      <Value>../src/asf/sam/drivers/pmc</Value>\r
+      <Value>../src/asf/common/services/clock</Value>\r
+      <Value>../src/asf/sam/drivers/usart</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL\sam4s\include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\CMSIS\Include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL</Value>\r
+      <Value>../src/ASF/sam/drivers/tc</Value>\r
+    </ListValues>\r
+  </armgcc.compiler.directories.IncludePaths>\r
+  <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\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>-pipe -Wall -Wextra -std=gnu99 -ffunction-sections -fdata-sections --param max-inline-insns-single=500 -Dprintf=iprintf</armgcc.compiler.miscellaneous.OtherFlags>\r
+  <armgcc.linker.libraries.LibrarySearchPaths>\r
+    <ListValues>\r
+      <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
+    </ListValues>\r
+  </armgcc.linker.libraries.LibrarySearchPaths>\r
+  <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
+  <armgcc.linker.miscellaneous.LinkerFlags>-T../src/asf/sam/utils/linker_scripts/sam4s/sam4s16/gcc/flash.ld -Wl,--cref -Wl,--entry=Reset_Handler -mthumb</armgcc.linker.miscellaneous.LinkerFlags>\r
+  <armgcc.assembler.general.IncludePaths>\r
+    <ListValues>\r
+      <Value>../src/ASF/sam/drivers/tc</Value>\r
+    </ListValues>\r
+  </armgcc.assembler.general.IncludePaths>\r
+  <armgcc.preprocessingassembler.general.AssemblerFlags>-DARM_MATH_CM4=true -DBOARD=SAM4S_EK -D__SAM4S16C__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
+  <armgcc.preprocessingassembler.general.IncludePaths>\r
+    <ListValues>\r
+      <Value>../src</Value>\r
+      <Value>../src/asf/common/applications/user_application/sam4s16c_sam4s_ek</Value>\r
+      <Value>../src/asf/common/boards</Value>\r
+      <Value>../src/asf/common/services/gpio</Value>\r
+      <Value>../src/asf/common/utils</Value>\r
+      <Value>../src/asf/sam/boards</Value>\r
+      <Value>../src/asf/sam/boards/sam4s_ek</Value>\r
+      <Value>../src/asf/sam/drivers/pio</Value>\r
+      <Value>../src/asf/sam/utils</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/include</Value>\r
+      <Value>../src/asf/sam/utils/cmsis/sam4s/source/templates</Value>\r
+      <Value>../src/asf/sam/utils/header_files</Value>\r
+      <Value>../src/asf/sam/utils/preprocessor</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+      <Value>../src/asf/thirdparty/CMSIS/Lib/GCC</Value>\r
+      <Value>../src/config</Value>\r
+      <Value>../src/asf/sam/drivers/pmc</Value>\r
+      <Value>../src/asf/common/services/clock</Value>\r
+      <Value>../src/asf/sam/drivers/usart</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL\sam4s\include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\CMSIS\Include</Value>\r
+      <Value>%24(ToolchainDir)\..\..\CMSIS_Atmel\Device\ATMEL</Value>\r
+      <Value>../src/ASF/sam/drivers/tc</Value>\r
+    </ListValues>\r
+  </armgcc.preprocessingassembler.general.IncludePaths>\r
+</ArmGcc>\r
+    </ToolchainSettings>\r
   </PropertyGroup>\r
   <ItemGroup>\r
+    <Compile Include="src\asf\sam\drivers\tc\tc.c">\r
+      <SubType>compile</SubType>\r
+    </Compile>\r
+    <None Include="src\asf\sam\drivers\tc\tc.h">\r
+      <SubType>compile</SubType>\r
+    </None>\r
     <Compile Include="src\asf\sam\drivers\usart\usart.c">\r
       <SubType>compile</SubType>\r
     </Compile>\r
     <Compile Include="src\Common-Demo-Source\include\demo_serial.h">\r
       <SubType>compile</SubType>\r
     </Compile>\r
+    <Compile Include="src\Common-Demo-Source\IntQueue.c">\r
+      <SubType>compile</SubType>\r
+    </Compile>\r
     <Compile Include="src\Common-Demo-Source\QueueSet.c">\r
       <SubType>compile</SubType>\r
     </Compile>\r
+    <Compile Include="src\IntQueueTimer.c">\r
+      <SubType>compile</SubType>\r
+    </Compile>\r
     <Compile Include="src\serial.c">\r
       <SubType>compile</SubType>\r
     </Compile>\r
     <None Include="src\asf\thirdparty\CMSIS\Include\core_cmInstr.h">\r
       <SubType>compile</SubType>\r
     </None>\r
-    <None Include="src\asf\thirdparty\CMSIS\Lib\GCC\libarm_cortexM4l_math.a">\r
-      <SubType>compile</SubType>\r
-    </None>\r
     <None Include="src\asf\thirdparty\CMSIS\README.txt">\r
       <SubType>compile</SubType>\r
     </None>\r
     <Folder Include="src\asf\sam\drivers\" />\r
     <Folder Include="src\asf\sam\drivers\pio\" />\r
     <Folder Include="src\asf\sam\drivers\pmc\" />\r
+    <Folder Include="src\asf\sam\drivers\tc\" />\r
     <Folder Include="src\asf\sam\drivers\usart\" />\r
     <Folder Include="src\asf\sam\utils\" />\r
     <Folder Include="src\asf\sam\utils\cmsis\" />\r
index 459baffa87530cc5c8ae48ed4e72d0112cd70d85..57383f6866448b4111cf74a966fa852bb6a0c764 100644 (file)
@@ -131,6 +131,7 @@ to exclude the API function. */
 #define INCLUDE_vTaskSuspend                   1\r
 #define INCLUDE_vTaskDelayUntil                        1\r
 #define INCLUDE_vTaskDelay                             1\r
+#define INCLUDE_eTaskGetState                  1\r
 \r
 /* Cortex-M specific definitions. */\r
 #ifdef __NVIC_PRIO_BITS\r
diff --git a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/IntQueueTimer.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/IntQueueTimer.c
new file mode 100644 (file)
index 0000000..b3534fd
--- /dev/null
@@ -0,0 +1,198 @@
+/*\r
+    FreeRTOS V8.1.1 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+/*\r
+ * Provides the two timers sources for the standard demo IntQueue test.  Also\r
+ * includes a high frequency timer to maximise the interrupt nesting achieved.\r
+ */\r
+\r
+/* Standard includes. */\r
+#include <limits.h>\r
+\r
+/* Scheduler includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+\r
+/* Demo includes. */\r
+#include "IntQueueTimer.h"\r
+#include "IntQueue.h"\r
+\r
+/* System includes. */\r
+#include "board.h"\r
+#include "asf.h"\r
+\r
+/* The frequencies at which the first two timers expire are slightly offset to\r
+ensure they don't remain synchronised.  The frequency of the highest priority\r
+interrupt is 20 times faster so really hammers the interrupt entry and exit\r
+code. */\r
+#define tmrTIMER_0_FREQUENCY   ( 2000UL )\r
+#define tmrTIMER_1_FREQUENCY   ( 1003UL )\r
+#define tmrTIMER_2_FREQUENCY   ( 20000UL )\r
+\r
+/* Priorities used by the timer interrupts - these are set differently to make\r
+nesting likely/common.  The high frequency timer operates above the max\r
+system call interrupt priority, but does not use the RTOS API. */\r
+#define tmrTIMER_0_PRIORITY            ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY )\r
+#define tmrTIMER_1_PRIORITY            ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY + 1 )\r
+#define tmrTIMER_2_PRIORITY            ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY - 1 )\r
+\r
+/* The channels used within the TC0 timer. */\r
+#define tmrTIMER_0_CHANNEL             ( 0 )\r
+#define tmrTIMER_1_CHANNEL             ( 1 )\r
+#define tmrTIMER_2_CHANNEL             ( 2 )\r
+\r
+/* TC register bit specifics. */\r
+#define tmrTRIGGER_ON_RC               ( 1UL << 4UL )\r
+#define trmDIVIDER                             ( 128 )\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Handers for the timer interrupts. */\r
+void TC0_Handler( void );\r
+void TC1_Handler( void );\r
+void TC2_Handler( void );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* Incremented by the high frequency timer, which operates above the max\r
+syscall interrupt priority.  This is just for inspection. */\r
+volatile uint32_t ulHighFrequencyTimerInterrupts = 0;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void vInitialiseTimerForIntQueueTest( void )\r
+{\r
+uint32_t ulInputFrequency;\r
+\r
+       /* Calculate the frequency of the clock that feeds the TC. */\r
+       ulInputFrequency = configCPU_CLOCK_HZ;\r
+       ulInputFrequency /= trmDIVIDER;\r
+\r
+       /* Three channels are used - two that run at or under \r
+       configMAX_SYSCALL_INTERRUPT_PRIORITY, and one that runs over\r
+       configMAX_SYSCALL_INTERRUPT_PRIORITY. */\r
+       sysclk_enable_peripheral_clock( ID_TC0 );\r
+       sysclk_enable_peripheral_clock( ID_TC1 );\r
+       sysclk_enable_peripheral_clock( ID_TC2 );\r
+       \r
+       /* Init TC channels to waveform mode - up mode clean on RC match. */\r
+       tc_init( TC0, tmrTIMER_0_CHANNEL, TC_CMR_TCCLKS_TIMER_CLOCK4 | TC_CMR_WAVE | TC_CMR_ACPC_CLEAR | TC_CMR_CPCTRG );\r
+       tc_init( TC0, tmrTIMER_1_CHANNEL, TC_CMR_TCCLKS_TIMER_CLOCK4 | TC_CMR_WAVE | TC_CMR_ACPC_CLEAR | TC_CMR_CPCTRG );\r
+       tc_init( TC0, tmrTIMER_2_CHANNEL, TC_CMR_TCCLKS_TIMER_CLOCK4 | TC_CMR_WAVE | TC_CMR_ACPC_CLEAR | TC_CMR_CPCTRG );\r
+       \r
+       tc_enable_interrupt( TC0, tmrTIMER_0_CHANNEL, tmrTRIGGER_ON_RC );\r
+       tc_enable_interrupt( TC0, tmrTIMER_1_CHANNEL, tmrTRIGGER_ON_RC );\r
+       tc_enable_interrupt( TC0, tmrTIMER_2_CHANNEL, tmrTRIGGER_ON_RC );\r
+       \r
+       tc_write_rc( TC0, tmrTIMER_0_CHANNEL, ( ulInputFrequency / tmrTIMER_0_FREQUENCY ) );\r
+       tc_write_rc( TC0, tmrTIMER_1_CHANNEL, ( ulInputFrequency / tmrTIMER_1_FREQUENCY ) );\r
+       tc_write_rc( TC0, tmrTIMER_2_CHANNEL, ( ulInputFrequency / tmrTIMER_2_FREQUENCY ) );\r
+\r
+       NVIC_SetPriority( TC0_IRQn, tmrTIMER_0_PRIORITY );\r
+       NVIC_SetPriority( TC1_IRQn, tmrTIMER_1_PRIORITY );\r
+       NVIC_SetPriority( TC2_IRQn, tmrTIMER_2_PRIORITY );\r
+\r
+       NVIC_EnableIRQ( TC0_IRQn );\r
+       NVIC_EnableIRQ( TC1_IRQn );\r
+       NVIC_EnableIRQ( TC2_IRQn );\r
+\r
+       tc_start( TC0, tmrTIMER_0_CHANNEL );\r
+       tc_start( TC0, tmrTIMER_1_CHANNEL );\r
+       tc_start( TC0, tmrTIMER_2_CHANNEL );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void TC0_Handler( void )\r
+{\r
+       /* Handler for the first timer in the IntQueue test.  Was the interrupt\r
+       caused by a compare on RC? */\r
+       if( ( tc_get_status( TC0, tmrTIMER_0_CHANNEL ) & ~TC_SR_CPCS ) != 0 )\r
+       {\r
+               portYIELD_FROM_ISR( xFirstTimerHandler() );     \r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void TC1_Handler( void )\r
+{\r
+       /* Handler for the second timer in the IntQueue test.  Was the interrupt\r
+       caused by a compare on RC? */\r
+       if( ( tc_get_status( TC0, tmrTIMER_1_CHANNEL ) & ~TC_SR_CPCS ) != 0 )\r
+       {\r
+               portYIELD_FROM_ISR( xSecondTimerHandler() );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void TC2_Handler( void )\r
+{\r
+       /* Handler for the high frequency timer that does nothing but increment a\r
+       variable to give an indication that it is running.  Was the interrupt caused\r
+       by a compare on RC? */\r
+       if( ( tc_get_status( TC0, tmrTIMER_2_CHANNEL ) & ~TC_SR_CPCS ) != 0 )\r
+       {\r
+               ulHighFrequencyTimerInterrupts++;\r
+       }\r
+}\r
diff --git a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/IntQueueTimer.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/IntQueueTimer.h
new file mode 100644 (file)
index 0000000..df2b822
--- /dev/null
@@ -0,0 +1,74 @@
+/*\r
+    FreeRTOS V8.1.1 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>!   NOTE: The modification to the GPL is included to allow you to     !<<\r
+    >>!   distribute a combined work that includes FreeRTOS without being   !<<\r
+    >>!   obliged to provide the source code for proprietary components     !<<\r
+    >>!   outside of the FreeRTOS kernel.                                   !<<\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+#ifndef INT_QUEUE_TIMER_H\r
+#define INT_QUEUE_TIMER_H\r
+\r
+void vInitialiseTimerForIntQueueTest( void );\r
+BaseType_t xTimer0Handler( void );\r
+BaseType_t xTimer1Handler( void );\r
+\r
+#endif\r
+\r
index 3021332fa5b97d38f4f8669ddbf32fcf12011723..902796e2c4b59bdb879c64a70fc37c7b0ac7a34a 100644 (file)
@@ -1,54 +1,56 @@
-/**
- * \file
- *
- * \brief Autogenerated API include file for the Atmel Software Framework (ASF)
- *
- * Copyright (c) 2012 Atmel Corporation. All rights reserved.
- *
- * \asf_license_start
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- *    this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- *    this list of conditions and the following disclaimer in the documentation
- *    and/or other materials provided with the distribution.
- *
- * 3. The name of Atmel may not be used to endorse or promote products derived
- *    from this software without specific prior written permission.
- *
- * 4. This software may only be redistributed and used in connection with an
- *    Atmel microcontroller product.
- *
- * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * \asf_license_stop
- *
- */
-
-#ifndef ASF_H
-#define ASF_H
-
-/*
- * This file includes all API header files for the selected drivers from ASF.
- * Note: There might be duplicate includes required by more than one driver.
- *
- * The file is automatically generated and will be re-written when
- * running the ASF driver selector tool. Any changes will be discarded.
- */
+/**\r
+ * \file\r
+ *\r
+ * \brief Autogenerated API include file for the Atmel Software Framework (ASF)\r
+ *\r
+ * Copyright (c) 2012 Atmel Corporation. All rights reserved.\r
+ *\r
+ * \asf_license_start\r
+ *\r
+ * \page License\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions are met:\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright notice,\r
+ *    this list of conditions and the following disclaimer.\r
+ *\r
+ * 2. Redistributions in binary form must reproduce the above copyright notice,\r
+ *    this list of conditions and the following disclaimer in the documentation\r
+ *    and/or other materials provided with the distribution.\r
+ *\r
+ * 3. The name of Atmel may not be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * 4. This software may only be redistributed and used in connection with an\r
+ *    Atmel microcontroller product.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED\r
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
+ * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR\r
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ * \asf_license_stop\r
+ *\r
+ */\r
+\r
+#ifndef ASF_H\r
+#define ASF_H\r
+\r
+/*\r
+ * This file includes all API header files for the selected drivers from ASF.\r
+ * Note: There might be duplicate includes required by more than one driver.\r
+ *\r
+ * The file is automatically generated and will be re-written when\r
+ * running the ASF driver selector tool. Any changes will be discarded.\r
+ */\r
 \r
 // From module: Common SAM compiler driver\r
 #include <compiler.h>\r
 // From module: Generic board support\r
 #include <board.h>\r
 \r
-// From module: Interrupt management - SAM3 implementation\r
+// From module: Interrupt management - SAM implementation\r
 #include <interrupt.h>\r
 \r
 // From module: PIO - Parallel Input/Output Controller\r
 #include <pio.h>\r
-#include <pio_handler.h>\r
 \r
 // From module: PMC - Power Management Controller\r
 #include <pmc.h>\r
 #include <sleep.h>\r
 \r
+// From module: Part identification macros\r
+#include <parts.h>\r
+\r
+// From module: SAM4S startup code\r
+#include <exceptions.h>\r
+\r
 // From module: System Clock Control - SAM4S implementation\r
 #include <sysclk.h>\r
 \r
+// From module: TC - Timer Counter\r
+#include <tc.h>\r
+\r
 // From module: USART - Univ. Syn Async Rec/Trans\r
 #include <usart.h>\r
-
-#endif // ASF_H
+\r
+// From module: pio_handler support enabled\r
+#include <pio_handler.h>\r
+\r
+#endif // ASF_H\r
diff --git a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/tc/tc.c b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/tc/tc.c
new file mode 100644 (file)
index 0000000..d2bf3ae
--- /dev/null
@@ -0,0 +1,580 @@
+/**\r
+ * \file\r
+ *\r
+ * \brief Timer Counter (TC) driver for SAM.\r
+ *\r
+ * Copyright (c) 2011-2012 Atmel Corporation. All rights reserved.\r
+ *\r
+ * \asf_license_start\r
+ *\r
+ * \page License\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions are met:\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright notice,\r
+ *    this list of conditions and the following disclaimer.\r
+ *\r
+ * 2. Redistributions in binary form must reproduce the above copyright notice,\r
+ *    this list of conditions and the following disclaimer in the documentation\r
+ *    and/or other materials provided with the distribution.\r
+ *\r
+ * 3. The name of Atmel may not be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * 4. This software may only be redistributed and used in connection with an\r
+ *    Atmel microcontroller product.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED\r
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
+ * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR\r
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ * \asf_license_stop\r
+ *\r
+ */\r
+\r
+#include <assert.h>\r
+#include "tc.h"\r
+\r
+/// @cond 0\r
+/**INDENT-OFF**/\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+/**INDENT-ON**/\r
+/// @endcond\r
+\r
+#define TC_WPMR_WPKEY_VALUE TC_WPMR_WPKEY((uint32_t)0x54494D)\r
+\r
+/**\r
+ * \defgroup sam_drivers_tc_group Timer Counter (TC)\r
+ *\r
+ * The Timer Counter (TC) includes three identical 32-bit Timer Counter\r
+ * channels. Each channel can be independently programmed to perform a wide\r
+ * range of functions including frequency measurement, event counting,\r
+ * interval measurement, pulse generation, delay timing and pulse width\r
+ * modulation.\r
+ *\r
+ * @{\r
+ */\r
+\r
+/**\r
+ * \brief Configure TC for timer, waveform generation or capture.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_mode Control mode register value to set.\r
+ *\r
+ * \attention If the TC is configured for waveform generation, the external\r
+ * event selection (EEVT) should only be set to \c TC_CMR_EEVT_TIOB or the\r
+ * equivalent value \c 0 if it really is the intention to use TIOB as an\r
+ * external event trigger.\n\r
+ * This is because the setting forces TIOB to be an input even if the\r
+ * external event trigger has not been enabled with \c TC_CMR_ENETRG, and\r
+ * thus prevents normal operation of TIOB.\r
+ */\r
+void tc_init(Tc *p_tc, uint32_t ul_channel, uint32_t ul_mode)\r
+{\r
+       TcChannel *tc_channel;\r
+\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+       tc_channel = p_tc->TC_CHANNEL + ul_channel;\r
+\r
+       /*  Disable TC clock. */\r
+       tc_channel->TC_CCR = TC_CCR_CLKDIS;\r
+\r
+       /*  Disable interrupts. */\r
+       tc_channel->TC_IDR = 0xFFFFFFFF;\r
+\r
+       /*  Clear status register. */\r
+       tc_channel->TC_SR;\r
+\r
+       /*  Set mode. */\r
+       tc_channel->TC_CMR = ul_mode;\r
+}\r
+\r
+/**\r
+ * \brief Asserts a SYNC signal to generate a software trigger to\r
+ * all channels.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ *\r
+ */\r
+void tc_sync_trigger(Tc *p_tc)\r
+{\r
+  p_tc->TC_BCR = TC_BCR_SYNC;\r
+}\r
+\r
+/**\r
+ * \brief Configure TC Block mode.\r
+ * \note tc_init() must be called first.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_blockmode Block mode register value to set.\r
+ *\r
+ */\r
+void tc_set_block_mode(Tc *p_tc, uint32_t ul_blockmode)\r
+{\r
+       p_tc->TC_BMR = ul_blockmode;\r
+}\r
+\r
+#if (!SAM3U)\r
+\r
+/**\r
+ * \brief Configure TC for 2-bit Gray Counter for Stepper Motor.\r
+ * \note tc_init() must be called first.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_steppermode Stepper motor mode register value to set.\r
+ *\r
+ * \return 0 for OK.\r
+ */\r
+uint32_t tc_init_2bit_gray(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_steppermode)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       p_tc->TC_CHANNEL[ul_channel].TC_SMMR = ul_steppermode;\r
+       return 0;\r
+}\r
+\r
+#endif\r
+\r
+/**\r
+ * \brief Start TC clock counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ */\r
+void tc_start(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       p_tc->TC_CHANNEL[ul_channel].TC_CCR = TC_CCR_CLKEN | TC_CCR_SWTRG;\r
+}\r
+\r
+/**\r
+ * \brief Stop TC clock counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ */\r
+void tc_stop(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       p_tc->TC_CHANNEL[ul_channel].TC_CCR = TC_CCR_CLKDIS;\r
+}\r
+\r
+/**\r
+ * \brief Read RA TC counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ *\r
+ * \return RA value.\r
+ */\r
+int tc_read_ra(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       return p_tc->TC_CHANNEL[ul_channel].TC_RA;\r
+}\r
+\r
+/**\r
+ * \brief Read RB TC counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ *\r
+ * \return RB value.\r
+ */\r
+int tc_read_rb(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       return p_tc->TC_CHANNEL[ul_channel].TC_RB;\r
+}\r
+\r
+/**\r
+ * \brief Read RC TC counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ *\r
+ * \return RC value.\r
+ */\r
+int tc_read_rc(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       return p_tc->TC_CHANNEL[ul_channel].TC_RC;\r
+}\r
+\r
+/**\r
+ * \brief Write RA TC counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_value Value to set in register.\r
+ */\r
+void tc_write_ra(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_value)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       p_tc->TC_CHANNEL[ul_channel].TC_RA = ul_value;\r
+}\r
+\r
+/**\r
+ * \brief Write RB TC counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_value Value to set in register.\r
+ */\r
+void tc_write_rb(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_value)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       p_tc->TC_CHANNEL[ul_channel].TC_RB = ul_value;\r
+}\r
+\r
+/**\r
+ * \brief Write RC TC counter on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_value Value to set in register.\r
+ */\r
+void tc_write_rc(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_value)\r
+{\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+\r
+       p_tc->TC_CHANNEL[ul_channel].TC_RC = ul_value;\r
+}\r
+\r
+/**\r
+ * \brief Enable TC interrupts on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_sources Interrupt sources bit map.\r
+ */\r
+void tc_enable_interrupt(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_sources)\r
+{\r
+       TcChannel *tc_channel;\r
+\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+       tc_channel = p_tc->TC_CHANNEL + ul_channel;\r
+       tc_channel->TC_IER = ul_sources;\r
+}\r
+\r
+/**\r
+ * \brief Disable TC interrupts on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ * \param ul_sources Interrupt sources bit map.\r
+ */\r
+void tc_disable_interrupt(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_sources)\r
+{\r
+       TcChannel *tc_channel;\r
+\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+       tc_channel = p_tc->TC_CHANNEL + ul_channel;\r
+       tc_channel->TC_IDR = ul_sources;\r
+}\r
+\r
+/**\r
+ * \brief Read TC interrupt mask on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ *\r
+ * \return The interrupt mask value.\r
+ */\r
+uint32_t tc_get_interrupt_mask(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       TcChannel *tc_channel;\r
+\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+       tc_channel = p_tc->TC_CHANNEL + ul_channel;\r
+       return tc_channel->TC_IMR;\r
+}\r
+\r
+/**\r
+ * \brief Get current status on the selected channel.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_channel Channel to configure.\r
+ *\r
+ * \return The current TC status.\r
+ */\r
+uint32_t tc_get_status(Tc *p_tc, uint32_t ul_channel)\r
+{\r
+       TcChannel *tc_channel;\r
+\r
+       Assert(ul_channel <\r
+                       (sizeof(p_tc->TC_CHANNEL) / sizeof(p_tc->TC_CHANNEL[0])));\r
+       tc_channel = p_tc->TC_CHANNEL + ul_channel;\r
+       return tc_channel->TC_SR;\r
+}\r
+\r
+/* TC divisor used to find the lowest acceptable timer frequency */\r
+#define TC_DIV_FACTOR 65536\r
+\r
+#if (!SAM4L)\r
+\r
+#ifndef FREQ_SLOW_CLOCK_EXT\r
+#define FREQ_SLOW_CLOCK_EXT 32768 /* External slow clock frequency (hz) */\r
+#endif\r
+\r
+/**\r
+ * \brief Find the best MCK divisor.\r
+ *\r
+ * Finds the best MCK divisor given the timer frequency and MCK. The result\r
+ * is guaranteed to satisfy the following equation:\r
+ * \code\r
+ *   (MCK / (DIV * 65536)) <= freq <= (MCK / DIV)\r
+ * \endcode\r
+ * with DIV being the lowest possible value,\r
+ * to maximize timing adjust resolution.\r
+ *\r
+ * \param ul_freq  Desired timer frequency.\r
+ * \param ul_mck  Master clock frequency.\r
+ * \param p_uldiv  Divisor value.\r
+ * \param p_ultcclks  TCCLKS field value for divisor.\r
+ * \param ul_boardmck  Board clock frequency.\r
+ *\r
+ * \return 1 if a proper divisor has been found, otherwise 0.\r
+ */\r
+uint32_t tc_find_mck_divisor(uint32_t ul_freq, uint32_t ul_mck,\r
+               uint32_t *p_uldiv, uint32_t *p_ultcclks, uint32_t ul_boardmck)\r
+{\r
+       const uint32_t divisors[5] = { 2, 8, 32, 128,\r
+                       ul_boardmck / FREQ_SLOW_CLOCK_EXT };\r
+       uint32_t ul_index;\r
+       uint32_t ul_high, ul_low;\r
+\r
+       /*  Satisfy frequency bound. */\r
+       for (ul_index = 0;\r
+                       ul_index < (sizeof(divisors) / sizeof(divisors[0]));\r
+                       ul_index++) {\r
+               ul_high = ul_mck / divisors[ul_index];\r
+               ul_low  = ul_high / TC_DIV_FACTOR;\r
+               if (ul_freq > ul_high) {\r
+                       return 0;\r
+               } else if (ul_freq >= ul_low) {\r
+                       break;\r
+               }\r
+       }\r
+       if (ul_index >= (sizeof(divisors) / sizeof(divisors[0]))) {\r
+               return 0;\r
+       }\r
+\r
+       /*  Store results. */\r
+       if (p_uldiv) {\r
+               *p_uldiv = divisors[ul_index];\r
+       }\r
+\r
+       if (p_ultcclks) {\r
+               *p_ultcclks = ul_index;\r
+       }\r
+\r
+       return 1;\r
+}\r
+\r
+#endif\r
+\r
+#if (SAM4L)\r
+/**\r
+ * \brief Find the best PBA clock divisor.\r
+ *\r
+ * Finds the best divisor given the timer frequency and PBA clock. The result\r
+ * is guaranteed to satisfy the following equation:\r
+ * \code\r
+ *   (ul_pbaclk / (2* DIV * 65536)) <= freq <= (ul_pbaclk / (2* DIV))\r
+ * \endcode\r
+ * with DIV being the lowest possible value,\r
+ * to maximize timing adjust resolution.\r
+ *\r
+ * \param ul_freq  Desired timer frequency.\r
+ * \param ul_mck  PBA clock frequency.\r
+ * \param p_uldiv  Divisor value.\r
+ * \param p_ultcclks  TCCLKS field value for divisor.\r
+ * \param ul_boardmck  useless here.\r
+ *\r
+ * \return 1 if a proper divisor has been found, otherwise 0.\r
+ */\r
+uint32_t tc_find_mck_divisor(uint32_t ul_freq, uint32_t ul_mck,\r
+               uint32_t *p_uldiv, uint32_t *p_ultcclks, uint32_t ul_boardmck)\r
+{\r
+       const uint32_t divisors[5] = { 0, 2, 8, 32, 128};\r
+       uint32_t ul_index;\r
+       uint32_t ul_high, ul_low;\r
+\r
+       UNUSED(ul_boardmck);\r
+\r
+       /*  Satisfy frequency bound. */\r
+       for (ul_index = 1;\r
+                       ul_index < (sizeof(divisors) / sizeof(divisors[0]));\r
+                       ul_index++) {\r
+               ul_high = ul_mck / divisors[ul_index];\r
+               ul_low  = ul_high / TC_DIV_FACTOR;\r
+               if (ul_freq > ul_high) {\r
+                       return 0;\r
+               } else if (ul_freq >= ul_low) {\r
+                       break;\r
+               }\r
+       }\r
+       if (ul_index >= (sizeof(divisors) / sizeof(divisors[0]))) {\r
+               return 0;\r
+       }\r
+\r
+       /*  Store results. */\r
+       if (p_uldiv) {\r
+               *p_uldiv = divisors[ul_index];\r
+       }\r
+\r
+       if (p_ultcclks) {\r
+               *p_ultcclks = ul_index;\r
+       }\r
+\r
+       return 1;\r
+}\r
+\r
+#endif\r
+\r
+#if (!SAM4L)\r
+\r
+/**\r
+ * \brief Enable TC QDEC interrupts.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_sources Interrupts to be enabled.\r
+ */\r
+void tc_enable_qdec_interrupt(Tc *p_tc, uint32_t ul_sources)\r
+{\r
+       p_tc->TC_QIER = ul_sources;\r
+}\r
+\r
+/**\r
+ * \brief Disable TC QDEC interrupts.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_sources Interrupts to be disabled.\r
+ */\r
+void tc_disable_qdec_interrupt(Tc *p_tc, uint32_t ul_sources)\r
+{\r
+       p_tc->TC_QIDR = ul_sources;\r
+}\r
+\r
+/**\r
+ * \brief Read TC QDEC interrupt mask.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ *\r
+ * \return The interrupt mask value.\r
+ */\r
+uint32_t tc_get_qdec_interrupt_mask(Tc *p_tc)\r
+{\r
+       return p_tc->TC_QIMR;\r
+}\r
+\r
+/**\r
+ * \brief Get current QDEC status.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ *\r
+ * \return The current TC status.\r
+ */\r
+uint32_t tc_get_qdec_interrupt_status(Tc *p_tc)\r
+{\r
+       return p_tc->TC_QISR;\r
+}\r
+\r
+#endif\r
+\r
+#if (!SAM3U)\r
+\r
+/**\r
+ * \brief Enable or disable write protection of TC registers.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ * \param ul_enable 1 to enable, 0 to disable.\r
+ */\r
+void tc_set_writeprotect(Tc *p_tc, uint32_t ul_enable)\r
+{\r
+       if (ul_enable) {\r
+               p_tc->TC_WPMR = TC_WPMR_WPKEY_VALUE | TC_WPMR_WPEN;\r
+       } else {\r
+               p_tc->TC_WPMR = TC_WPMR_WPKEY_VALUE;\r
+       }\r
+}\r
+\r
+#endif\r
+\r
+#if SAM4L\r
+\r
+/**\r
+ * \brief Indicate features.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ *\r
+ * \return TC_FEATURES value.\r
+ */\r
+uint32_t tc_get_feature(Tc *p_tc)\r
+{\r
+       return p_tc->TC_FEATURES;\r
+}\r
+\r
+/**\r
+ * \brief Indicate version.\r
+ *\r
+ * \param p_tc Pointer to a TC instance.\r
+ *\r
+ * \return TC_VERSION value.\r
+ */\r
+uint32_t tc_get_version(Tc *p_tc)\r
+{\r
+       return p_tc->TC_VERSION;\r
+}\r
+\r
+#endif\r
+\r
+//@}\r
+\r
+/// @cond 0\r
+/**INDENT-OFF**/\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+/**INDENT-ON**/\r
+/// @endcond\r
diff --git a/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/tc/tc.h b/FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/asf/sam/drivers/tc/tc.h
new file mode 100644 (file)
index 0000000..05cdd10
--- /dev/null
@@ -0,0 +1,113 @@
+/**\r
+ * \file\r
+ *\r
+ * \brief Timer Counter (TC) driver for SAM.\r
+ *\r
+ * Copyright (c) 2011-2012 Atmel Corporation. All rights reserved.\r
+ *\r
+ * \asf_license_start\r
+ *\r
+ * \page License\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions are met:\r
+ *\r
+ * 1. Redistributions of source code must retain the above copyright notice,\r
+ *    this list of conditions and the following disclaimer.\r
+ *\r
+ * 2. Redistributions in binary form must reproduce the above copyright notice,\r
+ *    this list of conditions and the following disclaimer in the documentation\r
+ *    and/or other materials provided with the distribution.\r
+ *\r
+ * 3. The name of Atmel may not be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * 4. This software may only be redistributed and used in connection with an\r
+ *    Atmel microcontroller product.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED\r
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
+ * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR\r
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN\r
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
+ * POSSIBILITY OF SUCH DAMAGE.\r
+ *\r
+ * \asf_license_stop\r
+ *\r
+ */\r
+\r
+#ifndef TC_H_INCLUDED\r
+#define TC_H_INCLUDED\r
+\r
+#include "compiler.h"\r
+\r
+/// @cond 0\r
+/**INDENT-OFF**/\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+/**INDENT-ON**/\r
+/// @endcond\r
+\r
+void tc_init(Tc *p_tc, uint32_t ul_Channel, uint32_t ul_Mode);\r
+void tc_sync_trigger(Tc *p_tc);\r
+void tc_set_block_mode(Tc *p_tc, uint32_t ul_blockmode);\r
+\r
+#if (!SAM3U)\r
+uint32_t tc_init_2bit_gray(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_steppermode);\r
+#endif\r
+\r
+void tc_start(Tc *p_tc, uint32_t ul_channel);\r
+void tc_stop(Tc *p_tc, uint32_t ul_channel);\r
+\r
+int tc_read_ra(Tc *p_tc, uint32_t ul_channel);\r
+int tc_read_rb(Tc *p_tc, uint32_t ul_channel);\r
+int tc_read_rc(Tc *p_tc, uint32_t ul_channel);\r
+\r
+void tc_write_ra(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_value);\r
+void tc_write_rb(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_value);\r
+void tc_write_rc(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_value);\r
+\r
+uint32_t tc_find_mck_divisor(uint32_t ul_freq, uint32_t ul_mck,\r
+               uint32_t *p_uldiv, uint32_t *ul_tcclks, uint32_t ul_boardmck);\r
+void tc_enable_interrupt(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_sources);\r
+void tc_disable_interrupt(Tc *p_tc, uint32_t ul_channel,\r
+               uint32_t ul_sources);\r
+uint32_t tc_get_interrupt_mask(Tc *p_tc, uint32_t ul_channel);\r
+uint32_t tc_get_status(Tc *p_tc, uint32_t ul_channel);\r
+#if (!SAM4L)\r
+void tc_enable_qdec_interrupt(Tc *p_tc, uint32_t ul_sources);\r
+void tc_disable_qdec_interrupt(Tc *p_tc, uint32_t ul_sources);\r
+uint32_t tc_get_qdec_interrupt_mask(Tc *p_tc);\r
+uint32_t tc_get_qdec_interrupt_status(Tc *p_tc);\r
+#endif\r
+\r
+#if (!SAM3U)\r
+void tc_set_writeprotect(Tc *p_tc, uint32_t ul_enable);\r
+#endif\r
+\r
+#if SAM4L\r
+uint32_t tc_get_feature(Tc *p_tc);\r
+uint32_t tc_get_version(Tc *p_tc);\r
+\r
+#endif\r
+\r
+/// @cond 0\r
+/**INDENT-OFF**/\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+/**INDENT-ON**/\r
+/// @endcond\r
+\r
+#endif /* TC_H_INCLUDED */\r
index 6cc81b758746d3d639d7027dd3cf6219544afef7..3f48aeefe90ff48b1e97f4274312074dc5d0165f 100644 (file)
 #include "partest.h"\r
 #include "comtest2.h"\r
 #include "QueueSet.h"\r
+#include "IntQueue.h"\r
 \r
 /* Atmel library includes. */\r
 #include "asf.h"\r
@@ -180,6 +181,7 @@ TimerHandle_t xCheckTimer = NULL;
        /* Start all the other standard demo/test tasks.  The have not particular\r
        functionality, but do demonstrate how to use the FreeRTOS API and test the\r
        kernel port. */\r
+       vStartInterruptQueueTasks();\r
        vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
        vStartDynamicPriorityTasks();\r
        vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
@@ -232,6 +234,11 @@ unsigned long ulErrorFound = pdFALSE;
        /* Check all the demo tasks (other than the flash tasks) to ensure\r
        they are all still running, and that none have detected an error. */\r
 \r
+       if( xAreIntQueueTasksStillRunning() != pdTRUE )\r
+       {\r
+               ulErrorFound = pdTRUE;\r
+       }\r
+\r
        if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
        {\r
                ulErrorFound = pdTRUE;\r