2 FreeRTOS.org V4.4.0 - Copyright (C) 2003-2007 Richard Barry.
4 This file is part of the FreeRTOS.org distribution.
6 FreeRTOS.org is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 FreeRTOS.org is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with FreeRTOS.org; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 A special exception to the GPL can be applied should you wish to distribute
21 a combined work that includes FreeRTOS.org, without being obliged to provide
22 the source code for any proprietary components. See the licensing section
23 of http:www.FreeRTOS.org for full details of how and when the exception
26 ***************************************************************************
27 See http:www.FreeRTOS.org for documentation, latest information, license
28 and contact details. Please ensure to read the configuration and relevant
29 port sections of the online documentation.
31 Also see http://www.SafeRTOS.com for an IEC 61508 compliant version along
32 with commercial development and support options.
33 ***************************************************************************
36 /*-----------------------------------------------------------
37 * Portable layer API. Each function must be defined for each port.
38 *----------------------------------------------------------*/
43 /* Include the macro file relevant to the port being used. */
45 #ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT
46 #include "..\..\source\portable\owatcom\16bitdos\pc\portmacro.h"
47 typedef void ( __interrupt __far *pxISR )();
50 #ifdef OPEN_WATCOM_FLASH_LITE_186_PORT
51 #include "..\..\source\portable\owatcom\16bitdos\flsh186\portmacro.h"
52 typedef void ( __interrupt __far *pxISR )();
56 #include "../portable/GCC/ATMega323/portmacro.h"
60 #include "../portable/IAR/ATMega323/portmacro.h"
63 #ifdef MPLAB_PIC24_PORT
64 #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h"
67 #ifdef MPLAB_DSPIC_PORT
68 #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h"
71 #ifdef MPLAB_PIC18F_PORT
72 #include "..\..\source\portable\MPLAB\PIC18F\portmacro.h"
76 #include "libFreeRTOS/Include/portmacro.h"
80 #include "../../Source/portable/SDCC/Cygnal/portmacro.h"
84 #include "FreeRTOS/portable/GCC/ARM7_LPC2000/portmacro.h"
87 #ifdef GCC_ARM7_ECLIPSE
88 #include "portmacro.h"
92 #include "../../Source/portable/GCC/ARM7_LPC23xx/portmacro.h"
96 #include "../../Source/portable/GCC/MSP430F449/portmacro.h"
100 #include "../../Source/portable/Rowley/MSP430F449/portmacro.h"
104 #include "..\..\Source\portable\Keil\ARM7\portmacro.h"
108 #include "../../Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h"
112 #include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h"
116 #include "..\..\Source\portable\IAR\LPC2000\portmacro.h"
120 #include "..\..\Source\portable\IAR\STR71x\portmacro.h"
124 #include "..\..\Source\portable\IAR\STR75x\portmacro.h"
128 #include "..\..\Source\portable\GCC\STR75x\portmacro.h"
132 #include "..\..\Source\portable\IAR\STR91x\portmacro.h"
136 #include "../../Source/portable/GCC/H8S2329/portmacro.h"
139 #ifdef GCC_AT91FR40008
140 #include "../../Source/portable/GCC/ARM7_AT91FR40008/portmacro.h"
143 #ifdef RVDS_ARMCM3_LM3S102
144 #include "../../Source/portable/RVDS/ARM_CM3/portmacro.h"
147 #ifdef GCC_ARMCM3_LM3S102
148 #include "../../Source/portable/GCC/ARM_CM3/portmacro.h"
152 #include "../../Source/portable/IAR/ARM_CM3/portmacro.h"
156 #include "../../Source/portable/IAR/ARM_CM3/portmacro.h"
159 #ifdef HCS12_CODE_WARRIOR
160 #include "../../Source/portable/CodeWarrior/HCS12/portmacro.h"
163 #ifdef MICROBLAZE_GCC
164 #include "../../Source/portable/GCC/MicroBlaze/portmacro.h"
168 #include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h"
172 #include "../../Source/portable/GCC/HCS12/portmacro.h"
176 #include "../../Source/portable/GCC/MCF5235/portmacro.h"
179 #ifdef BCC_INDUSTRIAL_PC_PORT
180 /* A short file name has to be used in place of the normal
181 FreeRTOSConfig.h when using the Borland compiler. */
182 #include "frconfig.h"
183 #include "..\portable\BCC\16BitDOS\PC\prtmacro.h"
184 typedef void ( __interrupt __far *pxISR )();
187 #ifdef BCC_FLASH_LITE_186_PORT
188 /* A short file name has to be used in place of the normal
189 FreeRTOSConfig.h when using the Borland compiler. */
190 #include "frconfig.h"
191 #include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h"
192 typedef void ( __interrupt __far *pxISR )();
196 #ifdef __AVR32_AVR32A__
197 #include "portmacro.h"
203 #if __CORE__ == __AVR32A__
204 #include "portmacro.h"
210 * Setup the stack of a new task so it is ready to be placed under the
211 * scheduler control. The registers have to be placed on the stack in
212 * the order that the port expects to find them.
214 portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters );
217 * Map to the memory management routines required for the port.
219 void vPortUsedMem(int *bytesFree, int *bytesUsed, int *blocksFree);
220 void *pvPortMalloc( size_t xSize );
221 void vPortFree( void *pv );
222 void vPortInitialiseBlocks( void );
225 * Setup the hardware ready for the scheduler to take control. This generally
226 * sets up a tick interrupt and sets timers for the correct tick frequency.
228 portBASE_TYPE xPortStartScheduler( void );
231 * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so
232 * the hardware is left in its original condition after the scheduler stops
235 void vPortEndScheduler( void );
238 #endif /* PORTABLE_H */