www.freertos.org

Dependents:   mbed_freeRTOS_send

Fork of FreeRTOS by Rohit Grover

Committer:
ser1516
Date:
Wed May 18 21:25:21 2016 +0000
Revision:
1:6db425da9b9e
Parent:
0:8e57f3e9cc89
queue implementada com accelarometro e pot a enviar para o can -  ainda nao testado

Who changed what in which revision?

UserRevisionLine numberNew 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