mirror of
https://github.com/FreeRTOS/FreeRTOS.git
synced 2026-10-01 10:24:12 +08:00
Starting point for Tasking XMC4500 demo. Compiling only, not executed yet.
This commit is contained in:
@@ -0,0 +1,119 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?>
|
||||
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="com.tasking.config.arm.abs.debug.1826238485">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.tasking.config.arm.abs.debug.1826238485" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.tasking.managedbuilder.TASKING_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="com.tasking.managedbuilder.TskRegexErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="abs" artifactName="RTOSDemo" buildArtefactType="com.tasking.arm.buildArtefactType.elf" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=com.tasking.arm.buildArtefactType.elf" cleanCommand=""${PRODDIR}/bin/rm" -rf" description="" id="com.tasking.config.arm.abs.debug.1826238485" name="Debug" parent="com.tasking.config.arm.abs.debug">
|
||||
<folderInfo id="com.tasking.config.arm.abs.debug.1826238485." name="/" resourcePath="">
|
||||
<toolChain id="com.tasking.arm.abs.debug.30340712" name="TASKING VX-toolset for ARM" superClass="com.tasking.arm.abs.debug">
|
||||
<option id="com.tasking.arm.pluginVersion.2141845622" name="Plugin version" superClass="com.tasking.arm.pluginVersion" value="1.77.0.0" valueType="string"/>
|
||||
<option id="com.tasking.arm.prodDir.157728853" name="Product directory:" superClass="com.tasking.arm.prodDir" value="${eclipse_home}/.." valueType="string"/>
|
||||
<option id="com.tasking.arm.cpu.1839436230" name="Processor:" superClass="com.tasking.arm.cpu" value="xmc4500x1024" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="com.tasking.managedbuilder.TASKING_ELF" id="com.tasking.arm.platform.abs.debug.1822567351" name="Debug" osList="" superClass="com.tasking.arm.platform.abs.debug"/>
|
||||
<builder buildPath="${workspace_loc:/RTOSDemo/Debug}" id="com.tasking.arm.builder.abs.debug.1973824774" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="TASKING ARM Makefile generator" parallelBuildOn="true" parallelizationNumber="-1" superClass="com.tasking.arm.builder.abs.debug"/>
|
||||
<tool id="com.tasking.arm.cc.abs.debug.950672563" name="C/C++ Compiler" superClass="com.tasking.arm.cc.abs.debug">
|
||||
<option id="com.tasking.arm.cc.pr36858.1857781873" name="workaround for PR36858" superClass="com.tasking.arm.cc.pr36858" value="true" valueType="string"/>
|
||||
<option id="com.tasking.arm.cc.includePaths.181073230" name="Include paths" superClass="com.tasking.arm.cc.includePaths" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value=""C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_M4F_Infineon_XMC4500_Tasking\FreeRTOS_Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_M4F_Infineon_XMC4500_Tasking\FreeRTOS_Source\portable\Tasking\ARM_CM4F""/>
|
||||
<listOptionValue builtIn="false" value=""C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_M4F_Infineon_XMC4500_Tasking""/>
|
||||
<listOptionValue builtIn="false" value=""C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_M4F_Infineon_XMC4500_Tasking\src\Common_Demo_Source\include""/>
|
||||
<listOptionValue builtIn="false" value=""C:\E\Dev\FreeRTOS\WorkingCopy\Demo\CORTEX_M4F_Infineon_XMC4500_Tasking\Common_Demo_Source\include""/>
|
||||
</option>
|
||||
<option id="com.tasking.arm.cc.optimize.1219621169" name="Optimization level:" superClass="com.tasking.arm.cc.optimize" value="com.tasking.arm.cc.optimize.0" valueType="enumerated"/>
|
||||
<option id="com.tasking.arm.cc.globalTypeChecking.1886266211" superClass="com.tasking.arm.cc.globalTypeChecking" value="false" valueType="boolean"/>
|
||||
<inputType id="com.tasking.arm.cppInputType.1974521058" name="C++" superClass="com.tasking.arm.cppInputType"/>
|
||||
<inputType id="com.tasking.arm.cpp.cInputType.1635312661" name="C" superClass="com.tasking.arm.cpp.cInputType"/>
|
||||
<inputType id="com.tasking.arm.cc.msInputType.1200945921" name="MS" superClass="com.tasking.arm.cc.msInputType"/>
|
||||
</tool>
|
||||
<tool id="com.tasking.arm.as.abs.debug.1112996000" name="Assembler" superClass="com.tasking.arm.as.abs.debug">
|
||||
<option id="com.tasking.arm.as.nowarning.1719279978" name="Suppress warnings" superClass="com.tasking.arm.as.nowarning" valueType="stringList"/>
|
||||
<inputType id="com.tasking.arm.asmInputType.1386473095" name="ASM" superClass="com.tasking.arm.asmInputType"/>
|
||||
</tool>
|
||||
<tool id="com.tasking.arm.lk.abs.debug.1964647065" name="Linker" superClass="com.tasking.arm.lk.abs.debug">
|
||||
<option id="com.tasking.arm.lk.nowarning.595656818" name="Suppress warnings" superClass="com.tasking.arm.lk.nowarning" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="163"/>
|
||||
</option>
|
||||
<inputType id="com.tasking.arm.lkObjInputType.747815267" name="OBJ" superClass="com.tasking.arm.lkObjInputType"/>
|
||||
<inputType id="com.tasking.arm.lkLibInputType.124974190" name="LIB" superClass="com.tasking.arm.lkLibInputType"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
<storageModule moduleId="com.tasking.toolInfo">
|
||||
<toolInfo>TASKING VX-toolset for ARM Cortex: object linker v4.2r1 Build 135 SN 00521976</toolInfo>
|
||||
<toolInfo>TASKING VX-toolset for ARM Cortex: control program v4.2r1 Build 118</toolInfo>
|
||||
<toolInfo>TASKING VX-toolset for ARM Cortex: assembler v4.2r1 Build 141</toolInfo>
|
||||
<toolInfo>TASKING program builder v4.2r1 Build 063</toolInfo>
|
||||
<toolInfo>TASKING VX-toolset for ARM Cortex: C compiler v4.2r1 Build 652 SN 00521976</toolInfo>
|
||||
</storageModule>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="com.tasking.config.arm.abs.release.1347721718">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.tasking.config.arm.abs.release.1347721718" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="com.tasking.managedbuilder.TASKING_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="com.tasking.managedbuilder.TskRegexErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactExtension="abs" artifactName="RTOSDemo" buildArtefactType="com.tasking.arm.buildArtefactType.elf" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=com.tasking.arm.buildArtefactType.elf" cleanCommand=""${PRODDIR}/bin/rm" -rf" description="" id="com.tasking.config.arm.abs.release.1347721718" name="Release" parent="com.tasking.config.arm.abs.release">
|
||||
<folderInfo id="com.tasking.config.arm.abs.release.1347721718." name="/" resourcePath="">
|
||||
<toolChain id="com.tasking.arm.abs.release.2133027783" name="TASKING VX-toolset for ARM" superClass="com.tasking.arm.abs.release">
|
||||
<option id="com.tasking.arm.pluginVersion.994174085" name="Plugin version" superClass="com.tasking.arm.pluginVersion" value="1.77.0.0" valueType="string"/>
|
||||
<option id="com.tasking.arm.prodDir.1630657737" name="Product directory:" superClass="com.tasking.arm.prodDir" value="${eclipse_home}/.." valueType="string"/>
|
||||
<option id="com.tasking.arm.cpu.1056159152" name="Processor:" superClass="com.tasking.arm.cpu" value="xmc4500x1024" valueType="string"/>
|
||||
<targetPlatform archList="all" binaryParser="com.tasking.managedbuilder.TASKING_ELF" id="com.tasking.arm.platform.abs.release.1749952775" name="Release" osList="" superClass="com.tasking.arm.platform.abs.release"/>
|
||||
<builder buildPath="${workspace_loc:/RTOSDemo/Release}" id="com.tasking.arm.builder.abs.debug.2137153010" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="TASKING ARM Makefile generator" parallelBuildOn="true" parallelizationNumber="-1" superClass="com.tasking.arm.builder.abs.debug"/>
|
||||
<tool id="com.tasking.arm.cc.abs.release.383959121" name="C/C++ Compiler" superClass="com.tasking.arm.cc.abs.release">
|
||||
<option id="com.tasking.arm.cc.pr36858.670618578" name="workaround for PR36858" superClass="com.tasking.arm.cc.pr36858" value="true" valueType="string"/>
|
||||
<inputType id="com.tasking.arm.cppInputType.720200138" name="C++" superClass="com.tasking.arm.cppInputType"/>
|
||||
<inputType id="com.tasking.arm.cpp.cInputType.611109353" name="C" superClass="com.tasking.arm.cpp.cInputType"/>
|
||||
<inputType id="com.tasking.arm.cc.msInputType.1616585102" name="MS" superClass="com.tasking.arm.cc.msInputType"/>
|
||||
</tool>
|
||||
<tool id="com.tasking.arm.as.abs.release.1673229833" name="Assembler" superClass="com.tasking.arm.as.abs.release">
|
||||
<inputType id="com.tasking.arm.asmInputType.202362186" name="ASM" superClass="com.tasking.arm.asmInputType"/>
|
||||
</tool>
|
||||
<tool id="com.tasking.arm.lk.abs.release.1443574651" name="Linker" superClass="com.tasking.arm.lk.abs.release">
|
||||
<inputType id="com.tasking.arm.lkObjInputType.356912570" name="OBJ" superClass="com.tasking.arm.lkObjInputType"/>
|
||||
<inputType id="com.tasking.arm.lkLibInputType.1089169346" name="LIB" superClass="com.tasking.arm.lkLibInputType"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="RTOSDemo.com.tasking.arm.target.abs.112448275" name="TASKING ARM Application" projectType="com.tasking.arm.target.abs"/>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||
<scannerConfigBuildInfo instanceId="com.tasking.config.arm.abs.release.1347721718;com.tasking.config.arm.abs.release.1347721718.">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.tasking.arm.TskARMScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
<scannerConfigBuildInfo instanceId="com.tasking.config.arm.abs.debug.1826238485;com.tasking.config.arm.abs.debug.1826238485.">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="com.tasking.arm.TskARMScannerInfo"/>
|
||||
</scannerConfigBuildInfo>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.language.mapping">
|
||||
<project-mappings>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cHeader" language="com.tasking.arm.clanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cSource" language="com.tasking.arm.clanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxHeader" language="com.tasking.arm.cpplanguage"/>
|
||||
<content-type-mapping configuration="" content-type="org.eclipse.cdt.core.cxxSource" language="com.tasking.arm.cpplanguage"/>
|
||||
</project-mappings>
|
||||
</storageModule>
|
||||
</cproject>
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>RTOSDemo</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>com.tasking.arm.TskManagedBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>com.tasking.arm.target</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,143 @@
|
||||
/*
|
||||
FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details. You should have received a copy of the GNU General Public
|
||||
License and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||
contact details.
|
||||
|
||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||
critical systems.
|
||||
|
||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||
licensing and training services.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef FREERTOS_CONFIG_H
|
||||
#define FREERTOS_CONFIG_H
|
||||
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Application specific definitions.
|
||||
*
|
||||
* These definitions should be adjusted for your particular hardware and
|
||||
* application requirements.
|
||||
*
|
||||
* THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
|
||||
* FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
|
||||
*
|
||||
* See http://www.freertos.org/a00110.html.
|
||||
*----------------------------------------------------------*/
|
||||
|
||||
#include <stdint.h>
|
||||
extern uint32_t SystemCoreClock;
|
||||
|
||||
#define configUSE_PREEMPTION 1
|
||||
#define configUSE_IDLE_HOOK 0
|
||||
#define configUSE_TICK_HOOK 0
|
||||
#define configCPU_CLOCK_HZ ( SystemCoreClock )
|
||||
#define configTICK_RATE_HZ ( ( portTickType ) 1000 )
|
||||
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 5 )
|
||||
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 130 )
|
||||
#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 40960 ) )
|
||||
#define configMAX_TASK_NAME_LEN ( 10 )
|
||||
#define configUSE_TRACE_FACILITY 1
|
||||
#define configUSE_16_BIT_TICKS 0
|
||||
#define configIDLE_SHOULD_YIELD 1
|
||||
#define configUSE_MUTEXES 1
|
||||
#define configQUEUE_REGISTRY_SIZE 8
|
||||
#define configCHECK_FOR_STACK_OVERFLOW 2
|
||||
#define configUSE_RECURSIVE_MUTEXES 1
|
||||
#define configUSE_MALLOC_FAILED_HOOK 1
|
||||
#define configUSE_APPLICATION_TASK_TAG 0
|
||||
#define configUSE_COUNTING_SEMAPHORES 1
|
||||
#define configGENERATE_RUN_TIME_STATS 0
|
||||
|
||||
/* Co-routine definitions. */
|
||||
#define configUSE_CO_ROUTINES 0
|
||||
#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )
|
||||
|
||||
/* Software timer definitions. */
|
||||
#define configUSE_TIMERS 1
|
||||
#define configTIMER_TASK_PRIORITY ( 2 )
|
||||
#define configTIMER_QUEUE_LENGTH 5
|
||||
#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE * 2 )
|
||||
|
||||
/* Set the following definitions to 1 to include the API function, or zero
|
||||
to exclude the API function. */
|
||||
#define INCLUDE_vTaskPrioritySet 1
|
||||
#define INCLUDE_uxTaskPriorityGet 1
|
||||
#define INCLUDE_vTaskDelete 1
|
||||
#define INCLUDE_vTaskCleanUpResources 1
|
||||
#define INCLUDE_vTaskSuspend 1
|
||||
#define INCLUDE_vTaskDelayUntil 1
|
||||
#define INCLUDE_vTaskDelay 1
|
||||
|
||||
/* Cortex-M specific definitions. */
|
||||
#ifdef __NVIC_PRIO_BITS
|
||||
/* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */
|
||||
#define configPRIO_BITS __NVIC_PRIO_BITS
|
||||
#else
|
||||
#define configPRIO_BITS 6 /* 63 priority levels */
|
||||
#endif
|
||||
|
||||
/* The lowest interrupt priority that can be used in a call to a "set priority"
|
||||
function. */
|
||||
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x3f
|
||||
|
||||
/* The highest interrupt priority that can be used by any interrupt service
|
||||
routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL
|
||||
INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER
|
||||
PRIORITY THAN THIS! (higher priorities are lower numeric values. */
|
||||
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5
|
||||
|
||||
/* Interrupt priorities used by the kernel port layer itself. These are generic
|
||||
to all Cortex-M ports, and do not rely on any particular library functions. */
|
||||
#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
||||
#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
|
||||
|
||||
/* Normal assert() semantics without relying on the provision of an assert.h
|
||||
header file. */
|
||||
#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }
|
||||
|
||||
#endif /* FREERTOS_CONFIG_H */
|
||||
|
||||
+234
File diff suppressed because it is too large
Load Diff
+169
@@ -0,0 +1,169 @@
|
||||
;/*
|
||||
; FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd.
|
||||
;
|
||||
;
|
||||
; ***************************************************************************
|
||||
; * *
|
||||
; * FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
; * Complete, revised, and edited pdf reference manuals are also *
|
||||
; * available. *
|
||||
; * *
|
||||
; * Purchasing FreeRTOS documentation will not only help you, by *
|
||||
; * ensuring you get running as quickly as possible and with an *
|
||||
; * in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
; * the FreeRTOS project to continue with its mission of providing *
|
||||
; * professional grade, cross platform, de facto standard solutions *
|
||||
; * for microcontrollers - completely free of charge! *
|
||||
; * *
|
||||
; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
; * *
|
||||
; * Thank you for using FreeRTOS, and thank you for your support! *
|
||||
; * *
|
||||
; ***************************************************************************
|
||||
;
|
||||
;
|
||||
; This file is part of the FreeRTOS distribution.
|
||||
;
|
||||
; FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
; the terms of the GNU General Public License (version 2) as published by the
|
||||
; Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
; >>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
; distribute a combined work that includes FreeRTOS without being obliged to
|
||||
; provide the source code for proprietary components outside of the FreeRTOS
|
||||
; kernel. FreeRTOS is distributed in the hope that it will be useful, but
|
||||
; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
; more details. You should have received a copy of the GNU General Public
|
||||
; License and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
; can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
; by writing to Richard Barry, contact details for whom are available on the
|
||||
; FreeRTOS WEB site.
|
||||
;
|
||||
; 1 tab == 4 spaces!
|
||||
;
|
||||
; http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||
; contact details.
|
||||
;
|
||||
; http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||
; critical systems.
|
||||
;
|
||||
; http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||
; licensing and training services.
|
||||
;*/
|
||||
|
||||
.extern pxCurrentTCB
|
||||
.extern vTaskSwitchContext
|
||||
.extern ulMaxSyscallInterruptPriorityConst
|
||||
|
||||
.global PendSV_Handler
|
||||
.global SVC_Handler
|
||||
.global vPortStartFirstTask
|
||||
.global vPortEnableVFP
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
.section .text
|
||||
.thumb
|
||||
.align 4
|
||||
PendSV_Handler: .type func
|
||||
mrs r0, psp
|
||||
|
||||
;Get the location of the current TCB.
|
||||
ldr r3, =pxCurrentTCB
|
||||
ldr r2, [r3]
|
||||
|
||||
;Is the task using the FPU context? If so, push high vfp registers.
|
||||
tst r14, #0x10
|
||||
it eq
|
||||
vstmdbeq r0!, {s16-s31}
|
||||
|
||||
;Save the core registers.
|
||||
stmdb r0!, {r4-r11, r14}
|
||||
|
||||
;Save the new top of stack into the first member of the TCB.
|
||||
str r0, [r2]
|
||||
|
||||
stmdb sp!, {r3, r14}
|
||||
ldr r0, ulMaxSyscallInterruptPriorityConst
|
||||
ldr r0, [r0]
|
||||
msr basepri, r0
|
||||
; bl vTaskSwitchContext
|
||||
mov r0, #0
|
||||
msr basepri, r0
|
||||
ldmia sp!, {r3, r14}
|
||||
|
||||
;The first item in pxCurrentTCB is the task top of stack.
|
||||
ldr r1, [r3]
|
||||
ldr r0, [r1]
|
||||
|
||||
;Pop the core registers.
|
||||
ldmia r0!, {r4-r11, r14}
|
||||
|
||||
;Is the task using the FPU context? If so, pop the high vfp registers too.
|
||||
tst r14, #0x10
|
||||
it eq
|
||||
vldmiaeq r0!, {s16-s31}
|
||||
|
||||
msr psp, r0
|
||||
bx r14
|
||||
|
||||
.size PendSV_Handler, $-PendSV_Handler
|
||||
.endsec
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
.section .text
|
||||
.thumb
|
||||
.align 4
|
||||
SVC_Handler: .type func
|
||||
;Get the location of the current TCB.
|
||||
ldr r3, =pxCurrentTCB
|
||||
ldr r1, [r3]
|
||||
ldr r0, [r1]
|
||||
;Pop the core registers.
|
||||
ldmia r0!, {r4-r11, r14}
|
||||
msr psp, r0
|
||||
mov r0, #0
|
||||
msr basepri, r0
|
||||
bx r14
|
||||
.size SVC_Handler, $-SVC_Handler
|
||||
.endsec
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
.section .text
|
||||
.thumb
|
||||
.align 4
|
||||
vPortStartFirstTask .type func
|
||||
;Use the NVIC offset register to locate the stack.
|
||||
ldr r0, =0xE000ED08
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0]
|
||||
;Set the msp back to the start of the stack.
|
||||
msr msp, r0
|
||||
;Call SVC to start the first task.
|
||||
cpsie i
|
||||
svc 0
|
||||
.size vPortStartFirstTask, $-vPortStartFirstTask
|
||||
.endsec
|
||||
|
||||
;-----------------------------------------------------------
|
||||
|
||||
.section .text
|
||||
.thumb
|
||||
.align 4
|
||||
vPortEnableVFP .type func
|
||||
;The FPU enable bits are in the CPACR.
|
||||
ldr r0, =0xE000ED88
|
||||
ldr r1, [r0]
|
||||
|
||||
;Enable CP10 and CP11 coprocessors, then save back.
|
||||
orr r1, r1, #( 0xf << 20 )
|
||||
str r1, [r0]
|
||||
bx r14
|
||||
.size vPortEnableVFP, $-vPortEnableVFP
|
||||
.endsec
|
||||
|
||||
|
||||
.end
|
||||
|
||||
+144
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd.
|
||||
|
||||
|
||||
***************************************************************************
|
||||
* *
|
||||
* FreeRTOS tutorial books are available in pdf and paperback. *
|
||||
* Complete, revised, and edited pdf reference manuals are also *
|
||||
* available. *
|
||||
* *
|
||||
* Purchasing FreeRTOS documentation will not only help you, by *
|
||||
* ensuring you get running as quickly as possible and with an *
|
||||
* in-depth knowledge of how to use FreeRTOS, it will also help *
|
||||
* the FreeRTOS project to continue with its mission of providing *
|
||||
* professional grade, cross platform, de facto standard solutions *
|
||||
* for microcontrollers - completely free of charge! *
|
||||
* *
|
||||
* >>> See http://www.FreeRTOS.org/Documentation for details. <<< *
|
||||
* *
|
||||
* Thank you for using FreeRTOS, and thank you for your support! *
|
||||
* *
|
||||
***************************************************************************
|
||||
|
||||
|
||||
This file is part of the FreeRTOS distribution.
|
||||
|
||||
FreeRTOS is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU General Public License (version 2) as published by the
|
||||
Free Software Foundation AND MODIFIED BY the FreeRTOS exception.
|
||||
>>>NOTE<<< The modification to the GPL is included to allow you to
|
||||
distribute a combined work that includes FreeRTOS without being obliged to
|
||||
provide the source code for proprietary components outside of the FreeRTOS
|
||||
kernel. FreeRTOS is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
more details. You should have received a copy of the GNU General Public
|
||||
License and the FreeRTOS license exception along with FreeRTOS; if not it
|
||||
can be viewed here: http://www.freertos.org/a00114.html and also obtained
|
||||
by writing to Richard Barry, contact details for whom are available on the
|
||||
FreeRTOS WEB site.
|
||||
|
||||
1 tab == 4 spaces!
|
||||
|
||||
http://www.FreeRTOS.org - Documentation, latest information, license and
|
||||
contact details.
|
||||
|
||||
http://www.SafeRTOS.com - A version that is certified for use in safety
|
||||
critical systems.
|
||||
|
||||
http://www.OpenRTOS.com - Commercial support, development, porting,
|
||||
licensing and training services.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef PORTMACRO_H
|
||||
#define PORTMACRO_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------------
|
||||
* Port specific definitions.
|
||||
*
|
||||
* The settings in this file configure FreeRTOS correctly for the
|
||||
* given hardware and compiler.
|
||||
*
|
||||
* These settings should not be altered.
|
||||
*-----------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* Type definitions. */
|
||||
#define portCHAR char
|
||||
#define portFLOAT float
|
||||
#define portDOUBLE double
|
||||
#define portLONG long
|
||||
#define portSHORT short
|
||||
#define portSTACK_TYPE unsigned portLONG
|
||||
#define portBASE_TYPE long
|
||||
|
||||
#if( configUSE_16_BIT_TICKS == 1 )
|
||||
typedef unsigned portSHORT portTickType;
|
||||
#define portMAX_DELAY ( portTickType ) 0xffff
|
||||
#else
|
||||
typedef unsigned portLONG portTickType;
|
||||
#define portMAX_DELAY ( portTickType ) 0xffffffff
|
||||
#endif
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Architecture specifics. */
|
||||
#define portSTACK_GROWTH ( -1 )
|
||||
#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ )
|
||||
#define portBYTE_ALIGNMENT 8
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
/* Scheduler utilities. */
|
||||
extern void vPortYieldFromISR( void );
|
||||
|
||||
#define portYIELD() vPortYieldFromISR()
|
||||
|
||||
#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR()
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
/* Critical section management. */
|
||||
|
||||
/*
|
||||
* Set basepri to portMAX_SYSCALL_INTERRUPT_PRIORITY without effecting other
|
||||
* registers. r0 is clobbered.
|
||||
*/
|
||||
#define portSET_INTERRUPT_MASK() __set_BASEPRI( configMAX_SYSCALL_INTERRUPT_PRIORITY )
|
||||
|
||||
/*
|
||||
* Set basepri back to 0 without effective other registers.
|
||||
* r0 is clobbered.
|
||||
*/
|
||||
#define portCLEAR_INTERRUPT_MASK() __set_BASEPRI( 0 )
|
||||
|
||||
#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK()
|
||||
#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x
|
||||
|
||||
|
||||
extern void vPortEnterCritical( void );
|
||||
extern void vPortExitCritical( void );
|
||||
|
||||
#define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK()
|
||||
#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK()
|
||||
#define portENTER_CRITICAL() vPortEnterCritical()
|
||||
#define portEXIT_CRITICAL() vPortExitCritical()
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
/* Task function macros as described on the FreeRTOS.org WEB site. */
|
||||
#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )
|
||||
#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )
|
||||
|
||||
#define portNOP()
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* PORTMACRO_H */
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
// TASKING VX-toolset for ARM
|
||||
// Project linker script file
|
||||
//
|
||||
#if defined(__PROC_XMC4500X1024__)
|
||||
#include "xmc45xx.lsl"
|
||||
#else
|
||||
#include <device.lsl>
|
||||
#endif
|
||||
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
** @(#)cstart.c 1.8 $E%
|
||||
**
|
||||
** Copyright 1997-2012 Altium BV *
|
||||
**
|
||||
** DESCRIPTION:
|
||||
**
|
||||
** The system startup code initializes the processor's registers
|
||||
** and the application C variables.
|
||||
**
|
||||
*/
|
||||
|
||||
#pragma nomisrac
|
||||
#pragma profiling off /* prevent profiling information on cstart */
|
||||
#pragma optimize abcefgIJKlopRsUy /* preset optimization level */
|
||||
#pragma tradeoff 4 /* preset tradeoff level */
|
||||
#pragma runtime BCMSZ /* disable runtime error checking for cstart */
|
||||
#pragma warning 750 /* do not warn about unsaved registers */
|
||||
#pragma section .text=cstart /* use: .text.cstart as the section name */
|
||||
#pragma alias Reset_Handler = _START /* requirement for CMSIS */
|
||||
#pragma extern Reset_Handler /* required for mil-linking with CMSIS */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <dbg.h>
|
||||
|
||||
#define VTOR (*(volatile unsigned int *)0xE000ED08)
|
||||
#define PREF_PCON (*(volatile unsigned int *)0x58004000)
|
||||
#define SCU_GCU_PEEN (*(volatile unsigned int *)0x5000413C)
|
||||
#define SCU_GCU_PEFLAG (*(volatile unsigned int *)0x50004150)
|
||||
|
||||
|
||||
extern unsigned char _lc_ub_stack[];
|
||||
extern unsigned char _lc_vtor_value[];
|
||||
|
||||
#pragma weak exit
|
||||
#pragma extern _Exit
|
||||
#pragma extern main
|
||||
extern int main( int argc, char *argv[] );
|
||||
extern void SystemInit( void );
|
||||
extern void __init( void );
|
||||
#if __PROF_ENABLE__
|
||||
extern void __prof_init( void );
|
||||
#endif
|
||||
|
||||
#ifdef __POSIX__
|
||||
extern void * _posix_boot_stack_top;
|
||||
extern int posix_main( void );
|
||||
#endif
|
||||
|
||||
#ifdef __USE_ARGC_ARGV
|
||||
#ifndef __ARGCV_BUFSIZE
|
||||
#define __ARGCV_BUFSIZE 256
|
||||
#endif
|
||||
static char argcv[__ARGCV_BUFSIZE];
|
||||
#endif
|
||||
|
||||
void __interrupt() __frame() _START( void )
|
||||
{
|
||||
PREF_PCON |= 0x00010000; /* Disable Branch prediction */
|
||||
SCU_GCU_PEFLAG =0xFFFFFFFF; /* Clear existing parity errors if any */
|
||||
SCU_GCU_PEEN = 0; /* Disable parity */
|
||||
|
||||
/*
|
||||
* Anticipate possible ROM/RAM remapping
|
||||
* by loading the 'real' program address.
|
||||
*/
|
||||
__remap_pc();
|
||||
/*
|
||||
* Initialize stack pointer.
|
||||
*/
|
||||
__setsp( _lc_ub_stack );
|
||||
/*
|
||||
* Call a user function which initializes hardware,
|
||||
* such as ROM/RAM re-mapping or MMU configuration.
|
||||
*/
|
||||
SystemInit();
|
||||
/*
|
||||
* Copy initialized sections from ROM to RAM
|
||||
* and clear uninitialized data sections in RAM.
|
||||
*/
|
||||
__init();
|
||||
__asm( "_cptable_handled:" ); /* symbol may be used by debugger */
|
||||
|
||||
/*
|
||||
* Load VTOR register with the actual vector table
|
||||
* start address
|
||||
*/
|
||||
VTOR = (unsigned int)_lc_vtor_value;
|
||||
|
||||
#ifdef __POSIX__
|
||||
__setsp( _posix_boot_stack_top );
|
||||
#endif
|
||||
#if __PROF_ENABLE__
|
||||
__prof_init();
|
||||
#endif
|
||||
#ifdef __POSIX__
|
||||
exit( posix_main() );
|
||||
#elif defined __USE_ARGC_ARGV
|
||||
exit( main( _argcv( argcv, __ARGCV_BUFSIZE ), (char **)argcv ) );
|
||||
#else
|
||||
exit( main( 0, NULL ) );
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user