Merge branch 'ARM_CRx_MPU' of github.com:Skptak/FreeRTOS-Kernel into ARM_CRx_MPU

This commit is contained in:
Soren Ptak 2024-02-01 11:29:17 -05:00
commit fe424a116e
3 changed files with 44 additions and 6 deletions

View file

@ -218,16 +218,17 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_
" port.c\n" " port.c\n"
" portmacro.h\n" " portmacro.h\n"
" Where FreeRTOSCustomPort/CMakeLists.txt is a modified version of:\n" " Where FreeRTOSCustomPort/CMakeLists.txt is a modified version of:\n"
" add_library(freertos_kernel_port STATIC)\n" " add_library(freertos_kernel_port OBJECT)\n"
" target_sources(freertos_kernel_port\n" " target_sources(freertos_kernel_port\n"
" PRIVATE\n" " PRIVATE\n"
" port.c\n" " port.c\n"
" portmacro.h)\n" " portmacro.h)\n"
" target_include_directories(freertos_kernel_port\n" " add_library(freertos_kernel_port_headers INTERFACE)\n"
" PUBLIC\n" " target_include_directories(freertos_kernel_port_headers INTERFACE \n"
" .)\n" " .)\n"
" target_link_libraries(freertos_kernel_port\n" " target_link_libraries(freertos_kernel_port\n"
" PRIVATE\n" " PRIVATE\n"
" freertos_kernel_port_headers\n"
" freertos_kernel_include)") " freertos_kernel_include)")
endif() endif()
@ -258,8 +259,11 @@ endif()
target_link_libraries(freertos_kernel target_link_libraries(freertos_kernel
PUBLIC PUBLIC
freertos_kernel_port
freertos_kernel_include freertos_kernel_include
freertos_kernel_port_headers
PRIVATE
freertos_kernel_port
) )
######################################################################## ########################################################################

View file

@ -531,6 +531,38 @@
* setting configKERNEL_PROVIDED_STATIC_MEMORY to 0 or leaving it undefined. */ * setting configKERNEL_PROVIDED_STATIC_MEMORY to 0 or leaving it undefined. */
#define configKERNEL_PROVIDED_STATIC_MEMORY 1 #define configKERNEL_PROVIDED_STATIC_MEMORY 1
/******************************************************************************/
/* ARMv8-M port Specific Configuration definitions. ***************************/
/******************************************************************************/
/* Set configENABLE_TRUSTZONE to 1 when running FreeRTOS on the non-secure side
* to enable the TrustZone support in FreeRTOS ARMv8-M ports which allows the
* non-secure FreeRTOS tasks to call the (non-secure callable) functions
* exported from secure side. */
#define configENABLE_TRUSTZONE 1
/* If the application writer does not want to use TrustZone, but the hardware does
* not support disabling TrustZone then the entire application (including the FreeRTOS
* scheduler) can run on the secure side without ever branching to the non-secure side.
* To do that, in addition to setting configENABLE_TRUSTZONE to 0, also set
* configRUN_FREERTOS_SECURE_ONLY to 1. */
#define configRUN_FREERTOS_SECURE_ONLY 1
/* Set configENABLE_MPU to 1 to enable the Memory Protection Unit (MPU), or 0
* to leave the Memory Protection Unit disabled. */
#define configENABLE_MPU 1
/* Set configENABLE_FPU to 1 to enable the Floating Point Unit (FPU), or 0
* to leave the Floating Point Unit disabled. */
#define configENABLE_FPU 1
/* Set configENABLE_MVE to 1 to enable the M-Profile Vector Extension (MVE) support,
* or 0 to leave the MVE support disabled. This option is only applicable to Cortex-M55
* and Cortex-M85 ports as M-Profile Vector Extension (MVE) is available only on
* these architectures. configENABLE_MVE must be left undefined, or defined to 0
* for the Cortex-M23,Cortex-M33 and Cortex-M35P ports. */
#define configENABLE_MVE 1
/******************************************************************************/ /******************************************************************************/
/* Definitions that include or exclude functionality. *************************/ /* Definitions that include or exclude functionality. *************************/
/******************************************************************************/ /******************************************************************************/

View file

@ -15,7 +15,7 @@ endif()
# FreeRTOS internal cmake file. Do not use it in user top-level project # FreeRTOS internal cmake file. Do not use it in user top-level project
add_library(freertos_kernel_port STATIC add_library(freertos_kernel_port OBJECT
# TEMPLATE Port # TEMPLATE Port
$<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>: $<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:
template/port.c> template/port.c>
@ -760,8 +760,9 @@ if( FREERTOS_PORT MATCHES "GCC_ARM_CM(3|4)_MPU" OR
Common/mpu_wrappers_v2.c Common/mpu_wrappers_v2.c
) )
endif() endif()
add_library(freertos_kernel_port_headers INTERFACE)
target_include_directories(freertos_kernel_port PUBLIC target_include_directories(freertos_kernel_port_headers INTERFACE
# TEMPLATE Port # TEMPLATE Port
$<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:${CMAKE_CURRENT_LIST_DIR}/template> $<$<STREQUAL:${FREERTOS_PORT},TEMPLATE>:${CMAKE_CURRENT_LIST_DIR}/template>
@ -1100,6 +1101,7 @@ target_link_libraries(freertos_kernel_port
PUBLIC PUBLIC
$<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers> $<$<STREQUAL:${FREERTOS_PORT},GCC_RP2040>:pico_base_headers>
$<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32> $<$<STREQUAL:${FREERTOS_PORT},GCC_XTENSA_ESP32>:idf::esp32>
freertos_kernel_port_headers
PRIVATE PRIVATE
freertos_kernel_include freertos_kernel_include
$<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads> $<$<STREQUAL:${FREERTOS_PORT},GCC_POSIX>:Threads::Threads>