1*0561b2d8STREFOU Felix /* 2*0561b2d8STREFOU Felix * FreeRTOS Kernel V10.2.0 3*0561b2d8STREFOU Felix * Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. 4*0561b2d8STREFOU Felix * 5*0561b2d8STREFOU Felix * Permission is hereby granted, free of charge, to any person obtaining a copy of 6*0561b2d8STREFOU Felix * this software and associated documentation files (the "Software"), to deal in 7*0561b2d8STREFOU Felix * the Software without restriction, including without limitation the rights to 8*0561b2d8STREFOU Felix * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9*0561b2d8STREFOU Felix * the Software, and to permit persons to whom the Software is furnished to do so, 10*0561b2d8STREFOU Felix * subject to the following conditions: 11*0561b2d8STREFOU Felix * 12*0561b2d8STREFOU Felix * The above copyright notice and this permission notice shall be included in all 13*0561b2d8STREFOU Felix * copies or substantial portions of the Software. 14*0561b2d8STREFOU Felix * 15*0561b2d8STREFOU Felix * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16*0561b2d8STREFOU Felix * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17*0561b2d8STREFOU Felix * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18*0561b2d8STREFOU Felix * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19*0561b2d8STREFOU Felix * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20*0561b2d8STREFOU Felix * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21*0561b2d8STREFOU Felix * 22*0561b2d8STREFOU Felix * http://aws.amazon.com/freertos 23*0561b2d8STREFOU Felix * http://www.FreeRTOS.org 24*0561b2d8STREFOU Felix */ 25*0561b2d8STREFOU Felix 26*0561b2d8STREFOU Felix 27*0561b2d8STREFOU Felix #ifndef FREERTOS_CONFIG_H 28*0561b2d8STREFOU Felix #define FREERTOS_CONFIG_H 29*0561b2d8STREFOU Felix 30*0561b2d8STREFOU Felix /*----------------------------------------------------------- 31*0561b2d8STREFOU Felix * Application specific definitions. 32*0561b2d8STREFOU Felix * 33*0561b2d8STREFOU Felix * These definitions should be adjusted for your particular hardware and 34*0561b2d8STREFOU Felix * application requirements. 35*0561b2d8STREFOU Felix * 36*0561b2d8STREFOU Felix * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE 37*0561b2d8STREFOU Felix * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. 38*0561b2d8STREFOU Felix * 39*0561b2d8STREFOU Felix * See http://www.freertos.org/a00110.html. 40*0561b2d8STREFOU Felix *----------------------------------------------------------*/ 41*0561b2d8STREFOU Felix 42*0561b2d8STREFOU Felix /* Section where include file can be added */ 43*0561b2d8STREFOU Felix #include "stm32wbxx_hal.h" 44*0561b2d8STREFOU Felix 45*0561b2d8STREFOU Felix /* Ensure stdint is only used by the compiler, and not the assembler. */ 46*0561b2d8STREFOU Felix #if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) 47*0561b2d8STREFOU Felix #include <stdint.h> 48*0561b2d8STREFOU Felix #endif 49*0561b2d8STREFOU Felix 50*0561b2d8STREFOU Felix #define configUSE_PREEMPTION 1 51*0561b2d8STREFOU Felix #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 52*0561b2d8STREFOU Felix #define configUSE_TICKLESS_IDLE 1 53*0561b2d8STREFOU Felix #define configCPU_CLOCK_HZ ( SystemCoreClock ) 54*0561b2d8STREFOU Felix #define configTICK_RATE_HZ ((TickType_t)1000) 55*0561b2d8STREFOU Felix #define configMAX_PRIORITIES ( 8 ) 56*0561b2d8STREFOU Felix #define configMINIMAL_STACK_SIZE ((uint16_t)128) 57*0561b2d8STREFOU Felix #define configUSE_16_BIT_TICKS 0 58*0561b2d8STREFOU Felix 59*0561b2d8STREFOU Felix #define configIDLE_SHOULD_YIELD 1 60*0561b2d8STREFOU Felix #define configUSE_TASK_NOTIFICATIONS 1 61*0561b2d8STREFOU Felix #define configUSE_MUTEXES 1 62*0561b2d8STREFOU Felix #define configUSE_RECURSIVE_MUTEXES 1 63*0561b2d8STREFOU Felix #define configUSE_COUNTING_SEMAPHORES 1 64*0561b2d8STREFOU Felix #define configUSE_ALTERNATIVE_API 0 /* Deprecated! */ 65*0561b2d8STREFOU Felix #define configUSE_QUEUE_SETS 0 66*0561b2d8STREFOU Felix #define configUSE_TIME_SLICING 0 67*0561b2d8STREFOU Felix #define configUSE_NEWLIB_REENTRANT 0 68*0561b2d8STREFOU Felix #define configENABLE_BACKWARD_COMPATIBILITY 0 69*0561b2d8STREFOU Felix #define configNUM_THREAD_LOCAL_STORAGE_POINTERS 0 70*0561b2d8STREFOU Felix 71*0561b2d8STREFOU Felix /* Memory allocation related definitions. */ 72*0561b2d8STREFOU Felix #define configSUPPORT_STATIC_ALLOCATION 0 73*0561b2d8STREFOU Felix #define configSUPPORT_DYNAMIC_ALLOCATION 1 74*0561b2d8STREFOU Felix #define configTOTAL_HEAP_SIZE ((size_t)12*1024) 75*0561b2d8STREFOU Felix #define configUSE_HEAP_SCHEME 4 76*0561b2d8STREFOU Felix #define configAPPLICATION_ALLOCATED_HEAP 0 77*0561b2d8STREFOU Felix 78*0561b2d8STREFOU Felix /* Hook function related definitions. */ 79*0561b2d8STREFOU Felix #define configUSE_IDLE_HOOK 0 80*0561b2d8STREFOU Felix #define configUSE_TICK_HOOK 0 81*0561b2d8STREFOU Felix #define configCHECK_FOR_STACK_OVERFLOW 2 82*0561b2d8STREFOU Felix #define configUSE_MALLOC_FAILED_HOOK 0 83*0561b2d8STREFOU Felix #define configUSE_DAEMON_TASK_STARTUP_HOOK 0 84*0561b2d8STREFOU Felix 85*0561b2d8STREFOU Felix /* Debug enablement */ 86*0561b2d8STREFOU Felix #define configUSE_TRACE_FACILITY 1 87*0561b2d8STREFOU Felix #define configMAX_TASK_NAME_LEN 20 88*0561b2d8STREFOU Felix #define configQUEUE_REGISTRY_SIZE 10 89*0561b2d8STREFOU Felix #define configRECORD_STACK_HIGH_ADDRESS 1 90*0561b2d8STREFOU Felix #define configGENERATE_RUN_TIME_STATS 0 91*0561b2d8STREFOU Felix #define configGENERATE_RUN_TIME_STATS_USE_TICKS 0 92*0561b2d8STREFOU Felix 93*0561b2d8STREFOU Felix /* Co-routine definitions. */ 94*0561b2d8STREFOU Felix #define configUSE_CO_ROUTINES 0 95*0561b2d8STREFOU Felix #define configMAX_CO_ROUTINE_PRIORITIES 2 96*0561b2d8STREFOU Felix 97*0561b2d8STREFOU Felix /* Software timer related definitions. */ 98*0561b2d8STREFOU Felix #define configUSE_TIMERS 1 99*0561b2d8STREFOU Felix #define configTIMER_TASK_PRIORITY 3 100*0561b2d8STREFOU Felix #define configTIMER_QUEUE_LENGTH 10 101*0561b2d8STREFOU Felix #define configTIMER_TASK_STACK_DEPTH configMINIMAL_STACK_SIZE 102*0561b2d8STREFOU Felix 103*0561b2d8STREFOU Felix /* Interrupt nesting behaviour configuration. */ 104*0561b2d8STREFOU Felix #define configLIBRARY_LOWEST_INTERRUPT_PRIORITY 15 105*0561b2d8STREFOU Felix #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5 106*0561b2d8STREFOU Felix #define configKERNEL_INTERRUPT_PRIORITY ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) 107*0561b2d8STREFOU Felix #define configMAX_SYSCALL_INTERRUPT_PRIORITY ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) ) 108*0561b2d8STREFOU Felix 109*0561b2d8STREFOU Felix /* Define to trap errors during development. */ 110*0561b2d8STREFOU Felix #define configASSERT( x ) if ((x) == 0) {taskDISABLE_INTERRUPTS(); for( ;; );} 111*0561b2d8STREFOU Felix 112*0561b2d8STREFOU Felix /* FreeRTOS MPU specific definitions. */ 113*0561b2d8STREFOU Felix #define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0 114*0561b2d8STREFOU Felix 115*0561b2d8STREFOU Felix /* Optional functions - most linkers will remove unused functions anyway. */ 116*0561b2d8STREFOU Felix #define INCLUDE_vTaskPrioritySet 1 117*0561b2d8STREFOU Felix #define INCLUDE_uxTaskPriorityGet 1 118*0561b2d8STREFOU Felix #define INCLUDE_vTaskDelete 1 119*0561b2d8STREFOU Felix #define INCLUDE_vTaskCleanUpResources 0 120*0561b2d8STREFOU Felix #define INCLUDE_vTaskSuspend 1 121*0561b2d8STREFOU Felix #define INCLUDE_vTaskDelayUntil 0 122*0561b2d8STREFOU Felix #define INCLUDE_vTaskDelay 1 123*0561b2d8STREFOU Felix #define INCLUDE_xTaskGetSchedulerState 1 124*0561b2d8STREFOU Felix #define INCLUDE_xTaskGetCurrentTaskHandle 1 125*0561b2d8STREFOU Felix #define INCLUDE_xQueueGetMutexHolder 1 126*0561b2d8STREFOU Felix #define INCLUDE_uxTaskGetStackHighWaterMark 1 127*0561b2d8STREFOU Felix 128*0561b2d8STREFOU Felix /* Cortex-M specific definitions. */ 129*0561b2d8STREFOU Felix #ifdef __NVIC_PRIO_BITS 130*0561b2d8STREFOU Felix /* __BVIC_PRIO_BITS will be specified when CMSIS is being used. */ 131*0561b2d8STREFOU Felix #define configPRIO_BITS __NVIC_PRIO_BITS 132*0561b2d8STREFOU Felix #else 133*0561b2d8STREFOU Felix #define configPRIO_BITS 4 134*0561b2d8STREFOU Felix #endif 135*0561b2d8STREFOU Felix 136*0561b2d8STREFOU Felix /* Definitions that map the FreeRTOS port interrupt handlers to their CMSIS 137*0561b2d8STREFOU Felix standard names. */ 138*0561b2d8STREFOU Felix #define vPortSVCHandler SVC_Handler 139*0561b2d8STREFOU Felix #define xPortPendSVHandler PendSV_Handler 140*0561b2d8STREFOU Felix 141*0561b2d8STREFOU Felix #define xPortSysTickHandler SysTick_Handler 142*0561b2d8STREFOU Felix 143*0561b2d8STREFOU Felix /* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */ 144*0561b2d8STREFOU Felix 145*0561b2d8STREFOU Felix #if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) 146*0561b2d8STREFOU Felix void PreSleepProcessing(uint32_t ulExpectedIdleTime); 147*0561b2d8STREFOU Felix void PostSleepProcessing(uint32_t ulExpectedIdleTime); 148*0561b2d8STREFOU Felix #endif /* defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) */ 149*0561b2d8STREFOU Felix 150*0561b2d8STREFOU Felix /* The configPRE_SLEEP_PROCESSING() and configPOST_SLEEP_PROCESSING() macros 151*0561b2d8STREFOU Felix allow the application writer to add additional code before and after the MCU is 152*0561b2d8STREFOU Felix placed into the low power state respectively. */ 153*0561b2d8STREFOU Felix #if configUSE_TICKLESS_IDLE == 1 154*0561b2d8STREFOU Felix #define configPRE_SLEEP_PROCESSING(idleTime) do { \ 155*0561b2d8STREFOU Felix idleTime = 0; \ 156*0561b2d8STREFOU Felix HAL_PWR_EnterSLEEPMode(PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI); \ 157*0561b2d8STREFOU Felix } while(0) 158*0561b2d8STREFOU Felix 159*0561b2d8STREFOU Felix #define configPOST_SLEEP_PROCESSING(unusedVar) do {} while(0) 160*0561b2d8STREFOU Felix #endif /* configUSE_TICKLESS_IDLE == 1 */ 161*0561b2d8STREFOU Felix 162*0561b2d8STREFOU Felix #endif /* FREERTOS_CONFIG_H */ 163