]> git.sur5r.net Git - freertos/blobdiff - FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Projects/IAR/Config/FreeRTOSConfig.h
Add Cortex M23 GCC and IAR ports. Add demo projects for Nuvoton NuMaker-PFM-2351.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC / Projects / IAR / Config / FreeRTOSConfig.h
diff --git a/FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Projects/IAR/Config/FreeRTOSConfig.h b/FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Projects/IAR/Config/FreeRTOSConfig.h
new file mode 100644 (file)
index 0000000..828d5de
--- /dev/null
@@ -0,0 +1,169 @@
+/*\r
+ * FreeRTOS Kernel V10.2.0\r
+ * Copyright (C) 2019 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
+ *\r
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
+ * this software and associated documentation files (the "Software"), to deal in\r
+ * the Software without restriction, including without limitation the rights to\r
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
+ * the Software, and to permit persons to whom the Software is furnished to do so,\r
+ * subject to the following conditions:\r
+ *\r
+ * The above copyright notice and this permission notice shall be included in all\r
+ * copies or substantial portions of the Software.\r
+ *\r
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
+ *\r
+ * http://www.FreeRTOS.org\r
+ * http://aws.amazon.com/freertos\r
+ *\r
+ * 1 tab == 4 spaces!\r
+ */\r
+\r
+/******************************************************************************\r
+       See http://www.freertos.org/a00110.html for an explanation of the\r
+       definitions contained in this file.\r
+******************************************************************************/\r
+\r
+#ifndef FREERTOS_CONFIG_H\r
+#define FREERTOS_CONFIG_H\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
+ * http://www.freertos.org/a00110.html\r
+ *----------------------------------------------------------*/\r
+\r
+extern uint32_t SystemCoreClock;\r
+\r
+/* Cortex M33 port configuration. */\r
+#define configENABLE_MPU                                                               1\r
+#define configENABLE_FPU                                                               0\r
+#define configENABLE_TRUSTZONE                                                 1\r
+\r
+/* Constants related to the behaviour or the scheduler. */\r
+#define configUSE_PORT_OPTIMISED_TASK_SELECTION                        0\r
+#define configUSE_PREEMPTION                                                   1\r
+#define configUSE_TIME_SLICING                                                 1\r
+#define configMAX_PRIORITIES                                                   ( 5 )\r
+#define configIDLE_SHOULD_YIELD                                                        1\r
+#define configUSE_16_BIT_TICKS                                                 0 /* Only for 8 and 16-bit hardware. */\r
+\r
+/* Constants that describe the hardware and memory usage. */\r
+#define configCPU_CLOCK_HZ                                                             SystemCoreClock\r
+#define configMINIMAL_STACK_SIZE                                               ( ( uint16_t ) 128 )\r
+#define configMINIMAL_SECURE_STACK_SIZE                                        ( 1024 )\r
+#define configMAX_TASK_NAME_LEN                                                        ( 12 )\r
+#define configTOTAL_HEAP_SIZE                                                  ( ( size_t ) ( 50 * 1024 ) )\r
+\r
+/* Constants that build features in or out. */\r
+#define configUSE_MUTEXES                                                              1\r
+#define configUSE_TICKLESS_IDLE                                                        1\r
+#define configUSE_APPLICATION_TASK_TAG                                 0\r
+#define configUSE_NEWLIB_REENTRANT                                             0\r
+#define configUSE_CO_ROUTINES                                                  0\r
+#define configUSE_COUNTING_SEMAPHORES                                  1\r
+#define configUSE_RECURSIVE_MUTEXES                                            1\r
+#define configUSE_QUEUE_SETS                                                   0\r
+#define configUSE_TASK_NOTIFICATIONS                                   1\r
+#define configUSE_TRACE_FACILITY                                               1\r
+\r
+/* Constants that define which hook (callback) functions should be used. */\r
+#define configUSE_IDLE_HOOK                                                            0\r
+#define configUSE_TICK_HOOK                                                            0\r
+#define configUSE_MALLOC_FAILED_HOOK                                   0\r
+\r
+/* Constants provided for debugging and optimisation assistance. */\r
+#define configCHECK_FOR_STACK_OVERFLOW                                 2\r
+#define configASSERT( x )                                                              if( ( x ) == 0 ) { taskDISABLE_INTERRUPTS(); for( ;; ); }\r
+#define configQUEUE_REGISTRY_SIZE                                              0\r
+\r
+/* Software timer definitions. */\r
+#define configUSE_TIMERS                                                               1\r
+#define configTIMER_TASK_PRIORITY                                              ( 3 )\r
+#define configTIMER_QUEUE_LENGTH                                               5\r
+#define configTIMER_TASK_STACK_DEPTH                                   ( configMINIMAL_STACK_SIZE  )\r
+\r
+/* Set the following definitions to 1 to include the API function, or zero\r
+ * to exclude the API function.  NOTE:  Setting an INCLUDE_ parameter to 0 is\r
+ * only necessary if the linker does not automatically remove functions that are\r
+ * not referenced anyway. */\r
+#define INCLUDE_vTaskPrioritySet                                               1\r
+#define INCLUDE_uxTaskPriorityGet                                              1\r
+#define INCLUDE_vTaskDelete                                                            1\r
+#define INCLUDE_vTaskCleanUpResources                                  0\r
+#define INCLUDE_vTaskSuspend                                                   1\r
+#define INCLUDE_vTaskDelayUntil                                                        1\r
+#define INCLUDE_vTaskDelay                                                             1\r
+#define INCLUDE_uxTaskGetStackHighWaterMark                            0\r
+#define INCLUDE_xTaskGetIdleTaskHandle                                 0\r
+#define INCLUDE_eTaskGetState                                                  1\r
+#define INCLUDE_xTaskResumeFromISR                                             0\r
+#define INCLUDE_xTaskGetCurrentTaskHandle                              1\r
+#define INCLUDE_xTaskGetSchedulerState                                 0\r
+#define INCLUDE_xSemaphoreGetMutexHolder                               0\r
+#define INCLUDE_xTimerPendFunctionCall                                 1\r
+\r
+/* This demo makes use of one or more example stats formatting functions.  These\r
+ * format the raw data provided by the uxTaskGetSystemState() function in to\r
+ * human readable ASCII form.  See the notes in the implementation of vTaskList()\r
+ * within FreeRTOS/Source/tasks.c for limitations. */\r
+#define configUSE_STATS_FORMATTING_FUNCTIONS                   1\r
+\r
+/* Dimensions a buffer that can be used by the FreeRTOS+CLI command interpreter.\r
+ * See the FreeRTOS+CLI documentation for more information:\r
+ * http://www.FreeRTOS.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/ */\r
+#define configCOMMAND_INT_MAX_OUTPUT_SIZE                              2048\r
+\r
+/* Interrupt priority configuration follows...................... */\r
+\r
+/* Use the system definition, if there is one. */\r
+#ifdef __NVIC_PRIO_BITS\r
+       #define configPRIO_BITS                                                         __NVIC_PRIO_BITS\r
+#else\r
+       #define configPRIO_BITS                                                         3        /* 8 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\r
+ * CALL INTERRUPT SAFE FREERTOS API FUNCTIONS FROM ANY INTERRUPT THAT HAS A\r
+ * HIGHER PRIORITY THAN THIS! (higher priorities are lower numeric values). */\r
+#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY   5\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
+\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
+/* The #ifdef guards against the file being included from IAR assembly files. */\r
+#ifndef __IASMARM__\r
+\r
+       /* Constants related to the generation of run time stats. */\r
+       #define configGENERATE_RUN_TIME_STATS                           0\r
+       #define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS()\r
+       #define portGET_RUN_TIME_COUNTER_VALUE()                        0\r
+       #define configTICK_RATE_HZ                                                      ( ( TickType_t ) 100 )\r
+\r
+#endif /* __IASMARM__ */\r
+\r
+/* Enable static allocation. */\r
+#define configSUPPORT_STATIC_ALLOCATION                                        1\r
+\r
+#endif /* FREERTOS_CONFIG_H */\r