FreeRTOSConfig.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. /*
  2. * FreeRTOS Kernel V10.2.1
  3. * Copyright (C) 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
  4. *
  5. * Permission is hereby granted, free of charge, to any person obtaining a copy of
  6. * this software and associated documentation files (the "Software"), to deal in
  7. * the Software without restriction, including without limitation the rights to
  8. * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
  9. * the Software, and to permit persons to whom the Software is furnished to do so,
  10. * subject to the following conditions:
  11. *
  12. * The above copyright notice and this permission notice shall be included in all
  13. * copies or substantial portions of the Software.
  14. *
  15. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  16. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  17. * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  18. * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  19. * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  20. * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  21. *
  22. * http://www.FreeRTOS.org
  23. * http://aws.amazon.com/freertos
  24. *
  25. * 1 tab == 4 spaces!
  26. */
  27. #ifndef FREERTOS_CONFIG_H
  28. #define FREERTOS_CONFIG_H
  29. /*-----------------------------------------------------------
  30. * Application specific definitions.
  31. *
  32. * These definitions should be adjusted for your particular hardware and
  33. * application requirements.
  34. *
  35. * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE
  36. * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.
  37. *
  38. * See http://www.freertos.org/a00110.html.
  39. *----------------------------------------------------------*/
  40. #if defined(BL602) || defined(BL702) || defined(BL702L)
  41. #define configMTIME_BASE_ADDRESS (0x02000000UL + 0xBFF8UL)
  42. #define configMTIMECMP_BASE_ADDRESS (0x02000000UL + 0x4000UL)
  43. #else
  44. #if __riscv_xlen == 64
  45. #define configMTIME_BASE_ADDRESS (0)
  46. #define configMTIMECMP_BASE_ADDRESS ((0xE4000000UL) + 0x4000UL)
  47. #else
  48. #define configMTIME_BASE_ADDRESS ((0xE0000000UL) + 0xBFF8UL)
  49. #define configMTIMECMP_BASE_ADDRESS ((0xE0000000UL) + 0x4000UL)
  50. #endif
  51. #endif
  52. #define configSUPPORT_STATIC_ALLOCATION 1
  53. #define configUSE_PREEMPTION 1
  54. #define configUSE_IDLE_HOOK 0
  55. #define configUSE_TICK_HOOK 0
  56. #define configCPU_CLOCK_HZ ((uint32_t)(1 * 1000 * 1000))
  57. #define configTICK_RATE_HZ ((TickType_t)1000)
  58. #define configMAX_PRIORITIES (32)
  59. #define configMINIMAL_STACK_SIZE ((unsigned short)128) /* Only needs to be this high as some demo tasks also use this constant. In production only the idle task would use this. */
  60. #define configTOTAL_HEAP_SIZE ((size_t)24 * 1024)
  61. #define configMAX_TASK_NAME_LEN (16)
  62. #define configUSE_TRACE_FACILITY 1
  63. #define configUSE_STATS_FORMATTING_FUNCTIONS 1
  64. #define configUSE_16_BIT_TICKS 0
  65. #define configIDLE_SHOULD_YIELD 0
  66. #define configUSE_MUTEXES 1
  67. #define configQUEUE_REGISTRY_SIZE 8
  68. #define configCHECK_FOR_STACK_OVERFLOW 2
  69. #define configUSE_RECURSIVE_MUTEXES 1
  70. #define configUSE_MALLOC_FAILED_HOOK 1
  71. #define configUSE_APPLICATION_TASK_TAG 1
  72. #define configUSE_COUNTING_SEMAPHORES 1
  73. #define configGENERATE_RUN_TIME_STATS 0
  74. #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1
  75. #define configUSE_TICKLESS_IDLE 0
  76. #define configUSE_POSIX_ERRNO 1
  77. #define configTHREAD_LOCAL_STORAGE_DELETE_CALLBACKS 0
  78. /* Co-routine definitions. */
  79. #define configUSE_CO_ROUTINES 0
  80. #define configMAX_CO_ROUTINE_PRIORITIES (2)
  81. /* Software timer definitions. */
  82. #define configUSE_TIMERS 1
  83. #define configTIMER_TASK_PRIORITY (configMAX_PRIORITIES - 1)
  84. #define configTIMER_QUEUE_LENGTH 4
  85. #define configTIMER_TASK_STACK_DEPTH (512)
  86. /* Task priorities. Allow these to be overridden. */
  87. #ifndef uartPRIMARY_PRIORITY
  88. #define uartPRIMARY_PRIORITY (configMAX_PRIORITIES - 3)
  89. #endif
  90. /* Set the following definitions to 1 to include the API function, or zero
  91. to exclude the API function. */
  92. #define INCLUDE_vTaskPrioritySet 1
  93. #define INCLUDE_uxTaskPriorityGet 1
  94. #define INCLUDE_vTaskDelete 1
  95. #define INCLUDE_vTaskCleanUpResources 1
  96. #define INCLUDE_vTaskSuspend 1
  97. #define INCLUDE_vTaskDelayUntil 1
  98. #define INCLUDE_vTaskDelay 1
  99. #define INCLUDE_eTaskGetState 1
  100. #define INCLUDE_xTimerPendFunctionCall 1
  101. #define INCLUDE_xTaskAbortDelay 1
  102. #define INCLUDE_xTaskGetHandle 1
  103. #define INCLUDE_xSemaphoreGetMutexHolder 1
  104. /* Normal assert() semantics without relying on the provision of an assert.h
  105. header file. */
  106. void vApplicationMallocFailedHook(void);
  107. void vAssertCalled(void);
  108. #include <stdio.h>
  109. #define configASSERT(x) \
  110. if ((x) == 0) { \
  111. printf("file [%s]\r\n", __FILE__); \
  112. printf("func [%s]\r\n", __FUNCTION__); \
  113. printf("line [%d]\r\n", __LINE__); \
  114. printf("%s\r\n", (const char *)(#x)); \
  115. vAssertCalled(); \
  116. }
  117. #if (configUSE_TICKLESS_IDLE != 0)
  118. void vApplicationSleep(uint32_t xExpectedIdleTime);
  119. #define portSUPPRESS_TICKS_AND_SLEEP(xExpectedIdleTime) vApplicationSleep(xExpectedIdleTime)
  120. #endif
  121. // #define portUSING_MPU_WRAPPERS
  122. #endif /* FREERTOS_CONFIG_H */