Upgrading From FreeRTOS V10.2.1 to V10.3.0
Backward Compatibility
FreeRTOS 10.3.0 contains the new configuration options described in the sections below. New
options that are left undefined will default to a value that ensures backward compatibility
with FreeRTOS V10.2.x. Therefore FreeRTOS 10.3.0 is a backward compatible drop-in replacement for
FreeRTOS V10.2.1.
ARM Cortex-M Memory Protection Unit (MPU) Ports
The ARMv7-M (ARM Cortex-M3, ARM Cortex-M4F and ARM Cortex-M7) ports that use
the Memory Protection Unit (MPU) have the following new configuration option:
- configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY
When
configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY is defined to 1 in
FreeRTOSConfig.h, privilege escalations can only occur from within FreeRTOS
kernel code (other than escalations performed by the hardware itself when an
interrupt is entered). It requires that all the functions with
freertos_system_calls attribute are placed in a separate section and the
following two additional variables are exported from linker scripts to inform
the location of this section:
- __syscalls_flash_start__
- __syscalls_flash_end__
Pre-configured examples are provided for GCC, Keil uVision and IAR Embedded
Workbench in the
FreeRTOS/Demo/CORTEX_MPU_STM32L4_Discovery_GCC_IAR_Keil
and
FreeRTOS/Demo/CORTEX_MPU_M3_NUCLEO_L152RE_GCC directories.
See
FreeRTOS Memory Protection
Unit (MPU) Support for more details about how to use FreeRTOS-MPU ports.
RISC-V Ports
The
configCLINT_BASE_ADDRESS configuration setting is deprecated and
replaced by
configMTIME_BASE_ADDRESS and
configMTIMECMP_BASE_ADDRESS.
The new settings are described on the
Using FreeRTOS on RISC-V Microcontrollers documentation page.
Legacy applications that still use configCLINT_BASE_ADDRESS
will generate a compiler warning, but otherwise continue to build and function as
before.
Other Changes
See the
change history for more details of new ports
and other enhancements.
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.