summaryrefslogtreecommitdiff
path: root/Source/portable
diff options
context:
space:
mode:
Diffstat (limited to 'Source/portable')
-rw-r--r--Source/portable/BCC/16BitDOS/Flsh186/port.c2
-rw-r--r--Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h2
-rw-r--r--Source/portable/BCC/16BitDOS/PC/port.c2
-rw-r--r--Source/portable/BCC/16BitDOS/PC/prtmacro.h2
-rw-r--r--Source/portable/BCC/16BitDOS/common/portasm.h2
-rw-r--r--Source/portable/BCC/16BitDOS/common/portcomn.c2
-rw-r--r--Source/portable/CodeWarrior/HCS12/port.c2
-rw-r--r--Source/portable/CodeWarrior/HCS12/portmacro.h2
-rw-r--r--Source/portable/GCC/ARM7_AT91FR40008/port.c2
-rw-r--r--Source/portable/GCC/ARM7_AT91FR40008/portISR.c2
-rw-r--r--Source/portable/GCC/ARM7_AT91FR40008/portmacro.h2
-rw-r--r--Source/portable/GCC/ARM7_AT91SAM7S/port.c2
-rw-r--r--Source/portable/GCC/ARM7_AT91SAM7S/portISR.c2
-rw-r--r--Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h2
-rw-r--r--Source/portable/GCC/ARM7_LPC2000/port.c2
-rw-r--r--Source/portable/GCC/ARM7_LPC2000/portISR.c2
-rw-r--r--Source/portable/GCC/ARM7_LPC2000/portmacro.h2
-rw-r--r--Source/portable/GCC/ARM7_LPC23xx/port.c6
-rw-r--r--Source/portable/GCC/ARM7_LPC23xx/portISR.c7
-rw-r--r--Source/portable/GCC/ARM7_LPC23xx/portmacro.h2
-rw-r--r--Source/portable/GCC/ARM_CM3/port.c85
-rw-r--r--Source/portable/GCC/ARM_CM3/portmacro.h37
-rw-r--r--Source/portable/GCC/ATMega323/port.c2
-rw-r--r--Source/portable/GCC/ATMega323/portmacro.h2
-rw-r--r--Source/portable/GCC/AVR32_UC3/port.c17
-rw-r--r--Source/portable/GCC/AVR32_UC3/portmacro.h2
-rw-r--r--Source/portable/GCC/H8S2329/port.c2
-rw-r--r--Source/portable/GCC/H8S2329/portmacro.h2
-rw-r--r--Source/portable/GCC/HCS12/port.c2
-rw-r--r--Source/portable/GCC/HCS12/portmacro.h2
-rw-r--r--Source/portable/GCC/MSP430F449/port.c2
-rw-r--r--Source/portable/GCC/MSP430F449/portmacro.h2
-rw-r--r--Source/portable/GCC/MicroBlaze/port.c2
-rw-r--r--Source/portable/GCC/MicroBlaze/portmacro.h2
-rw-r--r--Source/portable/GCC/STR75x/port.c2
-rw-r--r--Source/portable/GCC/STR75x/portISR.c2
-rw-r--r--Source/portable/GCC/STR75x/portmacro.h2
-rw-r--r--Source/portable/IAR/ARM_CM3/port.c4
-rw-r--r--Source/portable/IAR/ARM_CM3/portasm.s71
-rw-r--r--Source/portable/IAR/ARM_CM3/portmacro.h3
-rw-r--r--Source/portable/IAR/ATMega323/port.c2
-rw-r--r--Source/portable/IAR/ATMega323/portmacro.h2
-rw-r--r--Source/portable/IAR/ATMega323/portmacro.s902
-rw-r--r--Source/portable/IAR/AVR32_UC3/exception.s8242
-rw-r--r--Source/portable/IAR/AVR32_UC3/port.c15
-rw-r--r--Source/portable/IAR/AVR32_UC3/portmacro.h2
-rw-r--r--Source/portable/IAR/AtmelSAM7S64/port.c2
-rw-r--r--Source/portable/IAR/AtmelSAM7S64/portmacro.h2
-rw-r--r--Source/portable/IAR/LPC2000/port.c2
-rw-r--r--Source/portable/IAR/LPC2000/portmacro.h2
-rw-r--r--Source/portable/IAR/STR71x/port.c2
-rw-r--r--Source/portable/IAR/STR71x/portmacro.h2
-rw-r--r--Source/portable/IAR/STR75x/ISR_Support.h2
-rw-r--r--Source/portable/IAR/STR75x/port.c2
-rw-r--r--Source/portable/IAR/STR75x/portasm.s792
-rw-r--r--Source/portable/IAR/STR75x/portmacro.h2
-rw-r--r--Source/portable/IAR/STR91x/ISR_Support.h2
-rw-r--r--Source/portable/IAR/STR91x/port.c283
-rw-r--r--Source/portable/IAR/STR91x/portasm.s792
-rw-r--r--Source/portable/IAR/STR91x/portmacro.h2
-rw-r--r--Source/portable/Keil/ARM7/port.c2
-rw-r--r--Source/portable/Keil/ARM7/portISR.c2
-rw-r--r--Source/portable/Keil/ARM7/portmacro.h2
-rw-r--r--Source/portable/MPLAB/PIC18F/port.c2
-rw-r--r--Source/portable/MPLAB/PIC18F/portmacro.h2
-rw-r--r--Source/portable/MPLAB/PIC24_dsPIC/port.c2
-rw-r--r--Source/portable/MPLAB/PIC24_dsPIC/portmacro.h2
-rw-r--r--Source/portable/MemMang/heap_1.c2
-rw-r--r--Source/portable/MemMang/heap_2.c2
-rw-r--r--Source/portable/MemMang/heap_3.c2
-rw-r--r--Source/portable/Paradigm/Tern_EE/large_untested/port.c2
-rw-r--r--Source/portable/Paradigm/Tern_EE/large_untested/portasm.h2
-rw-r--r--Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h2
-rw-r--r--Source/portable/Paradigm/Tern_EE/small/port.c2
-rw-r--r--Source/portable/Paradigm/Tern_EE/small/portasm.h2
-rw-r--r--Source/portable/Paradigm/Tern_EE/small/portmacro.h2
-rw-r--r--Source/portable/RVDS/ARM_CM3/port.c33
-rw-r--r--Source/portable/RVDS/ARM_CM3/portmacro.h2
-rw-r--r--Source/portable/Rowley/MSP430F449/Port1/port.c2
-rw-r--r--Source/portable/Rowley/MSP430F449/Port1/portmacro.h2
-rw-r--r--Source/portable/Rowley/MSP430F449/Port2/port.c2
-rw-r--r--Source/portable/Rowley/MSP430F449/Port2/portmacro.h2
-rw-r--r--Source/portable/Rowley/MSP430F449/port.c2
-rw-r--r--Source/portable/Rowley/MSP430F449/portmacro.h2
-rw-r--r--Source/portable/SDCC/Cygnal/port.c2
-rw-r--r--Source/portable/SDCC/Cygnal/portmacro.h2
-rw-r--r--Source/portable/WizC/PIC18/Drivers/Tick/Tick.c2
-rw-r--r--Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c2
-rw-r--r--Source/portable/WizC/PIC18/addFreeRTOS.h2
-rw-r--r--Source/portable/WizC/PIC18/port.c2
-rw-r--r--Source/portable/WizC/PIC18/portmacro.h2
-rw-r--r--Source/portable/oWatcom/16BitDOS/Flsh186/port.c2
-rw-r--r--Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h2
-rw-r--r--Source/portable/oWatcom/16BitDOS/PC/port.c2
-rw-r--r--Source/portable/oWatcom/16BitDOS/PC/portmacro.h2
-rw-r--r--Source/portable/oWatcom/16BitDOS/common/portasm.h2
-rw-r--r--Source/portable/oWatcom/16BitDOS/common/portcomn.c2
97 files changed, 480 insertions, 293 deletions
diff --git a/Source/portable/BCC/16BitDOS/Flsh186/port.c b/Source/portable/BCC/16BitDOS/Flsh186/port.c
index 1de35857d..511020ad3 100644
--- a/Source/portable/BCC/16BitDOS/Flsh186/port.c
+++ b/Source/portable/BCC/16BitDOS/Flsh186/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h b/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
index ee3c95a24..f09ea5414 100644
--- a/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
+++ b/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/BCC/16BitDOS/PC/port.c b/Source/portable/BCC/16BitDOS/PC/port.c
index 34f692307..d49b6b1cf 100644
--- a/Source/portable/BCC/16BitDOS/PC/port.c
+++ b/Source/portable/BCC/16BitDOS/PC/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/BCC/16BitDOS/PC/prtmacro.h b/Source/portable/BCC/16BitDOS/PC/prtmacro.h
index baa0715bc..9c962aa91 100644
--- a/Source/portable/BCC/16BitDOS/PC/prtmacro.h
+++ b/Source/portable/BCC/16BitDOS/PC/prtmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/BCC/16BitDOS/common/portasm.h b/Source/portable/BCC/16BitDOS/common/portasm.h
index 6581198cb..fdc9acef2 100644
--- a/Source/portable/BCC/16BitDOS/common/portasm.h
+++ b/Source/portable/BCC/16BitDOS/common/portasm.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/BCC/16BitDOS/common/portcomn.c b/Source/portable/BCC/16BitDOS/common/portcomn.c
index 08c3cfe1d..dd7adc3ac 100644
--- a/Source/portable/BCC/16BitDOS/common/portcomn.c
+++ b/Source/portable/BCC/16BitDOS/common/portcomn.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/CodeWarrior/HCS12/port.c b/Source/portable/CodeWarrior/HCS12/port.c
index ec978ccbc..07a49ed11 100644
--- a/Source/portable/CodeWarrior/HCS12/port.c
+++ b/Source/portable/CodeWarrior/HCS12/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/CodeWarrior/HCS12/portmacro.h b/Source/portable/CodeWarrior/HCS12/portmacro.h
index 2b702c5ee..afb901527 100644
--- a/Source/portable/CodeWarrior/HCS12/portmacro.h
+++ b/Source/portable/CodeWarrior/HCS12/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/port.c b/Source/portable/GCC/ARM7_AT91FR40008/port.c
index 29a0f3762..11792ad94 100644
--- a/Source/portable/GCC/ARM7_AT91FR40008/port.c
+++ b/Source/portable/GCC/ARM7_AT91FR40008/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/portISR.c b/Source/portable/GCC/ARM7_AT91FR40008/portISR.c
index 2e2f01443..60f9d6e0c 100644
--- a/Source/portable/GCC/ARM7_AT91FR40008/portISR.c
+++ b/Source/portable/GCC/ARM7_AT91FR40008/portISR.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h b/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
index ff2b8dc16..03870c443 100644
--- a/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
+++ b/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/port.c b/Source/portable/GCC/ARM7_AT91SAM7S/port.c
index c945f130e..6c2c9dbec 100644
--- a/Source/portable/GCC/ARM7_AT91SAM7S/port.c
+++ b/Source/portable/GCC/ARM7_AT91SAM7S/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c b/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
index d575864bc..e5582cc19 100644
--- a/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
+++ b/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h b/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
index e9257d61c..53fc77d0c 100644
--- a/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
+++ b/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_LPC2000/port.c b/Source/portable/GCC/ARM7_LPC2000/port.c
index 817c7ef77..844bed489 100644
--- a/Source/portable/GCC/ARM7_LPC2000/port.c
+++ b/Source/portable/GCC/ARM7_LPC2000/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_LPC2000/portISR.c b/Source/portable/GCC/ARM7_LPC2000/portISR.c
index e0f1e7335..fe2316a38 100644
--- a/Source/portable/GCC/ARM7_LPC2000/portISR.c
+++ b/Source/portable/GCC/ARM7_LPC2000/portISR.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_LPC2000/portmacro.h b/Source/portable/GCC/ARM7_LPC2000/portmacro.h
index e9257d61c..53fc77d0c 100644
--- a/Source/portable/GCC/ARM7_LPC2000/portmacro.h
+++ b/Source/portable/GCC/ARM7_LPC2000/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM7_LPC23xx/port.c b/Source/portable/GCC/ARM7_LPC23xx/port.c
index d9a843e0d..46cac787a 100644
--- a/Source/portable/GCC/ARM7_LPC23xx/port.c
+++ b/Source/portable/GCC/ARM7_LPC23xx/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -98,7 +98,7 @@ portSTACK_TYPE *pxOriginalTOS;
*pxTopOfStack = ( portSTACK_TYPE ) pxCode + portINSTRUCTION_SIZE;
pxTopOfStack--;
- *pxTopOfStack = ( portSTACK_TYPE ) 0xaaaaaaaa; /* R14 */
+ *pxTopOfStack = ( portSTACK_TYPE ) 0x00000000; /* R14 */
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) pxOriginalTOS; /* Stack used when task starts goes in R13. */
pxTopOfStack--;
@@ -223,7 +223,7 @@ unsigned portLONG ulCompareMatch;
}
#endif
- VICVectPriority4 = 1;
+ VICVectCntl4 = 1;
/* Start the timer - interrupts are disabled when this function is called
so it is okay to do this here. */
diff --git a/Source/portable/GCC/ARM7_LPC23xx/portISR.c b/Source/portable/GCC/ARM7_LPC23xx/portISR.c
index 9a743ba07..d534df8d1 100644
--- a/Source/portable/GCC/ARM7_LPC23xx/portISR.c
+++ b/Source/portable/GCC/ARM7_LPC23xx/portISR.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -108,9 +108,6 @@ void vPortYieldProcessor( void )
void vNonPreemptiveTick( void ) __attribute__ ((interrupt ("IRQ")));
void vNonPreemptiveTick( void )
{
-
- FIO2SET |= (1<<0);
-
vTaskIncrementTick();
T0IR = 2;
VICVectAddr = portCLEAR_VIC_INTERRUPT;
@@ -133,7 +130,7 @@ void vPortYieldProcessor( void )
/* Ready for the next interrupt. */
T0IR = 2;
- VICAddress = portCLEAR_VIC_INTERRUPT;
+ VICVectAddr = portCLEAR_VIC_INTERRUPT;
/* Restore the context of the new task. */
portRESTORE_CONTEXT();
diff --git a/Source/portable/GCC/ARM7_LPC23xx/portmacro.h b/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
index 281f6cea4..c068fcb77 100644
--- a/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
+++ b/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ARM_CM3/port.c b/Source/portable/GCC/ARM_CM3/port.c
index 59ba1122a..c7ce3b826 100644
--- a/Source/portable/GCC/ARM_CM3/port.c
+++ b/Source/portable/GCC/ARM_CM3/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -38,6 +38,11 @@
+ Reduced the code used to setup the initial stack frame.
+ The kernel no longer has to install or handle the fault interrupt.
+
+ Change from V4.4.0:
+
+ + Introduced usage of configKERNEL_INTERRUPT_PRIORITY macro to set the
+ interrupt priority used by the kernel.
*/
@@ -49,23 +54,32 @@
#include "FreeRTOS.h"
#include "task.h"
+/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is
+defined. The value should also ensure backward compatibility.
+FreeRTOS.org versions prior to V4.4.0 did not include this definition. */
+#ifndef configKERNEL_INTERRUPT_PRIORITY
+ #define configKERNEL_INTERRUPT_PRIORITY 255
+#endif
+
/* Constants required to manipulate the NVIC. */
#define portNVIC_SYSTICK_CTRL ( ( volatile unsigned portLONG *) 0xe000e010 )
#define portNVIC_SYSTICK_LOAD ( ( volatile unsigned portLONG *) 0xe000e014 )
#define portNVIC_INT_CTRL ( ( volatile unsigned portLONG *) 0xe000ed04 )
#define portNVIC_SYSPRI2 ( ( volatile unsigned portLONG *) 0xe000ed20 )
-#define portNVIC_SYSPRI1 ( ( volatile unsigned portLONG *) 0xe000ed1c )
#define portNVIC_SYSTICK_CLK 0x00000004
#define portNVIC_SYSTICK_INT 0x00000002
#define portNVIC_SYSTICK_ENABLE 0x00000001
#define portNVIC_PENDSVSET 0x10000000
-#define portNVIC_PENDSV_PRI 0x00ff0000
-#define portNVIC_SVCALL_PRI 0xff000000
-#define portNVIC_SYSTICK_PRI 0xff000000
+#define portNVIC_PENDSV_PRI ( ( ( unsigned portLONG ) configKERNEL_INTERRUPT_PRIORITY ) << 16 )
+#define portNVIC_SYSTICK_PRI ( ( ( unsigned portLONG ) configKERNEL_INTERRUPT_PRIORITY ) << 24 )
/* Constants required to set up the initial stack. */
#define portINITIAL_XPSR ( 0x01000000 )
+/* The priority used by the kernel is assigned to a variable to make access
+from inline assembler easier. */
+const unsigned portLONG ulKernelPriority = configKERNEL_INTERRUPT_PRIORITY;
+
/* Each task maintains its own interrupt status in the critical nesting
variable. */
unsigned portBASE_TYPE uxCriticalNesting = 0xaaaaaaaa;
@@ -100,7 +114,7 @@ portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE
pxTopOfStack--;
*pxTopOfStack = ( portSTACK_TYPE ) pxCode; /* PC */
pxTopOfStack--;
- *pxTopOfStack = 0xfffffffd; /* LR */
+ *pxTopOfStack = 0; /* LR */
pxTopOfStack -= 5; /* R12, R3, R2 and R1. */
*pxTopOfStack = ( portSTACK_TYPE ) pvParameters; /* R0 */
pxTopOfStack -= 9; /* R11, R10, R9, R8, R7, R6, R5 and R4. */
@@ -129,7 +143,7 @@ void prvSetMSP( unsigned long ulValue )
*/
portBASE_TYPE xPortStartScheduler( void )
{
- /* Make PendSV, CallSV and SysTick the lowest priority interrupts. */
+ /* Make PendSV, CallSV and SysTick the same priroity as the kernel. */
*(portNVIC_SYSPRI2) |= portNVIC_PENDSV_PRI;
*(portNVIC_SYSPRI2) |= portNVIC_SYSTICK_PRI;
@@ -193,33 +207,26 @@ void xPortPendSVHandler( void )
" mrs r0, psp \n"
" cbz r0, no_save \n"
" \n" /* Save the context into the TCB. */
- " sub r0, #0x20 \n"
- " stm r0, {r4-r11} \n"
- " nop \n"
+ " stmdb r0!, {r4-r11} \n"
" sub r0, #0x04 \n"
" ldr r1, uxCriticalNestingConst \n"
+ " ldr r2, pxCurrentTCBConst \n"
" ldr r1, [r1] \n"
- " stm r0, {r1} \n"
- " ldr r1, pxCurrentTCBConst \n"
- " ldr r1, [r1] \n"
- " str r0, [r1] \n"
+ " ldr r2, [r2] \n"
+ " str r1, [r0] \n"
+ " str r0, [r2] \n"
" \n"
"no_save:\n"
- " ldr r0, vTaskSwitchContextConst \n" /* Find the task to execute. */
" push {r14} \n"
- " cpsid i \n"
- " blx r0 \n"
- " cpsie i \n"
+ " bl vPortSwitchContext \n"
" pop {r14} \n"
" \n" /* Restore the context. */
" ldr r1, pxCurrentTCBConst \n"
" ldr r1, [r1] \n"
" ldr r0, [r1] \n"
- " ldm r0, {r1, r4-r11} \n"
- " nop \n"
+ " ldmia r0!, {r1, r4-r11} \n"
" ldr r2, uxCriticalNestingConst \n"
" str r1, [r2] \n"
- " add r0, #0x24 \n"
" msr psp, r0 \n"
" orr r14, #0xd \n"
" \n" /* Exit with interrupts in the state required by the task. */
@@ -227,11 +234,12 @@ void xPortPendSVHandler( void )
" bx r14 \n"
" \n"
"sv_disable_interrupts: \n"
- " cpsid i \n"
+ " ldr r1, =ulKernelPriority \n"
+ " ldr r1, [r1] \n"
+ " msr basepri, r1 \n"
" bx r14 \n"
" \n"
" .align 2 \n"
- "vTaskSwitchContextConst: .word vTaskSwitchContext \n"
"pxCurrentTCBConst: .word pxCurrentTCB \n"
"uxCriticalNestingConst: .word uxCriticalNesting \n"
);
@@ -246,11 +254,8 @@ void xPortSysTickHandler( void )
/* Call the scheduler tick function. */
__asm volatile
(
- " ldr r0, vTaskIncrementTickConst \n"
" push {r14} \n"
- " cpsid i \n"
- " blx r0 \n"
- " cpsie i \n"
+ " bl vPortIncrementTick \n"
" pop {r14}"
);
@@ -259,8 +264,7 @@ void xPortSysTickHandler( void )
__asm volatile
(
" push {r14} \n"
- " ldr r0, vPortYieldFromISRConst2 \n"
- " blx r0 \n"
+ " bl vPortYieldFromISR \n"
" pop {r14}"
);
#endif
@@ -277,12 +281,12 @@ void xPortSysTickHandler( void )
__asm volatile
(
"tick_disable_interrupts: \n"
- " cpsid i \n"
+ " ldr r1, =ulKernelPriority \n"
+ " ldr r1, [r1] \n"
+ " msr basepri, r1 \n"
" bx r14 \n"
" \n"
" .align 2 \n"
- "vPortYieldFromISRConst2: .word vPortYieldFromISR\n"
- "vTaskIncrementTickConst: .word vTaskIncrementTick\n"
"uxCriticalNestingConst2: .word uxCriticalNesting"
);
}
@@ -298,5 +302,22 @@ void prvSetupTimerInterrupt( void )
*(portNVIC_SYSTICK_LOAD) = configCPU_CLOCK_HZ / configTICK_RATE_HZ;
*(portNVIC_SYSTICK_CTRL) = portNVIC_SYSTICK_CLK | portNVIC_SYSTICK_INT | portNVIC_SYSTICK_ENABLE;
}
+/*-----------------------------------------------------------*/
+
+void vPortSwitchContext( void )
+{
+ vPortSetInterruptMask();
+ vTaskSwitchContext();
+ vPortClearInterruptMask();
+}
+/*-----------------------------------------------------------*/
+
+void vPortIncrementTick( void )
+{
+ vPortSetInterruptMask();
+ vTaskIncrementTick();
+ vPortClearInterruptMask();
+}
+/*-----------------------------------------------------------*/
diff --git a/Source/portable/GCC/ARM_CM3/portmacro.h b/Source/portable/GCC/ARM_CM3/portmacro.h
index 10de80e10..d4f236407 100644
--- a/Source/portable/GCC/ARM_CM3/portmacro.h
+++ b/Source/portable/GCC/ARM_CM3/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -33,6 +33,12 @@
***************************************************************************
*/
+/*
+ Change from V4.4.0:
+
+ + Introduced usage of configKERNEL_INTERRUPT_PRIORITY macro to set the
+ interrupt priority used by the kernel.
+*/
#ifndef PORTMACRO_H
#define PORTMACRO_H
@@ -83,12 +89,35 @@ extern void vPortYieldFromISR( void );
/* Critical section management. */
-extern void vPortEnableInterrupts( void );
+#define vPortSetInterruptMask() \
+ __asm volatile \
+ ( \
+ " push { r0 } \n" \
+ " ldr r0, =ulKernelPriority \n" \
+ " ldr r0, [r0] \n" \
+ " msr basepri, r0 \n" \
+ " pop { r0 } " \
+ )
+
+/*-----------------------------------------------------------*/
+
+#define vPortClearInterruptMask() \
+ __asm volatile \
+ ( \
+ " push { r0 } \n" \
+ " mov r0, #0 \n" \
+ " msr basepri, r0 \n" \
+ " pop { r0 } " \
+ )
+
+/*-----------------------------------------------------------*/
+
+
extern void vPortEnterCritical( void );
extern void vPortExitCritical( void );
-#define portDISABLE_INTERRUPTS() __asm volatile( "cpsid i" )
-#define portENABLE_INTERRUPTS() __asm volatile( "cpsie i" )
+#define portDISABLE_INTERRUPTS() vPortSetInterruptMask();
+#define portENABLE_INTERRUPTS() vPortClearInterruptMask();
#define portENTER_CRITICAL() vPortEnterCritical()
#define portEXIT_CRITICAL() vPortExitCritical()
/*-----------------------------------------------------------*/
diff --git a/Source/portable/GCC/ATMega323/port.c b/Source/portable/GCC/ATMega323/port.c
index a2bb2b6f4..daf057149 100644
--- a/Source/portable/GCC/ATMega323/port.c
+++ b/Source/portable/GCC/ATMega323/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/ATMega323/portmacro.h b/Source/portable/GCC/ATMega323/portmacro.h
index 37d4415da..822964f21 100644
--- a/Source/portable/GCC/ATMega323/portmacro.h
+++ b/Source/portable/GCC/ATMega323/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/AVR32_UC3/port.c b/Source/portable/GCC/AVR32_UC3/port.c
index fed014884..c9f9ccb04 100644
--- a/Source/portable/GCC/AVR32_UC3/port.c
+++ b/Source/portable/GCC/AVR32_UC3/port.c
@@ -13,7 +13,7 @@
*****************************************************************************/
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -75,6 +75,8 @@ volatile unsigned portLONG ulCriticalNesting = 9999UL;
#if( configTICK_USE_TC==0 )
static void prvScheduleNextTick( void );
+#else
+ static void prvClearTcInt( void );
#endif
/* Setup the timer to generate the tick interrupts. */
@@ -203,7 +205,7 @@ __attribute__((__naked__)) static void vTick( void )
#if( configTICK_USE_TC==1 )
/* Clear the interrupt flag. */
- AVR32_TC.channel[configTICK_TC_CHANNEL].sr;
+ prvClearTcInt();
#else
/* Schedule the COUNT&COMPARE match interrupt in (configCPU_CLOCK_HZ/configTICK_RATE_HZ)
clock cycles from now. */
@@ -234,7 +236,7 @@ __attribute__((__naked__)) void SCALLYield( void )
different optimisation levels. The interrupt flags can therefore not always
be saved to the stack. Instead the critical section nesting level is stored
in a variable, which is then saved as part of the stack context. */
-void vPortEnterCritical( void )
+__attribute__((__noinline__)) void vPortEnterCritical( void )
{
/* Disable interrupts */
portDISABLE_INTERRUPTS();
@@ -246,7 +248,7 @@ void vPortEnterCritical( void )
}
/*-----------------------------------------------------------*/
-void vPortExitCritical( void )
+__attribute__((__noinline__)) void vPortExitCritical( void )
{
if(ulCriticalNesting > portNO_CRITICAL_NESTING)
{
@@ -334,7 +336,7 @@ clock cycles from now. */
Set_system_register(AVR32_COMPARE, lCycles);
}
- static void prvScheduleNextTick(void)
+ __attribute__((__noinline__)) static void prvScheduleNextTick(void)
{
unsigned long lCycles, lCount;
@@ -353,6 +355,11 @@ clock cycles from now. */
}
Set_system_register(AVR32_COMPARE, lCycles);
}
+#else
+ __attribute__((__noinline__)) static void prvClearTcInt(void)
+ {
+ AVR32_TC.channel[configTICK_TC_CHANNEL].sr;
+ }
#endif
/*-----------------------------------------------------------*/
diff --git a/Source/portable/GCC/AVR32_UC3/portmacro.h b/Source/portable/GCC/AVR32_UC3/portmacro.h
index 062074f4f..9e7bab927 100644
--- a/Source/portable/GCC/AVR32_UC3/portmacro.h
+++ b/Source/portable/GCC/AVR32_UC3/portmacro.h
@@ -13,7 +13,7 @@
*****************************************************************************/
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/H8S2329/port.c b/Source/portable/GCC/H8S2329/port.c
index bd4a1cc04..56f95d704 100644
--- a/Source/portable/GCC/H8S2329/port.c
+++ b/Source/portable/GCC/H8S2329/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/H8S2329/portmacro.h b/Source/portable/GCC/H8S2329/portmacro.h
index ab956431b..fa17bbf0f 100644
--- a/Source/portable/GCC/H8S2329/portmacro.h
+++ b/Source/portable/GCC/H8S2329/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/HCS12/port.c b/Source/portable/GCC/HCS12/port.c
index e61e9f52a..1f7e833ae 100644
--- a/Source/portable/GCC/HCS12/port.c
+++ b/Source/portable/GCC/HCS12/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/HCS12/portmacro.h b/Source/portable/GCC/HCS12/portmacro.h
index 56a37414e..c583dabe6 100644
--- a/Source/portable/GCC/HCS12/portmacro.h
+++ b/Source/portable/GCC/HCS12/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/MSP430F449/port.c b/Source/portable/GCC/MSP430F449/port.c
index 594be3443..fb64ee6e3 100644
--- a/Source/portable/GCC/MSP430F449/port.c
+++ b/Source/portable/GCC/MSP430F449/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/MSP430F449/portmacro.h b/Source/portable/GCC/MSP430F449/portmacro.h
index e521192e2..f7cfc83fe 100644
--- a/Source/portable/GCC/MSP430F449/portmacro.h
+++ b/Source/portable/GCC/MSP430F449/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/MicroBlaze/port.c b/Source/portable/GCC/MicroBlaze/port.c
index 42170178d..b75dcd7a4 100644
--- a/Source/portable/GCC/MicroBlaze/port.c
+++ b/Source/portable/GCC/MicroBlaze/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/MicroBlaze/portmacro.h b/Source/portable/GCC/MicroBlaze/portmacro.h
index edea6d6ac..bfdc8d73e 100644
--- a/Source/portable/GCC/MicroBlaze/portmacro.h
+++ b/Source/portable/GCC/MicroBlaze/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/STR75x/port.c b/Source/portable/GCC/STR75x/port.c
index c1c056f28..d3215fcfe 100644
--- a/Source/portable/GCC/STR75x/port.c
+++ b/Source/portable/GCC/STR75x/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/STR75x/portISR.c b/Source/portable/GCC/STR75x/portISR.c
index 02f5fb827..b7698bdba 100644
--- a/Source/portable/GCC/STR75x/portISR.c
+++ b/Source/portable/GCC/STR75x/portISR.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/GCC/STR75x/portmacro.h b/Source/portable/GCC/STR75x/portmacro.h
index f044e2011..a86ce4288 100644
--- a/Source/portable/GCC/STR75x/portmacro.h
+++ b/Source/portable/GCC/STR75x/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/ARM_CM3/port.c b/Source/portable/IAR/ARM_CM3/port.c
index 0c81f993f..b20bc2095 100644
--- a/Source/portable/IAR/ARM_CM3/port.c
+++ b/Source/portable/IAR/ARM_CM3/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -65,7 +65,7 @@
#define portINITIAL_XPSR ( 0x01000000 )
/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is
-defined. The value zero should also ensure backward compatibility.
+defined. The value 255 should also ensure backward compatibility.
FreeRTOS.org versions prior to V4.3.0 did not include this definition. */
#ifndef configKERNEL_INTERRUPT_PRIORITY
#define configKERNEL_INTERRUPT_PRIORITY 255
diff --git a/Source/portable/IAR/ARM_CM3/portasm.s b/Source/portable/IAR/ARM_CM3/portasm.s
index 35edcf159..7a3621489 100644
--- a/Source/portable/IAR/ARM_CM3/portasm.s
+++ b/Source/portable/IAR/ARM_CM3/portasm.s
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -42,8 +42,8 @@
#include <FreeRTOSConfig.h>
-/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is
-defined. The value zero should also ensure backward compatibility.
+/* For backward compatibility, ensure configKERNEL_INTERRUPT_PRIORITY is
+defined. The value zero should also ensure backward compatibility.
FreeRTOS.org versions prior to V4.3.0 did not include this definition. */
#ifndef configKERNEL_INTERRUPT_PRIORITY
#define configKERNEL_INTERRUPT_PRIORITY 0
@@ -79,60 +79,53 @@ vSetMSP
/*-----------------------------------------------------------*/
xPortPendSVHandler:
- mrs r0, psp
- cbz r0, no_save
- /* Save the context into the TCB. */
- sub r0, r0, #0x20
- stm r0, {r4-r11}
- nop
- sub r0, r0, #0x04
+ mrs r0, psp
+ cbz r0, no_save
+ /* Save the context into the TCB. */
+ stmdb r0!, {r4-r11}
+ sub r0, r0, #0x04
ldr r1, =uxCriticalNesting
- ldr r1, [r1]
- str R1, [r0, #0x00]
- ldr r1, =pxCurrentTCB
- ldr r1, [r1]
- str r0, [r1]
+ ldr r2, =pxCurrentTCB
+ ldr r1, [r1]
+ ldr r2, [r2]
+ str r1, [r0]
+ str r0, [r2]
+
no_save:
- ldr r0, =vPortSwitchContext
- push {r14}
- blx r0
- pop {r14}
-
- /* Restore the context. */
+ push {r14}
+ bl vPortSwitchContext
+ pop {r14}
+ /* Restore the context. */
ldr r1, =pxCurrentTCB
- ldr r1, [r1]
- ldr r0, [r1]
- ldm r0, {r1, r4-r11}
- nop
+ ldr r1, [r1]
+ ldr r0, [r1]
+ ldmia r0!, {r1, r4-r11}
ldr r2, =uxCriticalNesting
- str r1, [r2]
- add r0, r0, #0x24
- msr psp, r0
- orr r14, r14, #0xd
- /* Exit with interrupts in the state required by the task. */
- cbnz r1, sv_disable_interrupts
- bx r14
-
-sv_disable_interrupts:
+ str r1, [r2]
+ msr psp, r0
+ orr r14, r14, #0xd
+ /* Exit with interrupts in the state required by the task. */
+ cbnz r1, sv_disable_interrupts
+ bx r14
+
+sv_disable_interrupts:
mov r1, #configKERNEL_INTERRUPT_PRIORITY
msr basepri, R1
+ bx r14
- bx r14
/*-----------------------------------------------------------*/
xPortSysTickHandler:
/* Call the scheduler tick function. */
- ldr r0, =vPortIncrementTick
push {r14}
- blx r0
+ bl vPortIncrementTick
pop {r14}
/* If using preemption, also force a context switch. */
#if configUSE_PREEMPTION == 1
push {r14}
- ldr r0, =vPortYieldFromISR
- blx r0
+ bl vPortYieldFromISR
pop {r14}
#endif
diff --git a/Source/portable/IAR/ARM_CM3/portmacro.h b/Source/portable/IAR/ARM_CM3/portmacro.h
index 1e0f5946d..fe4617fc4 100644
--- a/Source/portable/IAR/ARM_CM3/portmacro.h
+++ b/Source/portable/IAR/ARM_CM3/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -90,7 +90,6 @@ extern void vPortYieldFromISR( void );
/* Critical section management. */
-extern void vPortEnableInterrupts( void );
extern void vPortEnterCritical( void );
extern void vPortExitCritical( void );
extern void vPortSetInterruptMask( void );
diff --git a/Source/portable/IAR/ATMega323/port.c b/Source/portable/IAR/ATMega323/port.c
index fbd390767..5286b648d 100644
--- a/Source/portable/IAR/ATMega323/port.c
+++ b/Source/portable/IAR/ATMega323/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/ATMega323/portmacro.h b/Source/portable/IAR/ATMega323/portmacro.h
index 50e916190..78d360555 100644
--- a/Source/portable/IAR/ATMega323/portmacro.h
+++ b/Source/portable/IAR/ATMega323/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/ATMega323/portmacro.s90 b/Source/portable/IAR/ATMega323/portmacro.s90
index d173c68cc..7b070a246 100644
--- a/Source/portable/IAR/ATMega323/portmacro.s90
+++ b/Source/portable/IAR/ATMega323/portmacro.s90
@@ -1,4 +1,4 @@
-; FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+; FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
;
; This file is part of the FreeRTOS.org distribution.
;
diff --git a/Source/portable/IAR/AVR32_UC3/exception.s82 b/Source/portable/IAR/AVR32_UC3/exception.s82
index 4346bd728..2df712c40 100644
--- a/Source/portable/IAR/AVR32_UC3/exception.s82
+++ b/Source/portable/IAR/AVR32_UC3/exception.s82
@@ -70,107 +70,107 @@ _evba:
ORG 0x000
// Unrecoverable Exception.
_handle_Unrecoverable_Exception:
- rjmp _handle_Unrecoverable_Exception
+ rjmp $
ORG 0x004
// TLB Multiple Hit: UNUSED IN AVR32UC.
_handle_TLB_Multiple_Hit:
- rjmp _handle_TLB_Multiple_Hit
+ rjmp $
ORG 0x008
// Bus Error Data Fetch.
_handle_Bus_Error_Data_Fetch:
- rjmp _handle_Bus_Error_Data_Fetch
+ rjmp $
ORG 0x00C
// Bus Error Instruction Fetch.
_handle_Bus_Error_Instruction_Fetch:
- rjmp _handle_Bus_Error_Instruction_Fetch
+ rjmp $
ORG 0x010
// NMI.
_handle_NMI:
- rjmp _handle_NMI
+ rjmp $
ORG 0x014
// Instruction Address.
_handle_Instruction_Address:
- rjmp _handle_Instruction_Address
+ rjmp $
ORG 0x018
// ITLB Protection.
_handle_ITLB_Protection:
- rjmp _handle_ITLB_Protection
+ rjmp $
ORG 0x01C
// Breakpoint.
_handle_Breakpoint:
- rjmp _handle_Breakpoint
+ rjmp $
ORG 0x020
// Illegal Opcode.
_handle_Illegal_Opcode:
- rjmp _handle_Illegal_Opcode
+ rjmp $
ORG 0x024
// Unimplemented Instruction.
_handle_Unimplemented_Instruction:
- rjmp _handle_Unimplemented_Instruction
+ rjmp $
ORG 0x028
// Privilege Violation.
_handle_Privilege_Violation:
- rjmp _handle_Privilege_Violation
+ rjmp $
ORG 0x02C
// Floating-Point: UNUSED IN AVR32UC.
_handle_Floating_Point:
- rjmp _handle_Floating_Point
+ rjmp $
ORG 0x030
// Coprocessor Absent: UNUSED IN AVR32UC.
_handle_Coprocessor_Absent:
- rjmp _handle_Coprocessor_Absent
+ rjmp $
ORG 0x034
// Data Address (Read).
_handle_Data_Address_Read:
- rjmp _handle_Data_Address_Read
+ rjmp $
ORG 0x038
// Data Address (Write).
_handle_Data_Address_Write:
- rjmp _handle_Data_Address_Write
+ rjmp $
ORG 0x03C
// DTLB Protection (Read).
_handle_DTLB_Protection_Read:
- rjmp _handle_DTLB_Protection_Read
+ rjmp $
ORG 0x040
// DTLB Protection (Write).
_handle_DTLB_Protection_Write:
- rjmp _handle_DTLB_Protection_Write
+ rjmp $
ORG 0x044
// DTLB Modified: UNUSED IN AVR32UC.
_handle_DTLB_Modified:
- rjmp _handle_DTLB_Modified
+ rjmp $
ORG 0x050
// ITLB Miss: UNUSED IN AVR32UC.
_handle_ITLB_Miss:
- rjmp _handle_ITLB_Miss
+ rjmp $
ORG 0x060
// DTLB Miss (Read): UNUSED IN AVR32UC.
_handle_DTLB_Miss_Read:
- rjmp _handle_DTLB_Miss_Read
+ rjmp $
ORG 0x070
// DTLB Miss (Write): UNUSED IN AVR32UC.
_handle_DTLB_Miss_Write:
- rjmp _handle_DTLB_Miss_Write
+ rjmp $
ORG 0x100
// Supervisor Call.
diff --git a/Source/portable/IAR/AVR32_UC3/port.c b/Source/portable/IAR/AVR32_UC3/port.c
index 770d61f3d..8ccbdf265 100644
--- a/Source/portable/IAR/AVR32_UC3/port.c
+++ b/Source/portable/IAR/AVR32_UC3/port.c
@@ -13,7 +13,7 @@
*****************************************************************************/
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -76,6 +76,8 @@ volatile unsigned portLONG ulCriticalNesting = 9999UL;
#if( configTICK_USE_TC==0 )
static void prvScheduleNextTick( void );
+#else
+ static void prvClearTcInt( void );
#endif
/* Setup the timer to generate the tick interrupts. */
@@ -169,7 +171,7 @@ static void vTick( void )
#if( configTICK_USE_TC==1 )
/* Clear the interrupt flag. */
- AVR32_TC.channel[configTICK_TC_CHANNEL].sr;
+ prvClearTcInt();
#else
/* Schedule the COUNT&COMPARE match interrupt in (configCPU_CLOCK_HZ/configTICK_RATE_HZ)
clock cycles from now. */
@@ -201,6 +203,7 @@ void SCALLYield( void )
different optimisation levels. The interrupt flags can therefore not always
be saved to the stack. Instead the critical section nesting level is stored
in a variable, which is then saved as part of the stack context. */
+#pragma optimize = no_inline
void vPortEnterCritical( void )
{
/* Disable interrupts */
@@ -213,6 +216,7 @@ void vPortEnterCritical( void )
}
/*-----------------------------------------------------------*/
+#pragma optimize = no_inline
void vPortExitCritical( void )
{
if(ulCriticalNesting > portNO_CRITICAL_NESTING)
@@ -301,6 +305,7 @@ clock cycles from now. */
Set_system_register(AVR32_COMPARE, lCycles);
}
+ #pragma optimize = no_inline
static void prvScheduleNextTick(void)
{
unsigned long lCycles, lCount;
@@ -320,6 +325,12 @@ clock cycles from now. */
}
Set_system_register(AVR32_COMPARE, lCycles);
}
+#else
+ #pragma optimize = no_inline
+ static void prvClearTcInt(void)
+ {
+ AVR32_TC.channel[configTICK_TC_CHANNEL].sr;
+ }
#endif
/*-----------------------------------------------------------*/
diff --git a/Source/portable/IAR/AVR32_UC3/portmacro.h b/Source/portable/IAR/AVR32_UC3/portmacro.h
index d60b84614..6847fd9ce 100644
--- a/Source/portable/IAR/AVR32_UC3/portmacro.h
+++ b/Source/portable/IAR/AVR32_UC3/portmacro.h
@@ -13,7 +13,7 @@
*****************************************************************************/
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/AtmelSAM7S64/port.c b/Source/portable/IAR/AtmelSAM7S64/port.c
index fd83fd0a3..5afd07b76 100644
--- a/Source/portable/IAR/AtmelSAM7S64/port.c
+++ b/Source/portable/IAR/AtmelSAM7S64/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/AtmelSAM7S64/portmacro.h b/Source/portable/IAR/AtmelSAM7S64/portmacro.h
index 332288d8a..9dad6b874 100644
--- a/Source/portable/IAR/AtmelSAM7S64/portmacro.h
+++ b/Source/portable/IAR/AtmelSAM7S64/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/LPC2000/port.c b/Source/portable/IAR/LPC2000/port.c
index e6d717fe5..44a16d30b 100644
--- a/Source/portable/IAR/LPC2000/port.c
+++ b/Source/portable/IAR/LPC2000/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/LPC2000/portmacro.h b/Source/portable/IAR/LPC2000/portmacro.h
index 332288d8a..9dad6b874 100644
--- a/Source/portable/IAR/LPC2000/portmacro.h
+++ b/Source/portable/IAR/LPC2000/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/STR71x/port.c b/Source/portable/IAR/STR71x/port.c
index c55add2f8..749105c06 100644
--- a/Source/portable/IAR/STR71x/port.c
+++ b/Source/portable/IAR/STR71x/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/STR71x/portmacro.h b/Source/portable/IAR/STR71x/portmacro.h
index 7c6732201..f0cf9c9e0 100644
--- a/Source/portable/IAR/STR71x/portmacro.h
+++ b/Source/portable/IAR/STR71x/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/STR75x/ISR_Support.h b/Source/portable/IAR/STR75x/ISR_Support.h
index f56cb479b..56b70f5ef 100644
--- a/Source/portable/IAR/STR75x/ISR_Support.h
+++ b/Source/portable/IAR/STR75x/ISR_Support.h
@@ -1,4 +1,4 @@
-; FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+; FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
;
; This file is part of the FreeRTOS.org distribution.
;
diff --git a/Source/portable/IAR/STR75x/port.c b/Source/portable/IAR/STR75x/port.c
index bdeeafdcd..601b4af46 100644
--- a/Source/portable/IAR/STR75x/port.c
+++ b/Source/portable/IAR/STR75x/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/STR75x/portasm.s79 b/Source/portable/IAR/STR75x/portasm.s79
index 216985bcd..b94877c93 100644
--- a/Source/portable/IAR/STR75x/portasm.s79
+++ b/Source/portable/IAR/STR75x/portasm.s79
@@ -1,4 +1,4 @@
-; FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+; FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
;
; This file is part of the FreeRTOS.org distribution.
;
diff --git a/Source/portable/IAR/STR75x/portmacro.h b/Source/portable/IAR/STR75x/portmacro.h
index 5b40cf50f..0c418ddb7 100644
--- a/Source/portable/IAR/STR75x/portmacro.h
+++ b/Source/portable/IAR/STR75x/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/IAR/STR91x/ISR_Support.h b/Source/portable/IAR/STR91x/ISR_Support.h
index 066f5a55a..6a3fd5750 100644
--- a/Source/portable/IAR/STR91x/ISR_Support.h
+++ b/Source/portable/IAR/STR91x/ISR_Support.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS distribution.
diff --git a/Source/portable/IAR/STR91x/port.c b/Source/portable/IAR/STR91x/port.c
index c1e9858a8..ac8a3e2a2 100644
--- a/Source/portable/IAR/STR91x/port.c
+++ b/Source/portable/IAR/STR91x/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS distribution.
@@ -34,7 +34,7 @@
*/
/*-----------------------------------------------------------
- * Implementation of functions defined in portable.h for the ST STR91x ARM7
+ * Implementation of functions defined in portable.h for the ST STR91x ARM9
* port.
*----------------------------------------------------------*/
@@ -43,22 +43,54 @@
/* Standard includes. */
#include <stdlib.h>
+#include <assert.h>
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
+#ifndef configUSE_WATCHDOG_TICK
+ #error configUSE_WATCHDOG_TICK must be set to either 1 or 0 in FreeRTOSConfig.h to use either the Watchdog or timer 2 to generate the tick interrupt respectively.
+#endif
+
/* Constants required to setup the initial stack. */
#ifndef _RUN_TASK_IN_ARM_MODE_
#define portINITIAL_SPSR ( ( portSTACK_TYPE ) 0x3f ) /* System mode, THUMB mode, interrupts enabled. */
#else
#define portINITIAL_SPSR ( ( portSTACK_TYPE ) 0x1f ) /* System mode, ARM mode, interrupts enabled. */
#endif
+
#define portINSTRUCTION_SIZE ( ( portSTACK_TYPE ) 4 )
/* Constants required to handle critical sections. */
#define portNO_CRITICAL_NESTING ( ( unsigned portLONG ) 0 )
+#ifndef abs
+ #define abs(x) ((x)>0 ? (x) : -(x))
+#endif
+
+/**
+ * Toggle a led using the following algorithm:
+ * if ( GPIO_ReadBit(GPIO9, GPIO_Pin_2) )
+ * {
+ * GPIO_WriteBit( GPIO9, GPIO_Pin_2, Bit_RESET );
+ * }
+ * else
+ * {
+ * GPIO_WriteBit( GPIO9, GPIO_Pin_2, Bit_RESET );
+ * }
+ *
+ */
+#define TOGGLE_LED(port,pin) \
+ if ( ((((port)->DR[(pin)<<2])) & (pin)) != Bit_RESET ) \
+ { \
+ (port)->DR[(pin) <<2] = 0x00; \
+ } \
+ else \
+ { \
+ (port)->DR[(pin) <<2] = (pin); \
+ }
+
/*-----------------------------------------------------------*/
@@ -73,12 +105,16 @@ unsigned portLONG ulCriticalNesting = ( unsigned portLONG ) 9999;
/* Tick interrupt routines for cooperative and preemptive operation
respectively. The preemptive version is not defined as __irq as it is called
from an asm wrapper function. */
-__arm __irq void vPortNonPreemptiveTick( void );
void WDG_IRQHandler( void );
/* VIC interrupt default handler. */
static void prvDefaultHandler( void );
+#if configUSE_WATCHDOG_TICK == 0
+ /* Used to update the OCR timer register */
+ static u16 s_nPulseLength;
+#endif
+
/*-----------------------------------------------------------*/
/*
@@ -174,90 +210,189 @@ void vPortEndScheduler( void )
/* This function is called from an asm wrapper, so does not require the __irq
keyword. */
-void WDG_IRQHandler( void )
-{
- /* Increment the tick counter. */
- vTaskIncrementTick();
-
- #if configUSE_PREEMPTION == 1
- /* The new tick value might unblock a task. Ensure the highest task that
- is ready to execute is the task that will execute when the tick ISR
- exits. */
- vTaskSwitchContext();
- #endif
-
- /* Clear the interrupt in the watchdog. */
- WDG->SR &= ~0x0001;
-}
-/*-----------------------------------------------------------*/
-
-#ifndef abs
- #define abs(x) ((x)>0 ? (x) : -(x))
-#endif
-
-static void prvFindFactors(u32 n, u16 *a, u32 *b)
-{
- /* This function is copied from the ST STR7 library and is
- copyright STMicroelectronics. Reproduced with permission. */
-
- u32 b0;
- u16 a0;
- long err, err_min=n;
+#if configUSE_WATCHDOG_TICK == 1
- *a = a0 = ((n-1)/65536ul) + 1;
- *b = b0 = n / *a;
-
- for (; *a <= 256; (*a)++)
+ static void prvFindFactors(u32 n, u16 *a, u32 *b)
{
- *b = n / *a;
- err = (long)*a * (long)*b - (long)n;
- if (abs(err) > (*a / 2))
+ /* This function is copied from the ST STR7 library and is
+ copyright STMicroelectronics. Reproduced with permission. */
+
+ u32 b0;
+ u16 a0;
+ long err, err_min=n;
+
+ *a = a0 = ((n-1)/65536ul) + 1;
+ *b = b0 = n / *a;
+
+ for (; *a <= 256; (*a)++)
{
- (*b)++;
+ *b = n / *a;
err = (long)*a * (long)*b - (long)n;
+ if (abs(err) > (*a / 2))
+ {
+ (*b)++;
+ err = (long)*a * (long)*b - (long)n;
+ }
+ if (abs(err) < abs(err_min))
+ {
+ err_min = err;
+ a0 = *a;
+ b0 = *b;
+ if (err == 0) break;
+ }
}
- if (abs(err) < abs(err_min))
+
+ *a = a0;
+ *b = b0;
+ }
+ /*-----------------------------------------------------------*/
+
+ static void prvSetupTimerInterrupt( void )
+ {
+ WDG_InitTypeDef xWdg;
+ unsigned portSHORT a;
+ unsigned portLONG n = configCPU_PERIPH_HZ / configTICK_RATE_HZ, b;
+
+ /* Configure the watchdog as a free running timer that generates a
+ periodic interrupt. */
+
+ SCU_APBPeriphClockConfig( __WDG, ENABLE );
+ WDG_DeInit();
+ WDG_StructInit(&xWdg);
+ prvFindFactors( n, &a, &b );
+ xWdg.WDG_Prescaler = a - 1;
+ xWdg.WDG_Preload = b - 1;
+ WDG_Init( &xWdg );
+ WDG_ITConfig(ENABLE);
+
+ /* Configure the VIC for the WDG interrupt. */
+ VIC_Config( WDG_ITLine, VIC_IRQ, 10 );
+ VIC_ITCmd( WDG_ITLine, ENABLE );
+
+ /* Install the default handlers for both VIC's. */
+ VIC0->DVAR = ( unsigned portLONG ) prvDefaultHandler;
+ VIC1->DVAR = ( unsigned portLONG ) prvDefaultHandler;
+
+ WDG_Cmd(ENABLE);
+ }
+ /*-----------------------------------------------------------*/
+
+ void WDG_IRQHandler( void )
+ {
{
- err_min = err;
- a0 = *a;
- b0 = *b;
- if (err == 0) break;
+ /* Increment the tick counter. */
+ vTaskIncrementTick();
+
+ #if configUSE_PREEMPTION == 1
+ {
+ /* The new tick value might unblock a task. Ensure the highest task that
+ is ready to execute is the task that will execute when the tick ISR
+ exits. */
+ vTaskSwitchContext();
+ }
+ #endif /* configUSE_PREEMPTION. */
+
+ /* Clear the interrupt in the watchdog. */
+ WDG->SR &= ~0x0001;
}
}
- *a = a0;
- *b = b0;
-}
-/*-----------------------------------------------------------*/
+#else
-static void prvSetupTimerInterrupt( void )
-{
-WDG_InitTypeDef xWdg;
-unsigned portSHORT a;
-unsigned portLONG n = configCPU_PERIPH_HZ / configTICK_RATE_HZ, b;
-
- /* Configure the watchdog as a free running timer that generates a
- periodic interrupt. */
-
- SCU_APBPeriphClockConfig( __WDG, ENABLE );
- WDG_DeInit();
- WDG_StructInit(&xWdg);
- prvFindFactors( n, &a, &b );
- xWdg.WDG_Prescaler = a - 1;
- xWdg.WDG_Preload = b - 1;
- WDG_Init( &xWdg );
- WDG_ITConfig(ENABLE);
+ static void prvFindFactors(u32 n, u8 *a, u16 *b)
+ {
+ /* This function is copied from the ST STR7 library and is
+ copyright STMicroelectronics. Reproduced with permission. */
- /* Configure the VIC for the WDG interrupt. */
- VIC_Config( WDG_ITLine, VIC_IRQ, 10 );
- VIC_ITCmd( WDG_ITLine, ENABLE );
+ u16 b0;
+ u8 a0;
+ long err, err_min=n;
- /* Install the default handlers for both VIC's. */
- VIC0->DVAR = ( unsigned portLONG ) prvDefaultHandler;
- VIC1->DVAR = ( unsigned portLONG ) prvDefaultHandler;
- WDG_Cmd(ENABLE);
-}
+ *a = a0 = ((n-1)/256) + 1;
+ *b = b0 = n / *a;
+
+ for (; *a <= 256; (*a)++)
+ {
+ *b = n / *a;
+ err = (long)*a * (long)*b - (long)n;
+ if (abs(err) > (*a / 2))
+ {
+ (*b)++;
+ err = (long)*a * (long)*b - (long)n;
+ }
+ if (abs(err) < abs(err_min))
+ {
+ err_min = err;
+ a0 = *a;
+ b0 = *b;
+ if (err == 0) break;
+ }
+ }
+
+ *a = a0;
+ *b = b0;
+ }
+ /*-----------------------------------------------------------*/
+
+ static void prvSetupTimerInterrupt( void )
+ {
+ unsigned portCHAR a;
+ unsigned portSHORT b;
+ unsigned portLONG n = configCPU_PERIPH_HZ / configTICK_RATE_HZ;
+
+ TIM_InitTypeDef timer;
+
+ SCU_APBPeriphClockConfig( __TIM23, ENABLE );
+ TIM_DeInit(TIM2);
+ TIM_StructInit(&timer);
+ prvFindFactors( n, &a, &b );
+
+ timer.TIM_Mode = TIM_OCM_CHANNEL_1;
+ timer.TIM_OC1_Modes = TIM_TIMING;
+ timer.TIM_Clock_Source = TIM_CLK_APB;
+ timer.TIM_Clock_Edge = TIM_CLK_EDGE_RISING;
+ timer.TIM_Prescaler = a-1;
+ timer.TIM_Pulse_Level_1 = TIM_HIGH;
+ timer.TIM_Pulse_Length_1 = s_nPulseLength = b-1;
+
+ TIM_Init (TIM2, &timer);
+ TIM_ITConfig(TIM2, TIM_IT_OC1, ENABLE);
+ /* Configure the VIC for the WDG interrupt. */
+ VIC_Config( TIM2_ITLine, VIC_IRQ, 10 );
+ VIC_ITCmd( TIM2_ITLine, ENABLE );
+
+ /* Install the default handlers for both VIC's. */
+ VIC0->DVAR = ( unsigned portLONG ) prvDefaultHandler;
+ VIC1->DVAR = ( unsigned portLONG ) prvDefaultHandler;
+
+ TIM_CounterCmd(TIM2, TIM_CLEAR);
+ TIM_CounterCmd(TIM2, TIM_START);
+ }
+ /*-----------------------------------------------------------*/
+
+ void TIM2_IRQHandler( void )
+ {
+ /* Reset the timer counter to avioid overflow. */
+ TIM2->OC1R += s_nPulseLength;
+
+ /* Increment the tick counter. */
+ vTaskIncrementTick();
+
+ #if configUSE_PREEMPTION == 1
+ {
+ /* The new tick value might unblock a task. Ensure the highest task that
+ is ready to execute is the task that will execute when the tick ISR
+ exits. */
+ vTaskSwitchContext();
+ }
+ #endif
+
+ /* Clear the interrupt in the watchdog. */
+ TIM2->SR &= ~TIM_FLAG_OC1;
+ }
+
+#endif /* USE_WATCHDOG_TICK */
/*-----------------------------------------------------------*/
diff --git a/Source/portable/IAR/STR91x/portasm.s79 b/Source/portable/IAR/STR91x/portasm.s79
index aa39c7103..6975ff87f 100644
--- a/Source/portable/IAR/STR91x/portasm.s79
+++ b/Source/portable/IAR/STR91x/portasm.s79
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS distribution.
diff --git a/Source/portable/IAR/STR91x/portmacro.h b/Source/portable/IAR/STR91x/portmacro.h
index eaa15bde3..f94778d31 100644
--- a/Source/portable/IAR/STR91x/portmacro.h
+++ b/Source/portable/IAR/STR91x/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS distribution.
diff --git a/Source/portable/Keil/ARM7/port.c b/Source/portable/Keil/ARM7/port.c
index c781d9726..074ca3e08 100644
--- a/Source/portable/Keil/ARM7/port.c
+++ b/Source/portable/Keil/ARM7/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Keil/ARM7/portISR.c b/Source/portable/Keil/ARM7/portISR.c
index 06a7b3017..92fddf2ea 100644
--- a/Source/portable/Keil/ARM7/portISR.c
+++ b/Source/portable/Keil/ARM7/portISR.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Keil/ARM7/portmacro.h b/Source/portable/Keil/ARM7/portmacro.h
index 9a01c1986..325054ab0 100644
--- a/Source/portable/Keil/ARM7/portmacro.h
+++ b/Source/portable/Keil/ARM7/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MPLAB/PIC18F/port.c b/Source/portable/MPLAB/PIC18F/port.c
index 219d42c65..3785a4e52 100644
--- a/Source/portable/MPLAB/PIC18F/port.c
+++ b/Source/portable/MPLAB/PIC18F/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MPLAB/PIC18F/portmacro.h b/Source/portable/MPLAB/PIC18F/portmacro.h
index 9335347fa..005babba8 100644
--- a/Source/portable/MPLAB/PIC18F/portmacro.h
+++ b/Source/portable/MPLAB/PIC18F/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/port.c b/Source/portable/MPLAB/PIC24_dsPIC/port.c
index 1e86c071d..0b08d93d9 100644
--- a/Source/portable/MPLAB/PIC24_dsPIC/port.c
+++ b/Source/portable/MPLAB/PIC24_dsPIC/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h b/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
index 1d4286e23..1f6dab634 100644
--- a/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
+++ b/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MemMang/heap_1.c b/Source/portable/MemMang/heap_1.c
index dac6098b2..ea8cac5a6 100644
--- a/Source/portable/MemMang/heap_1.c
+++ b/Source/portable/MemMang/heap_1.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MemMang/heap_2.c b/Source/portable/MemMang/heap_2.c
index 80cc5d8e1..fe94b0c23 100644
--- a/Source/portable/MemMang/heap_2.c
+++ b/Source/portable/MemMang/heap_2.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/MemMang/heap_3.c b/Source/portable/MemMang/heap_3.c
index 182532c98..62706f434 100644
--- a/Source/portable/MemMang/heap_3.c
+++ b/Source/portable/MemMang/heap_3.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Paradigm/Tern_EE/large_untested/port.c b/Source/portable/Paradigm/Tern_EE/large_untested/port.c
index cfe5e7c56..ee330f22b 100644
--- a/Source/portable/Paradigm/Tern_EE/large_untested/port.c
+++ b/Source/portable/Paradigm/Tern_EE/large_untested/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h b/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
index 1fbcc85b4..ca6d5b865 100644
--- a/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
+++ b/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h b/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
index d94f06d2b..e778dddb3 100644
--- a/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
+++ b/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Paradigm/Tern_EE/small/port.c b/Source/portable/Paradigm/Tern_EE/small/port.c
index 31de22854..ea3e51b10 100644
--- a/Source/portable/Paradigm/Tern_EE/small/port.c
+++ b/Source/portable/Paradigm/Tern_EE/small/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Paradigm/Tern_EE/small/portasm.h b/Source/portable/Paradigm/Tern_EE/small/portasm.h
index 625e14c15..2a13a4438 100644
--- a/Source/portable/Paradigm/Tern_EE/small/portasm.h
+++ b/Source/portable/Paradigm/Tern_EE/small/portasm.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Paradigm/Tern_EE/small/portmacro.h b/Source/portable/Paradigm/Tern_EE/small/portmacro.h
index 19727d60e..d4b430ad2 100644
--- a/Source/portable/Paradigm/Tern_EE/small/portmacro.h
+++ b/Source/portable/Paradigm/Tern_EE/small/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/RVDS/ARM_CM3/port.c b/Source/portable/RVDS/ARM_CM3/port.c
index 372c83168..812afc270 100644
--- a/Source/portable/RVDS/ARM_CM3/port.c
+++ b/Source/portable/RVDS/ARM_CM3/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
@@ -211,27 +211,25 @@ __asm void xPortPendSVHandler( void )
PRESERVE8
/* Start first task if the stack has not yet been setup. */
- mrs r0, psp
- cbz r0, no_save
+ mrs r0, psp
+ cbz r0, no_save
/* Save the context into the TCB. */
- sub r0, #0x20
- stm r0, {r4-r11}
- sub r0, #0x04
+ stmdb r0!, {r4-r11}
+ sub r0, r0, #0x04
ldr r1, =uxCriticalNesting
- ldr r1, [r1]
- stm r0, {r1}
- ldr r1, =pxCurrentTCB
- ldr r1, [r1]
- str r0, [r1]
+ ldr r2, =pxCurrentTCB
+ ldr r1, [r1]
+ ldr r2, [r2]
+ str r1, [r0]
+ str r0, [r2]
no_save;
/* Find the task to execute. */
- ldr r0, =vTaskSwitchContext
push {r14}
cpsid i
- blx r0
+ bl vTaskSwitchContext
cpsie i
pop {r14}
@@ -239,11 +237,10 @@ no_save;
ldr r1, =pxCurrentTCB
ldr r1, [r1];
ldr r0, [r1];
- ldm r0, {r1, r4-r11}
+ ldmia r0!, {r1, r4-r11}
ldr r2, =uxCriticalNesting
str r1, [r2]
ldr r2, [r2]
- add r0, #0x24
msr psp, r0
orr r14, #0xd
@@ -264,10 +261,9 @@ __asm void xPortSysTickHandler( void )
PRESERVE8
/* Call the scheduler tick function. */
- ldr r0, =vTaskIncrementTick
push {r14}
cpsid i
- blx r0
+ bl vTaskIncrementTick
cpsie i
pop {r14}
@@ -275,8 +271,7 @@ __asm void xPortSysTickHandler( void )
#if configUSE_PREEMPTION == 1
extern vPortYieldFromISR
push {r14}
- ldr r0, =vPortYieldFromISR
- blx r0
+ bl vPortYieldFromISR
pop {r14}
#endif
diff --git a/Source/portable/RVDS/ARM_CM3/portmacro.h b/Source/portable/RVDS/ARM_CM3/portmacro.h
index 2275840b2..12d4cad92 100644
--- a/Source/portable/RVDS/ARM_CM3/portmacro.h
+++ b/Source/portable/RVDS/ARM_CM3/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Rowley/MSP430F449/Port1/port.c b/Source/portable/Rowley/MSP430F449/Port1/port.c
index bd595cf24..027ab7816 100644
--- a/Source/portable/Rowley/MSP430F449/Port1/port.c
+++ b/Source/portable/Rowley/MSP430F449/Port1/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Rowley/MSP430F449/Port1/portmacro.h b/Source/portable/Rowley/MSP430F449/Port1/portmacro.h
index d085c0a33..77ec57ecf 100644
--- a/Source/portable/Rowley/MSP430F449/Port1/portmacro.h
+++ b/Source/portable/Rowley/MSP430F449/Port1/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Rowley/MSP430F449/Port2/port.c b/Source/portable/Rowley/MSP430F449/Port2/port.c
index 3c1b4f889..f991f341b 100644
--- a/Source/portable/Rowley/MSP430F449/Port2/port.c
+++ b/Source/portable/Rowley/MSP430F449/Port2/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Rowley/MSP430F449/Port2/portmacro.h b/Source/portable/Rowley/MSP430F449/Port2/portmacro.h
index 2d0afa3cf..90d24bbba 100644
--- a/Source/portable/Rowley/MSP430F449/Port2/portmacro.h
+++ b/Source/portable/Rowley/MSP430F449/Port2/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Rowley/MSP430F449/port.c b/Source/portable/Rowley/MSP430F449/port.c
index bd595cf24..027ab7816 100644
--- a/Source/portable/Rowley/MSP430F449/port.c
+++ b/Source/portable/Rowley/MSP430F449/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/Rowley/MSP430F449/portmacro.h b/Source/portable/Rowley/MSP430F449/portmacro.h
index f3d28dd00..ee3fd1590 100644
--- a/Source/portable/Rowley/MSP430F449/portmacro.h
+++ b/Source/portable/Rowley/MSP430F449/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/SDCC/Cygnal/port.c b/Source/portable/SDCC/Cygnal/port.c
index 137d21b4f..034331114 100644
--- a/Source/portable/SDCC/Cygnal/port.c
+++ b/Source/portable/SDCC/Cygnal/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/SDCC/Cygnal/portmacro.h b/Source/portable/SDCC/Cygnal/portmacro.h
index a1a06825f..06b4fdeb4 100644
--- a/Source/portable/SDCC/Cygnal/portmacro.h
+++ b/Source/portable/SDCC/Cygnal/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c b/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
index 53e39953d..df9fb34e1 100644
--- a/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
+++ b/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c b/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
index bbba5c435..7f8b60a9c 100644
--- a/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
+++ b/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/WizC/PIC18/addFreeRTOS.h b/Source/portable/WizC/PIC18/addFreeRTOS.h
index 954c5b2c5..84e00227d 100644
--- a/Source/portable/WizC/PIC18/addFreeRTOS.h
+++ b/Source/portable/WizC/PIC18/addFreeRTOS.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/WizC/PIC18/port.c b/Source/portable/WizC/PIC18/port.c
index f1dd68fe4..843fb0430 100644
--- a/Source/portable/WizC/PIC18/port.c
+++ b/Source/portable/WizC/PIC18/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/WizC/PIC18/portmacro.h b/Source/portable/WizC/PIC18/portmacro.h
index 6ea40f14e..0c2b66b51 100644
--- a/Source/portable/WizC/PIC18/portmacro.h
+++ b/Source/portable/WizC/PIC18/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/oWatcom/16BitDOS/Flsh186/port.c b/Source/portable/oWatcom/16BitDOS/Flsh186/port.c
index df288ccfb..6c1aa5b65 100644
--- a/Source/portable/oWatcom/16BitDOS/Flsh186/port.c
+++ b/Source/portable/oWatcom/16BitDOS/Flsh186/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h b/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
index 14bea1e7c..99586921e 100644
--- a/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
+++ b/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/oWatcom/16BitDOS/PC/port.c b/Source/portable/oWatcom/16BitDOS/PC/port.c
index 472e09ce9..904ac2fcf 100644
--- a/Source/portable/oWatcom/16BitDOS/PC/port.c
+++ b/Source/portable/oWatcom/16BitDOS/PC/port.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/oWatcom/16BitDOS/PC/portmacro.h b/Source/portable/oWatcom/16BitDOS/PC/portmacro.h
index 568075ab5..94b3731f0 100644
--- a/Source/portable/oWatcom/16BitDOS/PC/portmacro.h
+++ b/Source/portable/oWatcom/16BitDOS/PC/portmacro.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/oWatcom/16BitDOS/common/portasm.h b/Source/portable/oWatcom/16BitDOS/common/portasm.h
index 547ed7b45..b6dd14225 100644
--- a/Source/portable/oWatcom/16BitDOS/common/portasm.h
+++ b/Source/portable/oWatcom/16BitDOS/common/portasm.h
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.
diff --git a/Source/portable/oWatcom/16BitDOS/common/portcomn.c b/Source/portable/oWatcom/16BitDOS/common/portcomn.c
index 2fbb09085..20821ff3b 100644
--- a/Source/portable/oWatcom/16BitDOS/common/portcomn.c
+++ b/Source/portable/oWatcom/16BitDOS/common/portcomn.c
@@ -1,5 +1,5 @@
/*
- FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
+ FreeRTOS.org V4.5.0 - Copyright (C) 2003-2007 Richard Barry.
This file is part of the FreeRTOS.org distribution.