+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc1 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FREERTOS_CONFIG_H\r
-#define FREERTOS_CONFIG_H\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/*-----------------------------------------------------------\r
- * Application specific definitions.\r
- *\r
- * These definitions should be adjusted for your particular hardware and\r
- * application requirements.\r
- *\r
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
- *\r
- * See http://www.freertos.org/a00110.html.\r
- *----------------------------------------------------------*/\r
-\r
-\r
-/* Set configCREATE_LOW_POWER_DEMO as follows:\r
- *\r
- * 0: Build the full test and demo application.\r
- * 1: Build the simple blinky tickless low power demo, generating the tick\r
- * interrupt from the BURTC. EM3 will be entered, but use of the ULFRCO\r
- * clock means timing will be inaccurate.\r
- * 2: Build the simple blinky tickless low power demo, generating the tick from\r
- * the RTC. EM2 will be entered. The LXFO clock is used, which is more\r
- * accurate than the ULFRCO clock.\r
- * See the comments at the top of main.c, main_full.c and main_low_power.c for\r
- * more information.\r
- */\r
-#define configCREATE_LOW_POWER_DEMO 1\r
-\r
-/* Some configuration is dependent on the demo being built. */\r
-#if( configCREATE_LOW_POWER_DEMO == 0 )\r
-\r
- /* Tickless mode is not used. */\r
-\r
- /* Some of the standard demo test tasks assume a tick rate of 1KHz, even\r
- though that is faster than would normally be warranted by a real\r
- application. */\r
- #define configTICK_RATE_HZ ( 1000 )\r
-\r
- /* The full demo always has tasks to run so the tick will never be turned\r
- off. The blinky demo will use the default tickless idle implementation to\r
- turn the tick off. */\r
- #define configUSE_TICKLESS_IDLE 0\r
-\r
- /* Hook function related definitions. */\r
- #define configUSE_TICK_HOOK ( 1 )\r
- #define configCHECK_FOR_STACK_OVERFLOW ( 1 )\r
- #define configUSE_MALLOC_FAILED_HOOK ( 1 )\r
- #define configUSE_IDLE_HOOK ( 1 )\r
-\r
- #define configENERGY_MODE ( sleepEM3 )\r
-\r
-#elif( configCREATE_LOW_POWER_DEMO == 1 )\r
-\r
- /* Tickless idle mode, generating RTOS tick interrupts from the BURTC, fed\r
- by the [inaccurate] ULFRCO clock. */\r
-\r
- /* The slow clock used to generate the tick interrupt in the low power demo\r
- runs at 2KHz. Ensure the tick rate is a multiple of the clock. */\r
- #define configTICK_RATE_HZ ( 100 )\r
-\r
- /* The low power demo uses the tickless idle feature. */\r
- #define configUSE_TICKLESS_IDLE 1\r
-\r
- /* Hook function related definitions. */\r
- #define configUSE_TICK_HOOK ( 0 )\r
- #define configCHECK_FOR_STACK_OVERFLOW ( 0 )\r
- #define configUSE_MALLOC_FAILED_HOOK ( 0 )\r
- #define configUSE_IDLE_HOOK ( 0 )\r
-\r
- #define configENERGY_MODE ( sleepEM3 )\r
-\r
-#elif( configCREATE_LOW_POWER_DEMO == 2 )\r
-\r
- /* Tickless idle mode, generating RTOS tick interrupts from the RTC, fed\r
- by the LXFO clock. */\r
-\r
- /* The slow clock used to generate the tick interrupt in the low power demo\r
- runs at 32768/8=4096Hz. Ensure the tick rate is a multiple of the clock. */\r
- #define configTICK_RATE_HZ ( 128 )\r
-\r
- /* The low power demo uses the tickless idle feature. */\r
- #define configUSE_TICKLESS_IDLE 1\r
-\r
- /* Hook function related definitions. */\r
- #define configUSE_TICK_HOOK ( 0 )\r
- #define configCHECK_FOR_STACK_OVERFLOW ( 0 )\r
- #define configUSE_MALLOC_FAILED_HOOK ( 0 )\r
- #define configUSE_IDLE_HOOK ( 0 )\r
-\r
- #define configENERGY_MODE ( sleepEM3 )\r
-\r
-#endif\r
-\r
-/* Main functions*/\r
-#define configUSE_PREEMPTION ( 1 )\r
-#define configUSE_PORT_OPTIMISED_TASK_SELECTION ( 1 )\r
-#define configSUPPORT_STATIC_ALLOCATION ( 1 )\r
-#define configCPU_CLOCK_HZ (( unsigned long ) 14000000)\r
-#define configMAX_PRIORITIES ( 6 )\r
-#define configMINIMAL_STACK_SIZE (( unsigned short ) 130)\r
-#define configTOTAL_HEAP_SIZE (( size_t )(25000))\r
-#define configMAX_TASK_NAME_LEN ( 10 )\r
-#define configUSE_TRACE_FACILITY ( 0 )\r
-#define configUSE_16_BIT_TICKS ( 0 )\r
-#define configIDLE_SHOULD_YIELD ( 0 )\r
-#define configUSE_MUTEXES ( 1 )\r
-#define configUSE_RECURSIVE_MUTEXES ( 1 )\r
-#define configUSE_COUNTING_SEMAPHORES ( 1 )\r
-#define configUSE_ALTERNATIVE_API ( 0 )/* Deprecated! */\r
-#define configQUEUE_REGISTRY_SIZE ( 10 )\r
-#define configUSE_QUEUE_SETS ( 0 )\r
-\r
-/* Run time stats gathering related definitions. */\r
-#define configGENERATE_RUN_TIME_STATS ( 0 )\r
-\r
-/* Co-routine related definitions. */\r
-#define configUSE_CO_ROUTINES ( 0 )\r
-#define configMAX_CO_ROUTINE_PRIORITIES ( 1 )\r
-\r
-/* Software timer related definitions. */\r
-#define configUSE_TIMERS ( 1 )\r
-#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 ) /* Highest priority */\r
-#define configTIMER_QUEUE_LENGTH ( 10 )\r
-#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE )\r
-\r
-/* Cortex-M specific definitions. */\r
-#ifdef __NVIC_PRIO_BITS\r
- /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */\r
- #define configPRIO_BITS __NVIC_PRIO_BITS\r
-#else\r
- #define configPRIO_BITS 3 /* 7 priority levels */\r
-#endif\r
-\r
-/* The lowest interrupt priority that can be used in a call to a "set priority"\r
-function. */\r
-#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 0x07\r
-\r
-/* The highest interrupt priority that can be used by any interrupt service\r
-routine that makes calls to interrupt safe FreeRTOS API functions. DO NOT CALL\r
-INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A HIGHER\r
-PRIORITY THAN THIS! (higher priorities are lower numeric values. */\r
-#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 0x05\r
-\r
-/* Interrupt priorities used by the kernel port layer itself. These are generic\r
-to all Cortex-M ports, and do not rely on any particular library functions. */\r
-#define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )\r
-/* !!!! configMAX_SYSCALL_INTERRUPT_PRIORITY must not be set to zero !!!!\r
-See http://www.FreeRTOS.org/RTOS-Cortex-M3-M4.html. */\r
-#define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )\r
-\r
-\r
-/* Optional functions - most linkers will remove unused functions anyway. */\r
-#define INCLUDE_vTaskPrioritySet ( 1 )\r
-#define INCLUDE_uxTaskPriorityGet ( 1 )\r
-#define INCLUDE_vTaskDelete ( 1 )\r
-#define INCLUDE_vTaskSuspend ( 1 )\r
-#define INCLUDE_xResumeFromISR ( 1 )\r
-#define INCLUDE_vTaskDelayUntil ( 1 )\r
-#define INCLUDE_vTaskDelay ( 1 )\r
-#define INCLUDE_xTaskGetSchedulerState ( 1 )\r
-#define INCLUDE_xTaskGetCurrentTaskHandle ( 1 )\r
-#define INCLUDE_uxTaskGetStackHighWaterMark ( 0 )\r
-#define INCLUDE_xTaskGetIdleTaskHandle ( 0 )\r
-#define INCLUDE_xTimerGetTimerDaemonTaskHandle ( 0 )\r
-#define INCLUDE_pcTaskGetTaskName ( 0 )\r
-#define INCLUDE_eTaskGetState ( 1 )\r
-#define INCLUDE_xTimerPendFunctionCall ( 1 )\r
-\r
-/* Stop if an assertion fails. */\r
-#define configASSERT( x ) if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }\r
-\r
-/* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS\r
-standard names. */\r
-#define vPortSVCHandler SVC_Handler\r
-#define xPortPendSVHandler PendSV_Handler\r
-#define xPortSysTickHandler SysTick_Handler\r
-\r
-/* For the linker. */\r
-#define fabs __builtin_fabs\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-#endif /* FREERTOS_CONFIG_H */\r
-\r