www.freertos.org
Dependents: mbed_freeRTOS_send
Fork of FreeRTOS by
Source/include/portable.h@0:8e57f3e9cc89, 2014-01-24 (annotated)
- Committer:
- rgrover1
- Date:
- Fri Jan 24 14:56:04 2014 +0000
- Revision:
- 0:8e57f3e9cc89
Making FreeRTOS available as a library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rgrover1 | 0:8e57f3e9cc89 | 1 | /* |
rgrover1 | 0:8e57f3e9cc89 | 2 | FreeRTOS V7.6.0 - Copyright (C) 2013 Real Time Engineers Ltd. |
rgrover1 | 0:8e57f3e9cc89 | 3 | All rights reserved |
rgrover1 | 0:8e57f3e9cc89 | 4 | |
rgrover1 | 0:8e57f3e9cc89 | 5 | VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. |
rgrover1 | 0:8e57f3e9cc89 | 6 | |
rgrover1 | 0:8e57f3e9cc89 | 7 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 8 | * * |
rgrover1 | 0:8e57f3e9cc89 | 9 | * FreeRTOS provides completely free yet professionally developed, * |
rgrover1 | 0:8e57f3e9cc89 | 10 | * robust, strictly quality controlled, supported, and cross * |
rgrover1 | 0:8e57f3e9cc89 | 11 | * platform software that has become a de facto standard. * |
rgrover1 | 0:8e57f3e9cc89 | 12 | * * |
rgrover1 | 0:8e57f3e9cc89 | 13 | * Help yourself get started quickly and support the FreeRTOS * |
rgrover1 | 0:8e57f3e9cc89 | 14 | * project by purchasing a FreeRTOS tutorial book, reference * |
rgrover1 | 0:8e57f3e9cc89 | 15 | * manual, or both from: http://www.FreeRTOS.org/Documentation * |
rgrover1 | 0:8e57f3e9cc89 | 16 | * * |
rgrover1 | 0:8e57f3e9cc89 | 17 | * Thank you! * |
rgrover1 | 0:8e57f3e9cc89 | 18 | * * |
rgrover1 | 0:8e57f3e9cc89 | 19 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 20 | |
rgrover1 | 0:8e57f3e9cc89 | 21 | This file is part of the FreeRTOS distribution. |
rgrover1 | 0:8e57f3e9cc89 | 22 | |
rgrover1 | 0:8e57f3e9cc89 | 23 | FreeRTOS is free software; you can redistribute it and/or modify it under |
rgrover1 | 0:8e57f3e9cc89 | 24 | the terms of the GNU General Public License (version 2) as published by the |
rgrover1 | 0:8e57f3e9cc89 | 25 | Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. |
rgrover1 | 0:8e57f3e9cc89 | 26 | |
rgrover1 | 0:8e57f3e9cc89 | 27 | >>! NOTE: The modification to the GPL is included to allow you to distribute |
rgrover1 | 0:8e57f3e9cc89 | 28 | >>! a combined work that includes FreeRTOS without being obliged to provide |
rgrover1 | 0:8e57f3e9cc89 | 29 | >>! the source code for proprietary components outside of the FreeRTOS |
rgrover1 | 0:8e57f3e9cc89 | 30 | >>! kernel. |
rgrover1 | 0:8e57f3e9cc89 | 31 | |
rgrover1 | 0:8e57f3e9cc89 | 32 | FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY |
rgrover1 | 0:8e57f3e9cc89 | 33 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
rgrover1 | 0:8e57f3e9cc89 | 34 | FOR A PARTICULAR PURPOSE. Full license text is available from the following |
rgrover1 | 0:8e57f3e9cc89 | 35 | link: http://www.freertos.org/a00114.html |
rgrover1 | 0:8e57f3e9cc89 | 36 | |
rgrover1 | 0:8e57f3e9cc89 | 37 | 1 tab == 4 spaces! |
rgrover1 | 0:8e57f3e9cc89 | 38 | |
rgrover1 | 0:8e57f3e9cc89 | 39 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 40 | * * |
rgrover1 | 0:8e57f3e9cc89 | 41 | * Having a problem? Start by reading the FAQ "My application does * |
rgrover1 | 0:8e57f3e9cc89 | 42 | * not run, what could be wrong?" * |
rgrover1 | 0:8e57f3e9cc89 | 43 | * * |
rgrover1 | 0:8e57f3e9cc89 | 44 | * http://www.FreeRTOS.org/FAQHelp.html * |
rgrover1 | 0:8e57f3e9cc89 | 45 | * * |
rgrover1 | 0:8e57f3e9cc89 | 46 | *************************************************************************** |
rgrover1 | 0:8e57f3e9cc89 | 47 | |
rgrover1 | 0:8e57f3e9cc89 | 48 | http://www.FreeRTOS.org - Documentation, books, training, latest versions, |
rgrover1 | 0:8e57f3e9cc89 | 49 | license and Real Time Engineers Ltd. contact details. |
rgrover1 | 0:8e57f3e9cc89 | 50 | |
rgrover1 | 0:8e57f3e9cc89 | 51 | http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, |
rgrover1 | 0:8e57f3e9cc89 | 52 | including FreeRTOS+Trace - an indispensable productivity tool, a DOS |
rgrover1 | 0:8e57f3e9cc89 | 53 | compatible FAT file system, and our tiny thread aware UDP/IP stack. |
rgrover1 | 0:8e57f3e9cc89 | 54 | |
rgrover1 | 0:8e57f3e9cc89 | 55 | http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High |
rgrover1 | 0:8e57f3e9cc89 | 56 | Integrity Systems to sell under the OpenRTOS brand. Low cost OpenRTOS |
rgrover1 | 0:8e57f3e9cc89 | 57 | licenses offer ticketed support, indemnification and middleware. |
rgrover1 | 0:8e57f3e9cc89 | 58 | |
rgrover1 | 0:8e57f3e9cc89 | 59 | http://www.SafeRTOS.com - High Integrity Systems also provide a safety |
rgrover1 | 0:8e57f3e9cc89 | 60 | engineered and independently SIL3 certified version for use in safety and |
rgrover1 | 0:8e57f3e9cc89 | 61 | mission critical applications that require provable dependability. |
rgrover1 | 0:8e57f3e9cc89 | 62 | |
rgrover1 | 0:8e57f3e9cc89 | 63 | 1 tab == 4 spaces! |
rgrover1 | 0:8e57f3e9cc89 | 64 | */ |
rgrover1 | 0:8e57f3e9cc89 | 65 | |
rgrover1 | 0:8e57f3e9cc89 | 66 | /*----------------------------------------------------------- |
rgrover1 | 0:8e57f3e9cc89 | 67 | * Portable layer API. Each function must be defined for each port. |
rgrover1 | 0:8e57f3e9cc89 | 68 | *----------------------------------------------------------*/ |
rgrover1 | 0:8e57f3e9cc89 | 69 | |
rgrover1 | 0:8e57f3e9cc89 | 70 | #ifndef PORTABLE_H |
rgrover1 | 0:8e57f3e9cc89 | 71 | #define PORTABLE_H |
rgrover1 | 0:8e57f3e9cc89 | 72 | |
rgrover1 | 0:8e57f3e9cc89 | 73 | /* Include the macro file relevant to the port being used. */ |
rgrover1 | 0:8e57f3e9cc89 | 74 | |
rgrover1 | 0:8e57f3e9cc89 | 75 | #ifdef OPEN_WATCOM_INDUSTRIAL_PC_PORT |
rgrover1 | 0:8e57f3e9cc89 | 76 | #include "..\..\Source\portable\owatcom\16bitdos\pc\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 77 | typedef void ( __interrupt __far *pxISR )(); |
rgrover1 | 0:8e57f3e9cc89 | 78 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 79 | |
rgrover1 | 0:8e57f3e9cc89 | 80 | #ifdef OPEN_WATCOM_FLASH_LITE_186_PORT |
rgrover1 | 0:8e57f3e9cc89 | 81 | #include "..\..\Source\portable\owatcom\16bitdos\flsh186\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 82 | typedef void ( __interrupt __far *pxISR )(); |
rgrover1 | 0:8e57f3e9cc89 | 83 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 84 | |
rgrover1 | 0:8e57f3e9cc89 | 85 | #ifdef GCC_MEGA_AVR |
rgrover1 | 0:8e57f3e9cc89 | 86 | #include "../portable/GCC/ATMega323/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 87 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 88 | |
rgrover1 | 0:8e57f3e9cc89 | 89 | #ifdef IAR_MEGA_AVR |
rgrover1 | 0:8e57f3e9cc89 | 90 | #include "../portable/IAR/ATMega323/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 91 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 92 | |
rgrover1 | 0:8e57f3e9cc89 | 93 | #ifdef MPLAB_PIC24_PORT |
rgrover1 | 0:8e57f3e9cc89 | 94 | #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 95 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 96 | |
rgrover1 | 0:8e57f3e9cc89 | 97 | #ifdef MPLAB_DSPIC_PORT |
rgrover1 | 0:8e57f3e9cc89 | 98 | #include "..\..\Source\portable\MPLAB\PIC24_dsPIC\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 99 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 100 | |
rgrover1 | 0:8e57f3e9cc89 | 101 | #ifdef MPLAB_PIC18F_PORT |
rgrover1 | 0:8e57f3e9cc89 | 102 | #include "..\..\Source\portable\MPLAB\PIC18F\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 103 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 104 | |
rgrover1 | 0:8e57f3e9cc89 | 105 | #ifdef MPLAB_PIC32MX_PORT |
rgrover1 | 0:8e57f3e9cc89 | 106 | #include "../../Source/portable/MPLAB/PIC32MX/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 107 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 108 | |
rgrover1 | 0:8e57f3e9cc89 | 109 | #ifdef _FEDPICC |
rgrover1 | 0:8e57f3e9cc89 | 110 | #include "libFreeRTOS/Include/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 111 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 112 | |
rgrover1 | 0:8e57f3e9cc89 | 113 | #ifdef SDCC_CYGNAL |
rgrover1 | 0:8e57f3e9cc89 | 114 | #include "../../Source/portable/SDCC/Cygnal/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 115 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 116 | |
rgrover1 | 0:8e57f3e9cc89 | 117 | #ifdef GCC_ARM7 |
rgrover1 | 0:8e57f3e9cc89 | 118 | #include "../../Source/portable/GCC/ARM7_LPC2000/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 119 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 120 | |
rgrover1 | 0:8e57f3e9cc89 | 121 | #ifdef GCC_ARM7_ECLIPSE |
rgrover1 | 0:8e57f3e9cc89 | 122 | #include "portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 123 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 124 | |
rgrover1 | 0:8e57f3e9cc89 | 125 | #ifdef ROWLEY_LPC23xx |
rgrover1 | 0:8e57f3e9cc89 | 126 | #include "../../Source/portable/GCC/ARM7_LPC23xx/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 127 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 128 | |
rgrover1 | 0:8e57f3e9cc89 | 129 | #ifdef IAR_MSP430 |
rgrover1 | 0:8e57f3e9cc89 | 130 | #include "..\..\Source\portable\IAR\MSP430\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 131 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 132 | |
rgrover1 | 0:8e57f3e9cc89 | 133 | #ifdef GCC_MSP430 |
rgrover1 | 0:8e57f3e9cc89 | 134 | #include "../../Source/portable/GCC/MSP430F449/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 135 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 136 | |
rgrover1 | 0:8e57f3e9cc89 | 137 | #ifdef ROWLEY_MSP430 |
rgrover1 | 0:8e57f3e9cc89 | 138 | #include "../../Source/portable/Rowley/MSP430F449/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 139 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 140 | |
rgrover1 | 0:8e57f3e9cc89 | 141 | #ifdef ARM7_LPC21xx_KEIL_RVDS |
rgrover1 | 0:8e57f3e9cc89 | 142 | #include "..\..\Source\portable\RVDS\ARM7_LPC21xx\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 143 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 144 | |
rgrover1 | 0:8e57f3e9cc89 | 145 | #ifdef SAM7_GCC |
rgrover1 | 0:8e57f3e9cc89 | 146 | #include "../../Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 147 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 148 | |
rgrover1 | 0:8e57f3e9cc89 | 149 | #ifdef SAM7_IAR |
rgrover1 | 0:8e57f3e9cc89 | 150 | #include "..\..\Source\portable\IAR\AtmelSAM7S64\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 151 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 152 | |
rgrover1 | 0:8e57f3e9cc89 | 153 | #ifdef SAM9XE_IAR |
rgrover1 | 0:8e57f3e9cc89 | 154 | #include "..\..\Source\portable\IAR\AtmelSAM9XE\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 155 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 156 | |
rgrover1 | 0:8e57f3e9cc89 | 157 | #ifdef LPC2000_IAR |
rgrover1 | 0:8e57f3e9cc89 | 158 | #include "..\..\Source\portable\IAR\LPC2000\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 159 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 160 | |
rgrover1 | 0:8e57f3e9cc89 | 161 | #ifdef STR71X_IAR |
rgrover1 | 0:8e57f3e9cc89 | 162 | #include "..\..\Source\portable\IAR\STR71x\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 163 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 164 | |
rgrover1 | 0:8e57f3e9cc89 | 165 | #ifdef STR75X_IAR |
rgrover1 | 0:8e57f3e9cc89 | 166 | #include "..\..\Source\portable\IAR\STR75x\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 167 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 168 | |
rgrover1 | 0:8e57f3e9cc89 | 169 | #ifdef STR75X_GCC |
rgrover1 | 0:8e57f3e9cc89 | 170 | #include "..\..\Source\portable\GCC\STR75x\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 171 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 172 | |
rgrover1 | 0:8e57f3e9cc89 | 173 | #ifdef STR91X_IAR |
rgrover1 | 0:8e57f3e9cc89 | 174 | #include "..\..\Source\portable\IAR\STR91x\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 175 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 176 | |
rgrover1 | 0:8e57f3e9cc89 | 177 | #ifdef GCC_H8S |
rgrover1 | 0:8e57f3e9cc89 | 178 | #include "../../Source/portable/GCC/H8S2329/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 179 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 180 | |
rgrover1 | 0:8e57f3e9cc89 | 181 | #ifdef GCC_AT91FR40008 |
rgrover1 | 0:8e57f3e9cc89 | 182 | #include "../../Source/portable/GCC/ARM7_AT91FR40008/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 183 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 184 | |
rgrover1 | 0:8e57f3e9cc89 | 185 | #ifdef RVDS_ARMCM3_LM3S102 |
rgrover1 | 0:8e57f3e9cc89 | 186 | #include "../../Source/portable/RVDS/ARM_CM3/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 187 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 188 | |
rgrover1 | 0:8e57f3e9cc89 | 189 | #ifdef GCC_ARMCM3_LM3S102 |
rgrover1 | 0:8e57f3e9cc89 | 190 | #include "../../Source/portable/GCC/ARM_CM3/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 191 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 192 | |
rgrover1 | 0:8e57f3e9cc89 | 193 | #ifdef GCC_ARMCM3 |
rgrover1 | 0:8e57f3e9cc89 | 194 | #include "../../Source/portable/GCC/ARM_CM3/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 195 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 196 | |
rgrover1 | 0:8e57f3e9cc89 | 197 | #ifdef IAR_ARM_CM3 |
rgrover1 | 0:8e57f3e9cc89 | 198 | #include "../../Source/portable/IAR/ARM_CM3/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 199 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 200 | |
rgrover1 | 0:8e57f3e9cc89 | 201 | #ifdef IAR_ARMCM3_LM |
rgrover1 | 0:8e57f3e9cc89 | 202 | #include "../../Source/portable/IAR/ARM_CM3/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 203 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 204 | |
rgrover1 | 0:8e57f3e9cc89 | 205 | #ifdef HCS12_CODE_WARRIOR |
rgrover1 | 0:8e57f3e9cc89 | 206 | #include "../../Source/portable/CodeWarrior/HCS12/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 207 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 208 | |
rgrover1 | 0:8e57f3e9cc89 | 209 | #ifdef MICROBLAZE_GCC |
rgrover1 | 0:8e57f3e9cc89 | 210 | #include "../../Source/portable/GCC/MicroBlaze/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 211 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 212 | |
rgrover1 | 0:8e57f3e9cc89 | 213 | #ifdef TERN_EE |
rgrover1 | 0:8e57f3e9cc89 | 214 | #include "..\..\Source\portable\Paradigm\Tern_EE\small\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 215 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 216 | |
rgrover1 | 0:8e57f3e9cc89 | 217 | #ifdef GCC_HCS12 |
rgrover1 | 0:8e57f3e9cc89 | 218 | #include "../../Source/portable/GCC/HCS12/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 219 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 220 | |
rgrover1 | 0:8e57f3e9cc89 | 221 | #ifdef GCC_MCF5235 |
rgrover1 | 0:8e57f3e9cc89 | 222 | #include "../../Source/portable/GCC/MCF5235/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 223 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 224 | |
rgrover1 | 0:8e57f3e9cc89 | 225 | #ifdef COLDFIRE_V2_GCC |
rgrover1 | 0:8e57f3e9cc89 | 226 | #include "../../../Source/portable/GCC/ColdFire_V2/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 227 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 228 | |
rgrover1 | 0:8e57f3e9cc89 | 229 | #ifdef COLDFIRE_V2_CODEWARRIOR |
rgrover1 | 0:8e57f3e9cc89 | 230 | #include "../../Source/portable/CodeWarrior/ColdFire_V2/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 231 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 232 | |
rgrover1 | 0:8e57f3e9cc89 | 233 | #ifdef GCC_PPC405 |
rgrover1 | 0:8e57f3e9cc89 | 234 | #include "../../Source/portable/GCC/PPC405_Xilinx/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 235 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 236 | |
rgrover1 | 0:8e57f3e9cc89 | 237 | #ifdef GCC_PPC440 |
rgrover1 | 0:8e57f3e9cc89 | 238 | #include "../../Source/portable/GCC/PPC440_Xilinx/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 239 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 240 | |
rgrover1 | 0:8e57f3e9cc89 | 241 | #ifdef _16FX_SOFTUNE |
rgrover1 | 0:8e57f3e9cc89 | 242 | #include "..\..\Source\portable\Softune\MB96340\portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 243 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 244 | |
rgrover1 | 0:8e57f3e9cc89 | 245 | #ifdef BCC_INDUSTRIAL_PC_PORT |
rgrover1 | 0:8e57f3e9cc89 | 246 | /* A short file name has to be used in place of the normal |
rgrover1 | 0:8e57f3e9cc89 | 247 | FreeRTOSConfig.h when using the Borland compiler. */ |
rgrover1 | 0:8e57f3e9cc89 | 248 | #include "frconfig.h" |
rgrover1 | 0:8e57f3e9cc89 | 249 | #include "..\portable\BCC\16BitDOS\PC\prtmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 250 | typedef void ( __interrupt __far *pxISR )(); |
rgrover1 | 0:8e57f3e9cc89 | 251 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 252 | |
rgrover1 | 0:8e57f3e9cc89 | 253 | #ifdef BCC_FLASH_LITE_186_PORT |
rgrover1 | 0:8e57f3e9cc89 | 254 | /* A short file name has to be used in place of the normal |
rgrover1 | 0:8e57f3e9cc89 | 255 | FreeRTOSConfig.h when using the Borland compiler. */ |
rgrover1 | 0:8e57f3e9cc89 | 256 | #include "frconfig.h" |
rgrover1 | 0:8e57f3e9cc89 | 257 | #include "..\portable\BCC\16BitDOS\flsh186\prtmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 258 | typedef void ( __interrupt __far *pxISR )(); |
rgrover1 | 0:8e57f3e9cc89 | 259 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 260 | |
rgrover1 | 0:8e57f3e9cc89 | 261 | #ifdef __GNUC__ |
rgrover1 | 0:8e57f3e9cc89 | 262 | #ifdef __AVR32_AVR32A__ |
rgrover1 | 0:8e57f3e9cc89 | 263 | #include "portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 264 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 265 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 266 | |
rgrover1 | 0:8e57f3e9cc89 | 267 | #ifdef __ICCAVR32__ |
rgrover1 | 0:8e57f3e9cc89 | 268 | #ifdef __CORE__ |
rgrover1 | 0:8e57f3e9cc89 | 269 | #if __CORE__ == __AVR32A__ |
rgrover1 | 0:8e57f3e9cc89 | 270 | #include "portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 271 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 272 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 273 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 274 | |
rgrover1 | 0:8e57f3e9cc89 | 275 | #ifdef __91467D |
rgrover1 | 0:8e57f3e9cc89 | 276 | #include "portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 277 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 278 | |
rgrover1 | 0:8e57f3e9cc89 | 279 | #ifdef __96340 |
rgrover1 | 0:8e57f3e9cc89 | 280 | #include "portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 281 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 282 | |
rgrover1 | 0:8e57f3e9cc89 | 283 | |
rgrover1 | 0:8e57f3e9cc89 | 284 | #ifdef __IAR_V850ES_Fx3__ |
rgrover1 | 0:8e57f3e9cc89 | 285 | #include "../../Source/portable/IAR/V850ES/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 286 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 287 | |
rgrover1 | 0:8e57f3e9cc89 | 288 | #ifdef __IAR_V850ES_Jx3__ |
rgrover1 | 0:8e57f3e9cc89 | 289 | #include "../../Source/portable/IAR/V850ES/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 290 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 291 | |
rgrover1 | 0:8e57f3e9cc89 | 292 | #ifdef __IAR_V850ES_Jx3_L__ |
rgrover1 | 0:8e57f3e9cc89 | 293 | #include "../../Source/portable/IAR/V850ES/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 294 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 295 | |
rgrover1 | 0:8e57f3e9cc89 | 296 | #ifdef __IAR_V850ES_Jx2__ |
rgrover1 | 0:8e57f3e9cc89 | 297 | #include "../../Source/portable/IAR/V850ES/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 298 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 299 | |
rgrover1 | 0:8e57f3e9cc89 | 300 | #ifdef __IAR_V850ES_Hx2__ |
rgrover1 | 0:8e57f3e9cc89 | 301 | #include "../../Source/portable/IAR/V850ES/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 302 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 303 | |
rgrover1 | 0:8e57f3e9cc89 | 304 | #ifdef __IAR_78K0R_Kx3__ |
rgrover1 | 0:8e57f3e9cc89 | 305 | #include "../../Source/portable/IAR/78K0R/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 306 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 307 | |
rgrover1 | 0:8e57f3e9cc89 | 308 | #ifdef __IAR_78K0R_Kx3L__ |
rgrover1 | 0:8e57f3e9cc89 | 309 | #include "../../Source/portable/IAR/78K0R/portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 310 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 311 | |
rgrover1 | 0:8e57f3e9cc89 | 312 | /* Catch all to ensure portmacro.h is included in the build. Newer demos |
rgrover1 | 0:8e57f3e9cc89 | 313 | have the path as part of the project options, rather than as relative from |
rgrover1 | 0:8e57f3e9cc89 | 314 | the project location. If portENTER_CRITICAL() has not been defined then |
rgrover1 | 0:8e57f3e9cc89 | 315 | portmacro.h has not yet been included - as every portmacro.h provides a |
rgrover1 | 0:8e57f3e9cc89 | 316 | portENTER_CRITICAL() definition. Check the demo application for your demo |
rgrover1 | 0:8e57f3e9cc89 | 317 | to find the path to the correct portmacro.h file. */ |
rgrover1 | 0:8e57f3e9cc89 | 318 | #ifndef portENTER_CRITICAL |
rgrover1 | 0:8e57f3e9cc89 | 319 | #include "portmacro.h" |
rgrover1 | 0:8e57f3e9cc89 | 320 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 321 | |
rgrover1 | 0:8e57f3e9cc89 | 322 | #if portBYTE_ALIGNMENT == 8 |
rgrover1 | 0:8e57f3e9cc89 | 323 | #define portBYTE_ALIGNMENT_MASK ( 0x0007 ) |
rgrover1 | 0:8e57f3e9cc89 | 324 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 325 | |
rgrover1 | 0:8e57f3e9cc89 | 326 | #if portBYTE_ALIGNMENT == 4 |
rgrover1 | 0:8e57f3e9cc89 | 327 | #define portBYTE_ALIGNMENT_MASK ( 0x0003 ) |
rgrover1 | 0:8e57f3e9cc89 | 328 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 329 | |
rgrover1 | 0:8e57f3e9cc89 | 330 | #if portBYTE_ALIGNMENT == 2 |
rgrover1 | 0:8e57f3e9cc89 | 331 | #define portBYTE_ALIGNMENT_MASK ( 0x0001 ) |
rgrover1 | 0:8e57f3e9cc89 | 332 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 333 | |
rgrover1 | 0:8e57f3e9cc89 | 334 | #if portBYTE_ALIGNMENT == 1 |
rgrover1 | 0:8e57f3e9cc89 | 335 | #define portBYTE_ALIGNMENT_MASK ( 0x0000 ) |
rgrover1 | 0:8e57f3e9cc89 | 336 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 337 | |
rgrover1 | 0:8e57f3e9cc89 | 338 | #ifndef portBYTE_ALIGNMENT_MASK |
rgrover1 | 0:8e57f3e9cc89 | 339 | #error "Invalid portBYTE_ALIGNMENT definition" |
rgrover1 | 0:8e57f3e9cc89 | 340 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 341 | |
rgrover1 | 0:8e57f3e9cc89 | 342 | #ifndef portNUM_CONFIGURABLE_REGIONS |
rgrover1 | 0:8e57f3e9cc89 | 343 | #define portNUM_CONFIGURABLE_REGIONS 1 |
rgrover1 | 0:8e57f3e9cc89 | 344 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 345 | |
rgrover1 | 0:8e57f3e9cc89 | 346 | #ifdef __cplusplus |
rgrover1 | 0:8e57f3e9cc89 | 347 | extern "C" { |
rgrover1 | 0:8e57f3e9cc89 | 348 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 349 | |
rgrover1 | 0:8e57f3e9cc89 | 350 | #include "mpu_wrappers.h" |
rgrover1 | 0:8e57f3e9cc89 | 351 | |
rgrover1 | 0:8e57f3e9cc89 | 352 | /* |
rgrover1 | 0:8e57f3e9cc89 | 353 | * Setup the stack of a new task so it is ready to be placed under the |
rgrover1 | 0:8e57f3e9cc89 | 354 | * scheduler control. The registers have to be placed on the stack in |
rgrover1 | 0:8e57f3e9cc89 | 355 | * the order that the port expects to find them. |
rgrover1 | 0:8e57f3e9cc89 | 356 | * |
rgrover1 | 0:8e57f3e9cc89 | 357 | */ |
rgrover1 | 0:8e57f3e9cc89 | 358 | #if( portUSING_MPU_WRAPPERS == 1 ) |
rgrover1 | 0:8e57f3e9cc89 | 359 | portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters, portBASE_TYPE xRunPrivileged ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 360 | #else |
rgrover1 | 0:8e57f3e9cc89 | 361 | portSTACK_TYPE *pxPortInitialiseStack( portSTACK_TYPE *pxTopOfStack, pdTASK_CODE pxCode, void *pvParameters ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 362 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 363 | |
rgrover1 | 0:8e57f3e9cc89 | 364 | /* |
rgrover1 | 0:8e57f3e9cc89 | 365 | * Map to the memory management routines required for the port. |
rgrover1 | 0:8e57f3e9cc89 | 366 | */ |
rgrover1 | 0:8e57f3e9cc89 | 367 | void *pvPortMalloc( size_t xSize ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 368 | void vPortFree( void *pv ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 369 | void vPortInitialiseBlocks( void ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 370 | size_t xPortGetFreeHeapSize( void ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 371 | |
rgrover1 | 0:8e57f3e9cc89 | 372 | /* |
rgrover1 | 0:8e57f3e9cc89 | 373 | * Setup the hardware ready for the scheduler to take control. This generally |
rgrover1 | 0:8e57f3e9cc89 | 374 | * sets up a tick interrupt and sets timers for the correct tick frequency. |
rgrover1 | 0:8e57f3e9cc89 | 375 | */ |
rgrover1 | 0:8e57f3e9cc89 | 376 | portBASE_TYPE xPortStartScheduler( void ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 377 | |
rgrover1 | 0:8e57f3e9cc89 | 378 | /* |
rgrover1 | 0:8e57f3e9cc89 | 379 | * Undo any hardware/ISR setup that was performed by xPortStartScheduler() so |
rgrover1 | 0:8e57f3e9cc89 | 380 | * the hardware is left in its original condition after the scheduler stops |
rgrover1 | 0:8e57f3e9cc89 | 381 | * executing. |
rgrover1 | 0:8e57f3e9cc89 | 382 | */ |
rgrover1 | 0:8e57f3e9cc89 | 383 | void vPortEndScheduler( void ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 384 | |
rgrover1 | 0:8e57f3e9cc89 | 385 | /* |
rgrover1 | 0:8e57f3e9cc89 | 386 | * The structures and methods of manipulating the MPU are contained within the |
rgrover1 | 0:8e57f3e9cc89 | 387 | * port layer. |
rgrover1 | 0:8e57f3e9cc89 | 388 | * |
rgrover1 | 0:8e57f3e9cc89 | 389 | * Fills the xMPUSettings structure with the memory region information |
rgrover1 | 0:8e57f3e9cc89 | 390 | * contained in xRegions. |
rgrover1 | 0:8e57f3e9cc89 | 391 | */ |
rgrover1 | 0:8e57f3e9cc89 | 392 | #if( portUSING_MPU_WRAPPERS == 1 ) |
rgrover1 | 0:8e57f3e9cc89 | 393 | struct xMEMORY_REGION; |
rgrover1 | 0:8e57f3e9cc89 | 394 | void vPortStoreTaskMPUSettings( xMPU_SETTINGS *xMPUSettings, const struct xMEMORY_REGION * const xRegions, portSTACK_TYPE *pxBottomOfStack, unsigned short usStackDepth ) PRIVILEGED_FUNCTION; |
rgrover1 | 0:8e57f3e9cc89 | 395 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 396 | |
rgrover1 | 0:8e57f3e9cc89 | 397 | #ifdef __cplusplus |
rgrover1 | 0:8e57f3e9cc89 | 398 | } |
rgrover1 | 0:8e57f3e9cc89 | 399 | #endif |
rgrover1 | 0:8e57f3e9cc89 | 400 | |
rgrover1 | 0:8e57f3e9cc89 | 401 | #endif /* PORTABLE_H */ |
rgrover1 | 0:8e57f3e9cc89 | 402 |