*/\r
\r
\r
-/* The following #error directive is to remind users that a batch file must be\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
* executed prior to this project being built. The batch file *cannot* be \r
- * executed from within CCS4! Once it has been executed, re-open or refresh \r
- * the CCS4 project and remove the #error line below.\r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
*/\r
#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
\r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
#include "LPC17xx.h"\r
\r
/*-----------------------------------------------------------\r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
/*-----------------------------------------------------------\r
* Application specific definitions.\r
*\r
\r
REM Create the required directory structure.\r
MD src\FreeRTOS_Source\r
- MD src\FreeRTOS_Source\include \r
+ MD src\FreeRTOS_Source\include\r
+ MD src\FreeRTOS_Source\portable\r
MD src\FreeRTOS_Source\portable\GCC\r
MD src\FreeRTOS_Source\portable\GCC\ARM_CM4F\r
MD src\FreeRTOS_Source\portable\MemMang \r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
\r
/*-----------------------------------------------------------\r
* Application specific definitions.\r
</storageModule>\r
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
<storageModule moduleId="com.tasking.toolInfo">\r
- <toolInfo>TASKING VX-toolset for ARM Cortex: object linker v4.2r1 Build 135 SN 00521976</toolInfo>\r
- <toolInfo>TASKING VX-toolset for ARM Cortex: control program v4.2r1 Build 118</toolInfo>\r
- <toolInfo>TASKING VX-toolset for ARM Cortex: assembler v4.2r1 Build 141</toolInfo>\r
<toolInfo>TASKING program builder v4.2r1 Build 063</toolInfo>\r
- <toolInfo>TASKING VX-toolset for ARM Cortex: C compiler v4.2r1 Build 652 SN 00521976</toolInfo>\r
</storageModule>\r
</cconfiguration>\r
<cconfiguration id="com.tasking.config.arm.abs.debug.1826238485.654381753">\r
--- /dev/null
+REM This file should be executed from the command line prior to the first\r
+REM build. It will be necessary to refresh the Eclipse project once the\r
+REM .bat file has been executed (normally just press F5 to refresh).\r
+\r
+REM Copies all the required files from their location within the standard\r
+REM FreeRTOS directory structure to under the Eclipse project directory.\r
+REM This permits the Eclipse project to be used in 'managed' mode and without\r
+REM having to setup any linked resources.\r
+\r
+REM Standard paths\r
+SET FREERTOS_SOURCE=..\..\Source\r
+SET COMMON_SOURCE=..\Common\minimal\r
+SET COMMON_INCLUDE=..\Common\include\r
+\r
+REM Have the files already been copied?\r
+IF EXIST FreeRTOS_Source Goto END\r
+\r
+ REM Create the required directory structure.\r
+ MD FreeRTOS_Source\r
+ MD FreeRTOS_Source\include \r
+ MD FreeRTOS_Source\portable\\r
+ MD FreeRTOS_Source\portable\Tasking\r
+ MD FreeRTOS_Source\portable\Tasking\ARM_CM4F\r
+ MD FreeRTOS_Source\portable\MemMang \r
+ MD Common_Demo_Source\r
+ MD Common_Demo_Source\include\r
+ \r
+ REM Copy the core kernel files into the SDK projects directory\r
+ copy %FREERTOS_SOURCE%\tasks.c FreeRTOS_Source\r
+ copy %FREERTOS_SOURCE%\queue.c FreeRTOS_Source\r
+ copy %FREERTOS_SOURCE%\list.c FreeRTOS_Source\r
+ copy %FREERTOS_SOURCE%\timers.c FreeRTOS_Source\r
+\r
+ REM Copy the common header files into the SDK projects directory\r
+ copy %FREERTOS_SOURCE%\include\*.* FreeRTOS_Source\include\r
+ \r
+ REM Copy the portable layer files into the projects directory\r
+ copy %FREERTOS_SOURCE%\portable\Tasking\ARM_CM4F\*.* FreeRTOS_Source\portable\Tasking\ARM_CM4F\r
+ \r
+ REM Copy the basic memory allocation files into the SDK projects directory\r
+ copy %FREERTOS_SOURCE%\portable\MemMang\heap_2.c FreeRTOS_Source\portable\MemMang\r
+\r
+ REM Copy the files that define the common demo tasks.\r
+ copy %COMMON_SOURCE%\dynamic.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\BlockQ.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\death.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\blocktim.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\semtest.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\PollQ.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\GenQTest.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\recmutex.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\sp_flop.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\countsem.c Common_Demo_Source\r
+ copy %COMMON_SOURCE%\integer.c Common_Demo_Source\r
+ \r
+ REM Copy the common demo file headers.\r
+ copy %COMMON_INCLUDE%\*.h Common_Demo_Source\include\r
+ \r
+: END\r
* See http://www.freertos.org/a00110.html.\r
*----------------------------------------------------------*/\r
\r
+ /* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
#include <stdint.h>\r
extern uint32_t SystemCoreClock;\r
\r
+++ /dev/null
-/*\r
- FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS tutorial books are available in pdf and paperback. *\r
- * Complete, revised, and edited pdf reference manuals are also *\r
- * available. *\r
- * *\r
- * Purchasing FreeRTOS documentation will not only help you, by *\r
- * ensuring you get running as quickly as possible and with an *\r
- * in-depth knowledge of how to use FreeRTOS, it will also help *\r
- * the FreeRTOS project to continue with its mission of providing *\r
- * professional grade, cross platform, de facto standard solutions *\r
- * for microcontrollers - completely free of charge! *\r
- * *\r
- * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *\r
- * *\r
- * Thank you for using FreeRTOS, and thank you for your support! *\r
- * *\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
- >>>NOTE<<< The modification to the GPL is included to allow you to\r
- distribute a combined work that includes FreeRTOS without being obliged to\r
- provide the source code for proprietary components outside of the FreeRTOS\r
- kernel. FreeRTOS is distributed in the hope that it will be useful, but\r
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
- more details. You should have received a copy of the GNU General Public\r
- License and the FreeRTOS license exception along with FreeRTOS; if not it\r
- can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
- by writing to Richard Barry, contact details for whom are available on the\r
- FreeRTOS WEB site.\r
-\r
- 1 tab == 4 spaces!\r
-\r
- http://www.FreeRTOS.org - Documentation, latest information, license and\r
- contact details.\r
-\r
- http://www.SafeRTOS.com - A version that is certified for use in safety\r
- critical systems.\r
-\r
- http://www.OpenRTOS.com - Commercial support, development, porting,\r
- licensing and training services.\r
-*/\r
-\r
-/*-----------------------------------------------------------\r
- * Implementation of functions defined in portable.h for the ARM CM4F port.\r
- *----------------------------------------------------------*/\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Constants required to manipulate the NVIC. */\r
-#define portNVIC_SYSTICK_CTRL ( ( volatile unsigned long * ) 0xe000e010 )\r
-#define portNVIC_SYSTICK_LOAD ( ( volatile unsigned long * ) 0xe000e014 )\r
-#define portNVIC_INT_CTRL ( ( volatile unsigned long * ) 0xe000ed04 )\r
-#define portNVIC_SYSPRI2 ( ( volatile unsigned long * ) 0xe000ed20 )\r
-#define portNVIC_SYSTICK_CLK 0x00000004\r
-#define portNVIC_SYSTICK_INT 0x00000002\r
-#define portNVIC_SYSTICK_ENABLE 0x00000001\r
-#define portNVIC_PENDSVSET 0x10000000\r
-#define portNVIC_PENDSV_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 16 )\r
-#define portNVIC_SYSTICK_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24 )\r
-\r
-/* Constants required to manipulate the VFP. */\r
-#define portFPCCR ( ( volatile unsigned long * ) 0xe000ef34 ) /* Floating point context control register. */\r
-#define portASPEN_AND_LSPEN_BITS ( 0x3UL << 30UL )\r
-\r
-/* Constants required to set up the initial stack. */\r
-#define portINITIAL_XPSR ( 0x01000000 )\r
-#define portINITIAL_EXEC_RETURN ( 0xfffffffd )\r
-\r
-/* The priority used by the kernel is assigned to a variable to make access\r
-from inline assembler easier. */\r
-const unsigned long ulKernelPriority = configKERNEL_INTERRUPT_PRIORITY;\r
-\r
-/* Each task maintains its own interrupt status in the critical nesting\r
-variable. */\r
-static unsigned long ulCriticalNesting = 0xaaaaaaaaUL;\r
-\r
-/*\r
- * Setup the timer to generate the tick interrupts.\r
- */\r
-static void prvSetupTimerInterrupt( void );\r
-\r
-/*\r
- * Exception handlers.\r
- */\r
-void SysTick_Handler( void );\r
-\r
-/*\r
- * Functions defined in port_asm.asm.\r
- */\r
-extern void vPortEnableVFP( void );\r
-extern void vPortStartFirstTask( void );\r
-\r
-/* This exists purely to allow the const to be used from within the\r
-port_asm.asm assembly file. */\r
-const unsigned long ulMaxSyscallInterruptPriorityConst = configMAX_SYSCALL_INTERRUPT_PRIORITY;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * See header file for description.\r
- */\r
-portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )\r
-{\r
- /* Simulate the stack frame as it would be created by a context switch\r
- interrupt. */\r
-\r
- /* Offset added to account for the way the MCU uses the stack on entry/exit\r
- of interrupts, and to ensure alignment. */\r
- pxTopOfStack -= 2;\r
-\r
- *pxTopOfStack = portINITIAL_XPSR; /* xPSR */\r
- pxTopOfStack--;\r
- *pxTopOfStack = ( portSTACK_TYPE ) pxCode; /* PC */\r
- pxTopOfStack--;\r
- *pxTopOfStack = 0; /* LR */\r
-\r
- /* Save code space by skipping register initialisation. */\r
- pxTopOfStack -= 5; /* R12, R3, R2 and R1. */\r
- *pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */\r
-\r
- /* A save method is being used that requiers each task to maintain its\r
- own exec return value. */\r
- pxTopOfStack--;\r
- *pxTopOfStack = portINITIAL_EXEC_RETURN;\r
-\r
- pxTopOfStack -= 8; /* R11, R10, R9, R8, R7, R6, R5 and R4. */\r
-\r
- return pxTopOfStack;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * See header file for description.\r
- */\r
-portBASE_TYPE xPortStartScheduler( void )\r
-{\r
- /* Make PendSV and SysTick the lowest priority interrupts. */\r
- *(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;\r
- *(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI;\r
-\r
- /* Start the timer that generates the tick ISR. Interrupts are disabled\r
- here already. */\r
- prvSetupTimerInterrupt();\r
-\r
- /* Initialise the critical nesting count ready for the first task. */\r
- ulCriticalNesting = 0;\r
-\r
- /* Ensure the VFP is enabled - it should be anyway. */\r
- vPortEnableVFP();\r
-\r
- /* Lazy save always. */\r
- *( portFPCCR ) |= portASPEN_AND_LSPEN_BITS;\r
-\r
- /* Start the first task. */\r
- vPortStartFirstTask();\r
-\r
- /* Should not get here! */\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vPortEndScheduler( void )\r
-{\r
- /* It is unlikely that the CM4F port will require this function as there\r
- is nothing to return to. */\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vPortYieldFromISR( void )\r
-{\r
- /* Set a PendSV to request a context switch. */\r
- *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vPortEnterCritical( void )\r
-{\r
- portDISABLE_INTERRUPTS();\r
- ulCriticalNesting++;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vPortExitCritical( void )\r
-{\r
- ulCriticalNesting--;\r
- if( ulCriticalNesting == 0 )\r
- {\r
- portENABLE_INTERRUPTS();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void SysTick_Handler( void )\r
-{\r
-unsigned long ulDummy;\r
-\r
- /* If using preemption, also force a context switch. */\r
- #if configUSE_PREEMPTION == 1\r
- *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;\r
- #endif\r
-\r
- ulDummy = portSET_INTERRUPT_MASK_FROM_ISR();\r
- {\r
- vTaskIncrementTick();\r
- }\r
- portCLEAR_INTERRUPT_MASK_FROM_ISR( ulDummy );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * Setup the systick timer to generate the tick interrupts at the required\r
- * frequency.\r
- */\r
-void prvSetupTimerInterrupt( void )\r
-{\r
- /* Configure SysTick to interrupt at the requested rate. */\r
- *(portNVIC_SYSTICK_LOAD) = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;\r
- *(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
+++ /dev/null
-;/*\r
-; FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
-;\r
-;\r
-; ***************************************************************************\r
-; * *\r
-; * FreeRTOS tutorial books are available in pdf and paperback. *\r
-; * Complete, revised, and edited pdf reference manuals are also *\r
-; * available. *\r
-; * *\r
-; * Purchasing FreeRTOS documentation will not only help you, by *\r
-; * ensuring you get running as quickly as possible and with an *\r
-; * in-depth knowledge of how to use FreeRTOS, it will also help *\r
-; * the FreeRTOS project to continue with its mission of providing *\r
-; * professional grade, cross platform, de facto standard solutions *\r
-; * for microcontrollers - completely free of charge! *\r
-; * *\r
-; * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *\r
-; * *\r
-; * Thank you for using FreeRTOS, and thank you for your support! *\r
-; * *\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
-; >>>NOTE<<< The modification to the GPL is included to allow you to\r
-; distribute a combined work that includes FreeRTOS without being obliged to\r
-; provide the source code for proprietary components outside of the FreeRTOS\r
-; kernel. FreeRTOS is distributed in the hope that it will be useful, but\r
-; WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
-; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
-; more details. You should have received a copy of the GNU General Public\r
-; License and the FreeRTOS license exception along with FreeRTOS; if not it\r
-; can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
-; by writing to Richard Barry, contact details for whom are available on the\r
-; FreeRTOS WEB site.\r
-;\r
-; 1 tab == 4 spaces!\r
-;\r
-; http://www.FreeRTOS.org - Documentation, latest information, license and\r
-; contact details.\r
-;\r
-; http://www.SafeRTOS.com - A version that is certified for use in safety\r
-; critical systems.\r
-;\r
-; http://www.OpenRTOS.com - Commercial support, development, porting,\r
-; licensing and training services.\r
-;*/\r
-\r
- .extern pxCurrentTCB\r
- .extern vTaskSwitchContext\r
- .extern ulMaxSyscallInterruptPriorityConst\r
-\r
- .global PendSV_Handler\r
- .global SVC_Handler\r
- .global vPortStartFirstTask\r
- .global vPortEnableVFP\r
- \r
-;-----------------------------------------------------------\r
-\r
- .section .text\r
- .thumb\r
- .align 4\r
-PendSV_Handler: .type func\r
- mrs r0, psp\r
-\r
- ;Get the location of the current TCB.\r
- ldr.w r3, =pxCurrentTCB\r
- ldr r2, [r3]\r
-\r
- ;Is the task using the FPU context? If so, push high vfp registers.\r
- tst r14, #0x10\r
- it eq\r
- vstmdbeq r0!, {s16-s31}\r
-\r
- ;Save the core registers.\r
- stmdb r0!, {r4-r11, r14}\r
-\r
- ;Save the new top of stack into the first member of the TCB.\r
- str r0, [r2]\r
-\r
- stmdb sp!, {r3, r14}\r
- ldr.w r0, =ulMaxSyscallInterruptPriorityConst\r
- msr basepri, r0\r
- bl vTaskSwitchContext\r
- mov r0, #0\r
- msr basepri, r0\r
- ldmia sp!, {r3, r14}\r
-\r
- ;The first item in pxCurrentTCB is the task top of stack.\r
- ldr r1, [r3]\r
- ldr r0, [r1]\r
-\r
- ;Pop the core registers.\r
- ldmia r0!, {r4-r11, r14}\r
-\r
- ;Is the task using the FPU context? If so, pop the high vfp registers too.\r
- tst r14, #0x10\r
- it eq\r
- vldmiaeq r0!, {s16-s31}\r
-\r
- msr psp, r0\r
- bx r14\r
-\r
- .size PendSV_Handler, $-PendSV_Handler\r
- .endsec\r
-\r
-;-----------------------------------------------------------\r
-\r
- .section .text\r
- .thumb\r
- .align 4\r
-SVC_Handler: .type func\r
- ;Get the location of the current TCB.\r
- ldr.w r3, =pxCurrentTCB\r
- ldr r1, [r3]\r
- ldr r0, [r1]\r
- ;Pop the core registers.\r
- ldmia r0!, {r4-r11, r14}\r
- msr psp, r0\r
- mov r0, #0\r
- msr basepri, r0\r
- bx r14\r
- .size SVC_Handler, $-SVC_Handler\r
- .endsec\r
-\r
-;-----------------------------------------------------------\r
-\r
- .section .text\r
- .thumb\r
- .align 4\r
-vPortStartFirstTask .type func\r
- ;Use the NVIC offset register to locate the stack.\r
- ldr.w r0, =0xE000ED08\r
- ldr r0, [r0]\r
- ldr r0, [r0]\r
- ;Set the msp back to the start of the stack.\r
- msr msp, r0\r
- ;Call SVC to start the first task.\r
- cpsie i\r
- svc 0\r
- .size vPortStartFirstTask, $-vPortStartFirstTask\r
- .endsec\r
-\r
-;-----------------------------------------------------------\r
-\r
- .section .text\r
- .thumb\r
- .align 4\r
-vPortEnableVFP .type func\r
- ;The FPU enable bits are in the CPACR.\r
- ldr.w r0, =0xE000ED88\r
- ldr r1, [r0]\r
-\r
- ;Enable CP10 and CP11 coprocessors, then save back.\r
- orr r1, r1, #( 0xf << 20 )\r
- str r1, [r0]\r
- bx r14\r
- .size vPortEnableVFP, $-vPortEnableVFP\r
- .endsec\r
-\r
-\r
- .end\r
- \r
+++ /dev/null
-/*\r
- FreeRTOS V7.1.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
- \r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS tutorial books are available in pdf and paperback. *\r
- * Complete, revised, and edited pdf reference manuals are also *\r
- * available. *\r
- * *\r
- * Purchasing FreeRTOS documentation will not only help you, by *\r
- * ensuring you get running as quickly as possible and with an *\r
- * in-depth knowledge of how to use FreeRTOS, it will also help *\r
- * the FreeRTOS project to continue with its mission of providing *\r
- * professional grade, cross platform, de facto standard solutions *\r
- * for microcontrollers - completely free of charge! *\r
- * *\r
- * >>> See http://www.FreeRTOS.org/Documentation for details. <<< *\r
- * *\r
- * Thank you for using FreeRTOS, and thank you for your support! *\r
- * *\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
- >>>NOTE<<< The modification to the GPL is included to allow you to\r
- distribute a combined work that includes FreeRTOS without being obliged to\r
- provide the source code for proprietary components outside of the FreeRTOS\r
- kernel. FreeRTOS is distributed in the hope that it will be useful, but\r
- WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for\r
- more details. You should have received a copy of the GNU General Public\r
- License and the FreeRTOS license exception along with FreeRTOS; if not it\r
- can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
- by writing to Richard Barry, contact details for whom are available on the\r
- FreeRTOS WEB site.\r
-\r
- 1 tab == 4 spaces!\r
-\r
- http://www.FreeRTOS.org - Documentation, latest information, license and\r
- contact details.\r
-\r
- http://www.SafeRTOS.com - A version that is certified for use in safety\r
- critical systems.\r
-\r
- http://www.OpenRTOS.com - Commercial support, development, porting,\r
- licensing and training services.\r
-*/\r
-\r
-\r
-#ifndef PORTMACRO_H\r
-#define PORTMACRO_H\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/*-----------------------------------------------------------\r
- * Port specific definitions. \r
- *\r
- * The settings in this file configure FreeRTOS correctly for the\r
- * given hardware and compiler.\r
- *\r
- * These settings should not be altered.\r
- *-----------------------------------------------------------\r
- */\r
-\r
-/* Type definitions. */\r
-#define portCHAR char\r
-#define portFLOAT float\r
-#define portDOUBLE double\r
-#define portLONG long\r
-#define portSHORT short\r
-#define portSTACK_TYPE unsigned portLONG\r
-#define portBASE_TYPE long\r
-\r
-#if( configUSE_16_BIT_TICKS == 1 )\r
- typedef unsigned portSHORT portTickType;\r
- #define portMAX_DELAY ( portTickType ) 0xffff\r
-#else\r
- typedef unsigned portLONG portTickType;\r
- #define portMAX_DELAY ( portTickType ) 0xffffffff\r
-#endif\r
-/*-----------------------------------------------------------*/ \r
-\r
-/* Architecture specifics. */\r
-#define portSTACK_GROWTH ( -1 )\r
-#define portTICK_RATE_MS ( ( portTickType ) 1000 / configTICK_RATE_HZ ) \r
-#define portBYTE_ALIGNMENT 8\r
-/*-----------------------------------------------------------*/ \r
-\r
-\r
-/* Scheduler utilities. */\r
-extern void vPortYieldFromISR( void );\r
-\r
-#define portYIELD() vPortYieldFromISR()\r
-\r
-#define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) vPortYieldFromISR()\r
-/*-----------------------------------------------------------*/\r
-\r
-\r
-/* Critical section management. */\r
-\r
-/* \r
- * Set basepri to portMAX_SYSCALL_INTERRUPT_PRIORITY without effecting other\r
- * registers. r0 is clobbered.\r
- */ \r
-#define portSET_INTERRUPT_MASK() __set_BASEPRI( configMAX_SYSCALL_INTERRUPT_PRIORITY )\r
- \r
-/*\r
- * Set basepri back to 0 without effective other registers.\r
- * r0 is clobbered.\r
- */\r
-#define portCLEAR_INTERRUPT_MASK() __set_BASEPRI( 0 )\r
-\r
-#define portSET_INTERRUPT_MASK_FROM_ISR() 0;portSET_INTERRUPT_MASK()\r
-#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) portCLEAR_INTERRUPT_MASK();(void)x\r
-\r
-\r
-extern void vPortEnterCritical( void );\r
-extern void vPortExitCritical( void );\r
-\r
-#define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK()\r
-#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK()\r
-#define portENTER_CRITICAL() vPortEnterCritical()\r
-#define portEXIT_CRITICAL() vPortExitCritical()\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Task function macros as described on the FreeRTOS.org WEB site. */\r
-#define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters )\r
-#define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters )\r
-\r
-#define portNOP()\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif /* PORTMACRO_H */\r
-\r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
#include "LPC17xx.h"\r
\r
/*-----------------------------------------------------------\r
* executed from within CCS4! Once it has been executed, re-open or refresh\r
* the CCS4 project and remove the #error line below.\r
*/\r
-//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
\r
\r
#ifndef FREERTOS_CONFIG_H\r
* from within the Xilinx SDK. Once it has been executed, re-open or refresh \r
* the Eclipse project and remove the #error line below.\r
*/\r
-//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
\r
\r
#ifndef FREERTOS_CONFIG_H\r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
#include "system.h"\r
\r
/*-----------------------------------------------------------\r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
/*-----------------------------------------------------------\r
* Application specific definitions.\r
*\r
#ifndef FREERTOS_CONFIG_H\r
#define FREERTOS_CONFIG_H\r
\r
+/* \r
+ * The following #error directive is to remind users that a batch file must be\r
+ * executed prior to this project being built. The batch file *cannot* be \r
+ * executed from within the IDE! Once it has been executed, re-open or refresh \r
+ * the Eclipse project and remove the #error line below.\r
+ */\r
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.\r
+\r
/*-----------------------------------------------------------\r
* Application specific definitions.\r
*\r