diff --git a/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h b/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
index 407653ea2..d21e4d48d 100644
--- a/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
+++ b/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
@@ -52,10 +52,11 @@
*/
-/* The following #error directive is to remind users that a batch file must be
+/*
+ * The following #error directive is to remind users that a batch file must be
* executed prior to this project being built. The batch file *cannot* be
- * executed from within CCS4! Once it has been executed, re-open or refresh
- * the CCS4 project and remove the #error line below.
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
*/
#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
diff --git a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h b/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
index cfda4838e..2a184ff48 100644
--- a/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
+++ b/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
@@ -54,6 +54,14 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
#include "LPC17xx.h"
/*-----------------------------------------------------------
diff --git a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h b/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
index 1f0fc4c86..d22858669 100644
--- a/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
+++ b/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
@@ -55,6 +55,14 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
/*-----------------------------------------------------------
* Application specific definitions.
*
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat b/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat
index ed8c106c6..7ffb1cdee 100644
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat
+++ b/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/CreateProjectDirectoryStructure.bat
@@ -17,7 +17,8 @@ IF EXIST src\FreeRTOS_Source Goto END
REM Create the required directory structure.
MD src\FreeRTOS_Source
- MD src\FreeRTOS_Source\include
+ MD src\FreeRTOS_Source\include
+ MD src\FreeRTOS_Source\portable
MD src\FreeRTOS_Source\portable\GCC
MD src\FreeRTOS_Source\portable\GCC\ARM_CM4F
MD src\FreeRTOS_Source\portable\MemMang
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h b/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
index 65b233fc0..39ddd6d7d 100644
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
+++ b/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
@@ -55,6 +55,13 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
/*-----------------------------------------------------------
* Application specific definitions.
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject
index ac60aeaeb..678730da7 100644
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject
+++ b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/.cproject
@@ -55,11 +55,7 @@
- TASKING VX-toolset for ARM Cortex: object linker v4.2r1 Build 135 SN 00521976
- TASKING VX-toolset for ARM Cortex: control program v4.2r1 Build 118
- TASKING VX-toolset for ARM Cortex: assembler v4.2r1 Build 141
TASKING program builder v4.2r1 Build 063
- TASKING VX-toolset for ARM Cortex: C compiler v4.2r1 Build 652 SN 00521976
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat
new file mode 100644
index 000000000..65b7e627a
--- /dev/null
+++ b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/CreateProjectDirectoryStructure.bat
@@ -0,0 +1,59 @@
+REM This file should be executed from the command line prior to the first
+REM build. It will be necessary to refresh the Eclipse project once the
+REM .bat file has been executed (normally just press F5 to refresh).
+
+REM Copies all the required files from their location within the standard
+REM FreeRTOS directory structure to under the Eclipse project directory.
+REM This permits the Eclipse project to be used in 'managed' mode and without
+REM having to setup any linked resources.
+
+REM Standard paths
+SET FREERTOS_SOURCE=..\..\Source
+SET COMMON_SOURCE=..\Common\minimal
+SET COMMON_INCLUDE=..\Common\include
+
+REM Have the files already been copied?
+IF EXIST FreeRTOS_Source Goto END
+
+ REM Create the required directory structure.
+ MD FreeRTOS_Source
+ MD FreeRTOS_Source\include
+ MD FreeRTOS_Source\portable\
+ MD FreeRTOS_Source\portable\Tasking
+ MD FreeRTOS_Source\portable\Tasking\ARM_CM4F
+ MD FreeRTOS_Source\portable\MemMang
+ MD Common_Demo_Source
+ MD Common_Demo_Source\include
+
+ REM Copy the core kernel files into the SDK projects directory
+ copy %FREERTOS_SOURCE%\tasks.c FreeRTOS_Source
+ copy %FREERTOS_SOURCE%\queue.c FreeRTOS_Source
+ copy %FREERTOS_SOURCE%\list.c FreeRTOS_Source
+ copy %FREERTOS_SOURCE%\timers.c FreeRTOS_Source
+
+ REM Copy the common header files into the SDK projects directory
+ copy %FREERTOS_SOURCE%\include\*.* FreeRTOS_Source\include
+
+ REM Copy the portable layer files into the projects directory
+ copy %FREERTOS_SOURCE%\portable\Tasking\ARM_CM4F\*.* FreeRTOS_Source\portable\Tasking\ARM_CM4F
+
+ REM Copy the basic memory allocation files into the SDK projects directory
+ copy %FREERTOS_SOURCE%\portable\MemMang\heap_2.c FreeRTOS_Source\portable\MemMang
+
+ REM Copy the files that define the common demo tasks.
+ copy %COMMON_SOURCE%\dynamic.c Common_Demo_Source
+ copy %COMMON_SOURCE%\BlockQ.c Common_Demo_Source
+ copy %COMMON_SOURCE%\death.c Common_Demo_Source
+ copy %COMMON_SOURCE%\blocktim.c Common_Demo_Source
+ copy %COMMON_SOURCE%\semtest.c Common_Demo_Source
+ copy %COMMON_SOURCE%\PollQ.c Common_Demo_Source
+ copy %COMMON_SOURCE%\GenQTest.c Common_Demo_Source
+ copy %COMMON_SOURCE%\recmutex.c Common_Demo_Source
+ copy %COMMON_SOURCE%\sp_flop.c Common_Demo_Source
+ copy %COMMON_SOURCE%\countsem.c Common_Demo_Source
+ copy %COMMON_SOURCE%\integer.c Common_Demo_Source
+
+ REM Copy the common demo file headers.
+ copy %COMMON_INCLUDE%\*.h Common_Demo_Source\include
+
+: END
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
index bc8fcf3c0..41228ef6c 100644
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
+++ b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
@@ -68,6 +68,14 @@
* See http://www.freertos.org/a00110.html.
*----------------------------------------------------------*/
+ /*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
#include
extern uint32_t SystemCoreClock;
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/port.c b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/port.c
deleted file mode 100644
index 2e34b8737..000000000
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/port.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/*
- 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.
-*/
-
-/*-----------------------------------------------------------
- * Implementation of functions defined in portable.h for the ARM CM4F port.
- *----------------------------------------------------------*/
-
-/* Scheduler includes. */
-#include "FreeRTOS.h"
-#include "task.h"
-
-/* Constants required to manipulate the NVIC. */
-#define portNVIC_SYSTICK_CTRL ( ( volatile unsigned long * ) 0xe000e010 )
-#define portNVIC_SYSTICK_LOAD ( ( volatile unsigned long * ) 0xe000e014 )
-#define portNVIC_INT_CTRL ( ( volatile unsigned long * ) 0xe000ed04 )
-#define portNVIC_SYSPRI2 ( ( volatile unsigned long * ) 0xe000ed20 )
-#define portNVIC_SYSTICK_CLK 0x00000004
-#define portNVIC_SYSTICK_INT 0x00000002
-#define portNVIC_SYSTICK_ENABLE 0x00000001
-#define portNVIC_PENDSVSET 0x10000000
-#define portNVIC_PENDSV_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 16 )
-#define portNVIC_SYSTICK_PRI ( ( ( unsigned long ) configKERNEL_INTERRUPT_PRIORITY ) << 24 )
-
-/* Constants required to manipulate the VFP. */
-#define portFPCCR ( ( volatile unsigned long * ) 0xe000ef34 ) /* Floating point context control register. */
-#define portASPEN_AND_LSPEN_BITS ( 0x3UL << 30UL )
-
-/* Constants required to set up the initial stack. */
-#define portINITIAL_XPSR ( 0x01000000 )
-#define portINITIAL_EXEC_RETURN ( 0xfffffffd )
-
-/* The priority used by the kernel is assigned to a variable to make access
-from inline assembler easier. */
-const unsigned long ulKernelPriority = configKERNEL_INTERRUPT_PRIORITY;
-
-/* Each task maintains its own interrupt status in the critical nesting
-variable. */
-static unsigned long ulCriticalNesting = 0xaaaaaaaaUL;
-
-/*
- * Setup the timer to generate the tick interrupts.
- */
-static void prvSetupTimerInterrupt( void );
-
-/*
- * Exception handlers.
- */
-void SysTick_Handler( void );
-
-/*
- * Functions defined in port_asm.asm.
- */
-extern void vPortEnableVFP( void );
-extern void vPortStartFirstTask( void );
-
-/* This exists purely to allow the const to be used from within the
-port_asm.asm assembly file. */
-const unsigned long ulMaxSyscallInterruptPriorityConst = configMAX_SYSCALL_INTERRUPT_PRIORITY;
-
-/*-----------------------------------------------------------*/
-
-/*
- * See header file for description.
- */
-portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters )
-{
- /* Simulate the stack frame as it would be created by a context switch
- interrupt. */
-
- /* Offset added to account for the way the MCU uses the stack on entry/exit
- of interrupts, and to ensure alignment. */
- pxTopOfStack -= 2;
-
- *pxTopOfStack = portINITIAL_XPSR; /* xPSR */
- pxTopOfStack--;
- *pxTopOfStack = ( portSTACK_TYPE ) pxCode; /* PC */
- pxTopOfStack--;
- *pxTopOfStack = 0; /* LR */
-
- /* Save code space by skipping register initialisation. */
- pxTopOfStack -= 5; /* R12, R3, R2 and R1. */
- *pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */
-
- /* A save method is being used that requiers each task to maintain its
- own exec return value. */
- pxTopOfStack--;
- *pxTopOfStack = portINITIAL_EXEC_RETURN;
-
- pxTopOfStack -= 8; /* R11, R10, R9, R8, R7, R6, R5 and R4. */
-
- return pxTopOfStack;
-}
-/*-----------------------------------------------------------*/
-
-/*
- * See header file for description.
- */
-portBASE_TYPE xPortStartScheduler( void )
-{
- /* Make PendSV and SysTick the lowest priority interrupts. */
- *(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;
- *(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI;
-
- /* Start the timer that generates the tick ISR. Interrupts are disabled
- here already. */
- prvSetupTimerInterrupt();
-
- /* Initialise the critical nesting count ready for the first task. */
- ulCriticalNesting = 0;
-
- /* Ensure the VFP is enabled - it should be anyway. */
- vPortEnableVFP();
-
- /* Lazy save always. */
- *( portFPCCR ) |= portASPEN_AND_LSPEN_BITS;
-
- /* Start the first task. */
- vPortStartFirstTask();
-
- /* Should not get here! */
- return 0;
-}
-/*-----------------------------------------------------------*/
-
-void vPortEndScheduler( void )
-{
- /* It is unlikely that the CM4F port will require this function as there
- is nothing to return to. */
-}
-/*-----------------------------------------------------------*/
-
-void vPortYieldFromISR( void )
-{
- /* Set a PendSV to request a context switch. */
- *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;
-}
-/*-----------------------------------------------------------*/
-
-void vPortEnterCritical( void )
-{
- portDISABLE_INTERRUPTS();
- ulCriticalNesting++;
-}
-/*-----------------------------------------------------------*/
-
-void vPortExitCritical( void )
-{
- ulCriticalNesting--;
- if( ulCriticalNesting == 0 )
- {
- portENABLE_INTERRUPTS();
- }
-}
-/*-----------------------------------------------------------*/
-
-void SysTick_Handler( void )
-{
-unsigned long ulDummy;
-
- /* If using preemption, also force a context switch. */
- #if configUSE_PREEMPTION == 1
- *(portNVIC_INT_CTRL) = portNVIC_PENDSVSET;
- #endif
-
- ulDummy = portSET_INTERRUPT_MASK_FROM_ISR();
- {
- vTaskIncrementTick();
- }
- portCLEAR_INTERRUPT_MASK_FROM_ISR( ulDummy );
-}
-/*-----------------------------------------------------------*/
-
-/*
- * Setup the systick timer to generate the tick interrupts at the required
- * frequency.
- */
-void prvSetupTimerInterrupt( void )
-{
- /* Configure SysTick to interrupt at the requested rate. */
- *(portNVIC_SYSTICK_LOAD) = ( configCPU_CLOCK_HZ / configTICK_RATE_HZ ) - 1UL;
- *(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;
-}
-/*-----------------------------------------------------------*/
-
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/port_asm.asm b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/port_asm.asm
deleted file mode 100644
index 3f9dd6de7..000000000
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/port_asm.asm
+++ /dev/null
@@ -1,168 +0,0 @@
-;/*
-; 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.w 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.w r0, =ulMaxSyscallInterruptPriorityConst
- 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.w 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.w 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.w 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
-
diff --git a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/portmacro.h b/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/portmacro.h
deleted file mode 100644
index 2f671fba1..000000000
--- a/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOS_Source/portable/Tasking/ARM_CM4F/portmacro.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- 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 */
-
diff --git a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h b/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
index eee498453..9e45f8679 100644
--- a/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
+++ b/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
@@ -54,6 +54,14 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
#include "LPC17xx.h"
/*-----------------------------------------------------------
diff --git a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h b/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
index e320f7590..323dfda06 100644
--- a/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
+++ b/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
@@ -57,7 +57,7 @@
* executed from within CCS4! Once it has been executed, re-open or refresh
* the CCS4 project and remove the #error line below.
*/
-//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
#ifndef FREERTOS_CONFIG_H
diff --git a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h b/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
index 942ac72d0..089bd7c9d 100644
--- a/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
+++ b/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
@@ -58,7 +58,7 @@
* from within the Xilinx SDK. Once it has been executed, re-open or refresh
* the Eclipse project and remove the #error line below.
*/
-//#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
#ifndef FREERTOS_CONFIG_H
diff --git a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h b/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
index 4ee8fb20a..710c9f62a 100644
--- a/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
+++ b/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
@@ -54,6 +54,14 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
#include "system.h"
/*-----------------------------------------------------------
diff --git a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h b/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
index c92f8029d..d5e1ede27 100644
--- a/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
+++ b/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
@@ -54,6 +54,14 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
/*-----------------------------------------------------------
* Application specific definitions.
*
diff --git a/Demo/WIN32-MingW/FreeRTOSConfig.h b/Demo/WIN32-MingW/FreeRTOSConfig.h
index 0c6b3172d..9957fd7f3 100644
--- a/Demo/WIN32-MingW/FreeRTOSConfig.h
+++ b/Demo/WIN32-MingW/FreeRTOSConfig.h
@@ -55,6 +55,14 @@
#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H
+/*
+ * The following #error directive is to remind users that a batch file must be
+ * executed prior to this project being built. The batch file *cannot* be
+ * executed from within the IDE! Once it has been executed, re-open or refresh
+ * the Eclipse project and remove the #error line below.
+ */
+#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above.
+
/*-----------------------------------------------------------
* Application specific definitions.
*