Skip to content

Commit 38f56fd

Browse files
authored
Merge branch 'main' into update-xSemaphoreGetStaticBuffer-comment
2 parents 5ca617d + 54b1356 commit 38f56fd

File tree

127 files changed

+94930
-6528
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

127 files changed

+94930
-6528
lines changed

.github/lexicon.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2468,6 +2468,7 @@ uxportcomparesetextram
24682468
uxpriority
24692469
uxprioritytouse
24702470
uxqueue
2471+
uxqueuegetqueueitemsize
24712472
uxqueuelength
24722473
uxqueuemessageswaiting
24732474
uxqueuespacesavailable

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,9 @@ elseif((FREERTOS_PORT STREQUAL "A_CUSTOM_PORT") AND (NOT TARGET freertos_kernel_
228228
" freertos_kernel_include)")
229229
endif()
230230

231+
232+
add_library(freertos_kernel STATIC)
233+
231234
########################################################################
232235
# Overall Compile Options
233236
# Note the compile option strategy is to error on everything and then
@@ -248,7 +251,7 @@ endif()
248251
# MSVC | MSVC # Note only for MinGW?
249252
# Renesas | ?TBD?
250253

251-
add_compile_options(
254+
target_compile_options(freertos_kernel PRIVATE
252255
### Gnu/Clang C Options
253256
$<$<COMPILE_LANG_AND_ID:C,GNU>:-fdiagnostics-color=always>
254257
$<$<COMPILE_LANG_AND_ID:C,Clang>:-fcolor-diagnostics>
@@ -267,7 +270,7 @@ add_compile_options(
267270
add_subdirectory(include)
268271
add_subdirectory(portable)
269272

270-
add_library(freertos_kernel STATIC
273+
target_sources(freertos_kernel PRIVATE
271274
croutine.c
272275
event_groups.c
273276
list.c
@@ -280,6 +283,7 @@ add_library(freertos_kernel STATIC
280283
$<IF:$<BOOL:$<FILTER:${FREERTOS_HEAP},EXCLUDE,^[1-5]$>>,${FREERTOS_HEAP},portable/MemMang/heap_${FREERTOS_HEAP}.c>
281284
)
282285

286+
283287
target_link_libraries(freertos_kernel
284288
PUBLIC
285289
freertos_kernel_port

History.txt

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,116 @@
11
Documentation and download available at https://www.FreeRTOS.org/
22

3+
Changes between FreeRTOS V10.5.1 and FreeRTOS 10.6.0 released July 13, 2023
4+
5+
+ Add a new MPU wrapper that places additional restrictions on unprivileged
6+
tasks. The following is the list of changes introduced with the new MPU
7+
wrapper:
8+
9+
1. Opaque and indirectly verifiable integers for kernel object handles:
10+
All the kernel object handles (for example, queue handles) are now
11+
opaque integers. Previously object handles were raw pointers.
12+
2. Save the task context in Task Control Block (TCB): When a task is
13+
swapped out by the scheduler, the task's context is now saved in its
14+
TCB. Previously the task's context was saved on its stack.
15+
3. Execute system calls on a separate privileged only stack: FreeRTOS
16+
system calls, which execute with elevated privilege, now use a
17+
separate privileged only stack. Previously system calls used the
18+
calling task's stack. The application writer can control the size of
19+
the system call stack using new configSYSTEM_CALL_STACK_SIZE config
20+
macro.
21+
4. Memory bounds checks: FreeRTOS system calls which accept a pointer
22+
and de-reference it, now verify that the calling task has required
23+
permissions to access the memory location referenced by the pointer.
24+
5. System calls restrictions: The following system calls are no longer
25+
available to unprivileged tasks:
26+
- vQueueDelete
27+
- xQueueCreateMutex
28+
- xQueueCreateMutexStatic
29+
- xQueueCreateCountingSemaphore
30+
- xQueueCreateCountingSemaphoreStatic
31+
- xQueueGenericCreate
32+
- xQueueGenericCreateStatic
33+
- xQueueCreateSet
34+
- xQueueRemoveFromSet
35+
- xQueueGenericReset
36+
- xTaskCreate
37+
- xTaskCreateStatic
38+
- vTaskDelete
39+
- vTaskPrioritySet
40+
- vTaskSuspendAll
41+
- xTaskResumeAll
42+
- xTaskGetHandle
43+
- xTaskCallApplicationTaskHook
44+
- vTaskList
45+
- vTaskGetRunTimeStats
46+
- xTaskCatchUpTicks
47+
- xEventGroupCreate
48+
- xEventGroupCreateStatic
49+
- vEventGroupDelete
50+
- xStreamBufferGenericCreate
51+
- xStreamBufferGenericCreateStatic
52+
- vStreamBufferDelete
53+
- xStreamBufferReset
54+
Also, an unprivileged task can no longer use vTaskSuspend to suspend
55+
any task other than itself.
56+
57+
We thank the following people for their inputs in these enhancements:
58+
- David Reiss of Meta Platforms, Inc.
59+
- Lan Luo, Xinhui Shao, Yumeng Wei, Zixia Liu, Huaiyu Yan and Zhen Ling
60+
of School of Computer Science and Engineering, Southeast University,
61+
China.
62+
- Xinwen Fu of Department of Computer Science, University of
63+
Massachusetts Lowell, USA.
64+
- Yuequi Chen, Zicheng Wang, Minghao Lin of University of Colorado
65+
Boulder, USA.
66+
+ Add Cortex-M35P port. Contributed by @urutva.
67+
+ Add embedded extension (RV32E) support to the IAR RISC-V port.
68+
+ Add ulTaskGetRunTimeCounter and ulTaskGetRunTimePercent APIs. Contributed by
69+
@chrisnc.
70+
+ Add APIs to get the application supplied buffers from statically
71+
created kernel objects. The following new APIs are added:
72+
- xTaskGetStaticBuffers
73+
- xQueueGetStaticBuffers
74+
- xQueueGenericGetStaticBuffers
75+
- xSemaphoreGetStaticBuffer
76+
- xEventGroupGetStaticBuffer
77+
- xStreamBufferGetStaticBuffers
78+
- xMessageBufferGetStaticBuffers
79+
These APIs enable the application writer to obtain static buffers from
80+
the kernel object and free/reuse them at the time of deletion. Earlier
81+
the application writer had to maintain the association of static buffers
82+
and the kernel object in the application. Contributed by @Dazza0.
83+
+ Add Thread Local Storage (TLS) support using picolibc function. Contributed
84+
by @keith-packard.
85+
+ Add configTICK_TYPE_WIDTH_IN_BITS to configure TickType_t data type. As a result,
86+
the number of bits in an event group also increases with big data type. Contributed
87+
by @Hadatko.
88+
+ Update eTaskGetState and uxTaskGetSystemState to return eReady for pending ready
89+
tasks. Contributed by @Dazza0.
90+
+ Update heap_4 and heap_5 to add padding only if the resulting block is not
91+
already aligned.
92+
+ Fix the scheduler logic in a couple of places to not preempt a task when an
93+
equal priority task becomes ready.
94+
+ Add macros used in FreeRTOS-Plus libraries. Contributed by @Holden.
95+
+ Fix clang compiler warnings. Contributed by @phelter.
96+
+ Add assertions to ARMv8-M ports to detect when FreeRTOS APIs are called from
97+
interrupts with priority higher than the configMAX_SYSCALL_INTERRUPT_PRIORITY.
98+
Contributed by @urutva.
99+
+ Add xPortIsInsideInterrupt API to ARM_CM0 ports.
100+
+ Fix build warning in MSP430X port when large data model is used.
101+
+ Add the ability to use Cortex-R5 port on the parts without FPU.
102+
+ Fix build warning in heap implementations on PIC24/dsPIC.
103+
+ Update interrupt priority asserts for Cortex-M ports so that these do not fire
104+
on QEMU which does not implement PRIO bits.
105+
+ Update ARMv7-M ports to ensure that kernel interrupts run at the lowest priority.
106+
configKERNEL_INTERRUPT_PRIORITY is now obsolete for ARMv7-M ports and brings
107+
these ports inline with the newer ARMv8-M ports. Contributed by @chrisnc.
108+
+ Fix build issue in POSIX GCC port on Windows Subsystem for Linux (WSL). Contributed
109+
by @jacky309.
110+
+ Add portMEMORY_BARRIER to Microblaze port. Contributed by @bbain.
111+
+ Add portPOINTER_SIZE_TYPE definition for ATmega port. Contributed by @jputcu.
112+
+ Multiple improvements in the CMake support. Contributed by @phelte and @cookpate.
113+
3114
Changes between FreeRTOS V10.5.0 and FreeRTOS V10.5.1 released November 16 2022
4115
+ Updated the kernel version in manifest and SBOM
5116

include/FreeRTOS.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@
8181
#endif
8282
#endif
8383

84+
/* Set configUSE_MPU_WRAPPERS_V1 to 1 to use MPU wrappers v1. */
85+
#ifndef configUSE_MPU_WRAPPERS_V1
86+
#define configUSE_MPU_WRAPPERS_V1 0
87+
#endif
88+
8489
/* Basic FreeRTOS definitions. */
8590
#include "projdefs.h"
8691

0 commit comments

Comments
 (0)