| 
									
										
										
										
											2013-04-14 01:54:02 +08:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * @brief Common FreeRTOS functions shared among platforms | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @note | 
					
						
							|  |  |  |  * Copyright(C) NXP Semiconductors, 2012 | 
					
						
							|  |  |  |  * All rights reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @par | 
					
						
							|  |  |  |  * Software that is described herein is for illustrative purposes only | 
					
						
							|  |  |  |  * which provides customers with programming information regarding the | 
					
						
							|  |  |  |  * LPC products.  This software is supplied "AS IS" without any warranties of | 
					
						
							|  |  |  |  * any kind, and NXP Semiconductors and its licensor disclaim any and | 
					
						
							|  |  |  |  * all warranties, express or implied, including all implied warranties of | 
					
						
							|  |  |  |  * merchantability, fitness for a particular purpose and non-infringement of | 
					
						
							|  |  |  |  * intellectual property rights.  NXP Semiconductors assumes no responsibility | 
					
						
							|  |  |  |  * or liability for the use of the software, conveys no license or rights under any | 
					
						
							|  |  |  |  * patent, copyright, mask work right, or any other intellectual property rights in | 
					
						
							|  |  |  |  * or to any products. NXP Semiconductors reserves the right to make changes | 
					
						
							|  |  |  |  * in the software without notification. NXP Semiconductors also makes no | 
					
						
							|  |  |  |  * representation or warranty that such application will be suitable for the | 
					
						
							|  |  |  |  * specified use without further testing or modification. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @par | 
					
						
							|  |  |  |  * Permission to use, copy, modify, and distribute this software and its | 
					
						
							|  |  |  |  * documentation is hereby granted, under NXP Semiconductors' and its | 
					
						
							|  |  |  |  * licensor's relevant copyrights in the software, without fee, provided that it | 
					
						
							|  |  |  |  * is used in conjunction with NXP Semiconductors microcontrollers.  This | 
					
						
							|  |  |  |  * copyright, permission, and disclaimer notice must appear in all copies of | 
					
						
							|  |  |  |  * this code. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "FreeRTOS.h"
 | 
					
						
							|  |  |  | #include "task.h"
 | 
					
						
							|  |  |  | #include "FreeRTOSCommonHooks.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-25 15:43:33 +07:00
										 |  |  | #include "boards/board.h"
 | 
					
						
							| 
									
										
										
										
											2013-04-14 01:54:02 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | /*****************************************************************************
 | 
					
						
							|  |  |  |  * Private types/enumerations/variables | 
					
						
							|  |  |  |  ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*****************************************************************************
 | 
					
						
							|  |  |  |  * Public types/enumerations/variables | 
					
						
							|  |  |  |  ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*****************************************************************************
 | 
					
						
							|  |  |  |  * Private functions | 
					
						
							|  |  |  |  ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*****************************************************************************
 | 
					
						
							|  |  |  |  * Public functions | 
					
						
							|  |  |  |  ****************************************************************************/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* Delay for the specified number of milliSeconds */ | 
					
						
							|  |  |  | void FreeRTOSDelay(uint32_t ms) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	portTickType xDelayTime; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	xDelayTime = xTaskGetTickCount(); | 
					
						
							|  |  |  | 	vTaskDelayUntil(&xDelayTime, ms); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* FreeRTOS malloc fail hook */ | 
					
						
							|  |  |  | void vApplicationMallocFailedHook(void) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2013-04-25 16:41:00 +07:00
										 |  |  | 	PRINTF("DIE:ERROR:FreeRTOS: Malloc Failure!\r\n"); | 
					
						
							| 
									
										
										
										
											2013-04-14 01:54:02 +08:00
										 |  |  | 	taskDISABLE_INTERRUPTS(); | 
					
						
							|  |  |  | 	for (;; ) {} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* FreeRTOS application idle hook */ | 
					
						
							|  |  |  | void vApplicationIdleHook(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	/* Best to sleep here until next systick */ | 
					
						
							|  |  |  | 	__WFI(); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* FreeRTOS stack overflow hook */ | 
					
						
							|  |  |  | void vApplicationStackOverflowHook(xTaskHandle pxTask, signed char *pcTaskName) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	(void) pxTask; | 
					
						
							|  |  |  | 	(void) pcTaskName; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-25 15:43:33 +07:00
										 |  |  | 	PRINTF("DIE:ERROR:FreeRTOS: Stack overflow in task %s\r\n", pcTaskName); | 
					
						
							| 
									
										
										
										
											2013-04-14 01:54:02 +08:00
										 |  |  | 	/* Run time stack overflow checking is performed if
 | 
					
						
							|  |  |  | 	   configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.  This hook | 
					
						
							|  |  |  | 	   function is called if a stack overflow is detected. */ | 
					
						
							|  |  |  | 	taskDISABLE_INTERRUPTS(); | 
					
						
							|  |  |  | 	for (;; ) {} | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* FreeRTOS application tick hook */ | 
					
						
							|  |  |  | void vApplicationTickHook(void) | 
					
						
							|  |  |  | {} |