Skip to content

Commit f19d752

Browse files
committed
Initial 10.4.4 release
1 parent fa5efea commit f19d752

33 files changed

+698
-1628
lines changed

examples/Mutex/Mutex.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void TaskMutex(void *pvParameters)
6060
if (xSemaphoreTake(mutex, 10) == pdTRUE)
6161
{
6262
Serial.print(pcTaskGetName(NULL)); // Get task name
63-
Serial.print(", Count readed value: ");
63+
Serial.print(", Count read value: ");
6464
Serial.print(globalCount);
6565

6666
globalCount++;

examples/Notifications/Notifications.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ void TaskNotification(void *pvParameters)
3838

3939
int digitalPin = 2;
4040

41-
Serial.begin(115200);
41+
Serial.begin(9600);
4242

4343
attachInterrupt(digitalPinToInterrupt(digitalPin), digitalPinInterruptHandler, LOW);
4444

keywords.txt

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,58 @@
33
# Formatted by a single true tab (not spaces)
44

55
# Datatypes (KEYWORD1)
6-
SemaphoreHandle_t KEYWORD1
7-
QueueHandle_t KEYWORD1
6+
StackType_t KEYWORD1
7+
BaseType_t KEYWORD1
8+
UBaseType_t KEYWORD1
9+
TickType_t KEYWORD1
10+
811
TaskHandle_t KEYWORD1
12+
QueueHandle_t KEYWORD1
13+
TimerHandle_t KEYWORD1
14+
SemaphoreHandle_t KEYWORD1
15+
StreamBufferHandle_t KEYWORD1
16+
MessageBufferHandle_t KEYWORD1
17+
EventGroupHandle_t KEYWORD1
918

1019
# Methods and Functions (KEYWORD2)
1120
xSemaphoreCreateMutex KEYWORD2
1221
xSemaphoreCreateBinary KEYWORD2
22+
xSemaphoreTake KEYWORD2
23+
xSemaphoreTakeFromISR KEYWORD2
1324
xSemaphoreGive KEYWORD2
1425
xSemaphoreGiveFromISR KEYWORD2
1526
xTaskCreate KEYWORD2
27+
vTaskDelete KEYWORD2
1628
vTaskDelay KEYWORD2
29+
xTaskDelayUntil KEYWORD2
1730
xQueueCreate KEYWORD2
1831
xQueueSend KEYWORD2
32+
xQueueReceive KEYWORD2
1933
pcTaskGetName KEYWORD2
2034
ulTaskNotifyTake KEYWORD2
2135
vTaskNotifyGiveFromISR KEYWORD2
2236
taskYIELD KEYWORD2
2337
vTaskSuspend KEYWORD2
2438
vTaskResume KEYWORD2
39+
xTaskResumeFromISR KEYWORD2
2540
xTaskGetTickCount KEYWORD2
41+
xTaskGetTickCountFromISR KEYWORD2
2642
uxTaskGetNumberOfTasks KEYWORD2
2743
uxTaskGetStackHighWaterMark KEYWORD2
2844

2945
# Instances (KEYWORD2)
3046

31-
# Constants (LITERAL1)
47+
# Structures (KEYWORD3)
48+
TaskParameters_t KEYWORD3
49+
TaskStatus_t KEYWORD3
50+
ListItem_t KEYWORD3
51+
MiniListItem_t KEYWORD3
52+
HeapStats_t KEYWORD3
53+
54+
# Constants (LITERAL1)
55+
portUSE_WDTO LITERAL1
56+
portTICK_PERIOD_MS LITERAL1
57+
configTICK_RATE_HZ LITERAL1
58+
configCPU_CLOCK_HZ LITERAL1
59+
configMAX_PRIORITIES LITERAL1
60+
configMINIMAL_STACK_SIZE LITERAL1

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name=FreeRTOS
2-
version=10.4.3-8
2+
version=10.4.4-0
33
author=Richard Barry <info@freertos.org>
44
maintainer=Phillip Stevens <phillip.stevens@gmail.com>
55
sentence=<h3>FreeRTOS Real Time Operating System implemented for AVR (Uno, Nano, Leonardo, Mega).</h3>

src/Arduino_FreeRTOS.h

Lines changed: 40 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/*
2-
* FreeRTOS Kernel V10.4.3
3-
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
* FreeRTOS Kernel V10.4.4
3+
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
*
5+
* SPDX-License-Identifier: MIT
46
*
57
* Permission is hereby granted, free of charge, to any person obtaining a copy of
68
* this software and associated documentation files (the "Software"), to deal in
@@ -106,10 +108,6 @@
106108
#error Missing definition: configUSE_16_BIT_TICKS must be defined in FreeRTOSConfig.h as either 1 or 0. See the Configuration section of the FreeRTOS API documentation for details.
107109
#endif
108110

109-
#ifndef configUSE_CO_ROUTINES
110-
#define configUSE_CO_ROUTINES 0
111-
#endif
112-
113111
#ifndef INCLUDE_vTaskPrioritySet
114112
#define INCLUDE_vTaskPrioritySet 0
115113
#endif
@@ -126,6 +124,26 @@
126124
#define INCLUDE_vTaskSuspend 0
127125
#endif
128126

127+
#ifdef INCLUDE_xTaskDelayUntil
128+
#ifdef INCLUDE_vTaskDelayUntil
129+
/* INCLUDE_vTaskDelayUntil was replaced by INCLUDE_xTaskDelayUntil. Backward
130+
* compatibility is maintained if only one or the other is defined, but
131+
* there is a conflict if both are defined. */
132+
#error INCLUDE_vTaskDelayUntil and INCLUDE_xTaskDelayUntil are both defined. INCLUDE_vTaskDelayUntil is no longer required and should be removed
133+
#endif
134+
#endif
135+
136+
#ifndef INCLUDE_xTaskDelayUntil
137+
#ifdef INCLUDE_vTaskDelayUntil
138+
/* If INCLUDE_vTaskDelayUntil is set but INCLUDE_xTaskDelayUntil is not then
139+
* the project's FreeRTOSConfig.h probably pre-dates the introduction of
140+
* xTaskDelayUntil and setting INCLUDE_xTaskDelayUntil to whatever
141+
* INCLUDE_vTaskDelayUntil is set to will ensure backward compatibility.
142+
*/
143+
#define INCLUDE_xTaskDelayUntil INCLUDE_vTaskDelayUntil
144+
#endif
145+
#endif
146+
129147
#ifndef INCLUDE_xTaskDelayUntil
130148
#define INCLUDE_xTaskDelayUntil 0
131149
#endif
@@ -178,12 +196,6 @@
178196
#define INCLUDE_xTaskGetCurrentTaskHandle 0
179197
#endif
180198

181-
#if configUSE_CO_ROUTINES != 0
182-
#ifndef configMAX_CO_ROUTINE_PRIORITIES
183-
#error configMAX_CO_ROUTINE_PRIORITIES must be greater than or equal to 1.
184-
#endif
185-
#endif
186-
187199
#ifndef configUSE_DAEMON_TASK_STARTUP_HOOK
188200
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
189201
#endif
@@ -955,7 +967,7 @@
955967

956968
#ifndef configMIN
957969

958-
/* The application writer has not provided their own MAX macro, so define
970+
/* The application writer has not provided their own MIN macro, so define
959971
* the following generic implementation. */
960972
#define configMIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
961973
#endif
@@ -973,7 +985,6 @@
973985
#define xTaskParameters TaskParameters_t
974986
#define xTaskStatusType TaskStatus_t
975987
#define xTimerHandle TimerHandle_t
976-
#define xCoRoutineHandle CoRoutineHandle_t
977988
#define pdTASK_HOOK_CODE TaskHookFunction_t
978989
#define portTICK_RATE_MS portTICK_PERIOD_MS
979990
#define pcTaskGetTaskName pcTaskGetName
@@ -1030,6 +1041,11 @@
10301041
#define configRUN_FREERTOS_SECURE_ONLY 0
10311042
#endif
10321043

1044+
#ifndef configRUN_ADDITIONAL_TESTS
1045+
#define configRUN_ADDITIONAL_TESTS 0
1046+
#endif
1047+
1048+
10331049
/* Sometimes the FreeRTOSConfig.h settings only allow a task to be created using
10341050
* dynamically allocated RAM, in which case when any task is deleted it is known
10351051
* that both the task's stack and TCB need to be freed. Sometimes the
@@ -1081,7 +1097,7 @@
10811097
* data hiding policy, so the real structures used by FreeRTOS to maintain the
10821098
* state of tasks, queues, semaphores, etc. are not accessible to the application
10831099
* code. However, if the application writer wants to statically allocate such
1084-
* an object then the size of the object needs to be know. Dummy structures
1100+
* an object then the size of the object needs to be known. Dummy structures
10851101
* that are guaranteed to have the same size and alignment requirements of the
10861102
* real objects are used for this purpose. The dummy list and list item
10871103
* structures below are used for inclusion in such a dummy structure.
@@ -1130,7 +1146,7 @@ typedef struct xSTATIC_LIST
11301146
* strict data hiding policy. This means the Task structure used internally by
11311147
* FreeRTOS is not accessible to application code. However, if the application
11321148
* writer wants to statically allocate the memory required to create a task then
1133-
* the size of the task object needs to be know. The StaticTask_t structure
1149+
* the size of the task object needs to be known. The StaticTask_t structure
11341150
* below is provided for this purpose. Its sizes and alignment requirements are
11351151
* guaranteed to match those of the genuine structure, no matter which
11361152
* architecture is being used, and no matter how the values in FreeRTOSConfig.h
@@ -1193,7 +1209,7 @@ typedef struct xSTATIC_TCB
11931209
* strict data hiding policy. This means the Queue structure used internally by
11941210
* FreeRTOS is not accessible to application code. However, if the application
11951211
* writer wants to statically allocate the memory required to create a queue
1196-
* then the size of the queue object needs to be know. The StaticQueue_t
1212+
* then the size of the queue object needs to be known. The StaticQueue_t
11971213
* structure below is provided for this purpose. Its sizes and alignment
11981214
* requirements are guaranteed to match those of the genuine structure, no
11991215
* matter which architecture is being used, and no matter how the values in
@@ -1264,7 +1280,7 @@ typedef struct xSTATIC_EVENT_GROUP
12641280
* strict data hiding policy. This means the software timer structure used
12651281
* internally by FreeRTOS is not accessible to application code. However, if
12661282
* the application writer wants to statically allocate the memory required to
1267-
* create a software timer then the size of the queue object needs to be know.
1283+
* create a software timer then the size of the queue object needs to be known.
12681284
* The StaticTimer_t structure below is provided for this purpose. Its sizes
12691285
* and alignment requirements are guaranteed to match those of the genuine
12701286
* structure, no matter which architecture is being used, and no matter how the
@@ -1292,12 +1308,12 @@ typedef struct xSTATIC_TIMER
12921308
* internally by FreeRTOS is not accessible to application code. However, if
12931309
* the application writer wants to statically allocate the memory required to
12941310
* create a stream buffer then the size of the stream buffer object needs to be
1295-
* know. The StaticStreamBuffer_t structure below is provided for this purpose.
1296-
* Its size and alignment requirements are guaranteed to match those of the
1297-
* genuine structure, no matter which architecture is being used, and no matter
1298-
* how the values in FreeRTOSConfig.h are set. Its contents are somewhat
1299-
* obfuscated in the hope users will recognise that it would be unwise to make
1300-
* direct use of the structure members.
1311+
* known. The StaticStreamBuffer_t structure below is provided for this
1312+
* purpose. Its size and alignment requirements are guaranteed to match those
1313+
* of the genuine structure, no matter which architecture is being used, and
1314+
* no matter how the values in FreeRTOSConfig.h are set. Its contents are
1315+
* somewhat obfuscated in the hope users will recognise that it would be unwise
1316+
* to make direct use of the structure members.
13011317
*/
13021318
typedef struct xSTATIC_STREAM_BUFFER
13031319
{

src/FreeRTOSConfig.h

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/*
2-
* FreeRTOS Kernel V10.4.3
3-
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
* FreeRTOS Kernel V10.4.4
3+
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
*
5+
* SPDX-License-Identifier: MIT
46
*
57
* Permission is hereby granted, free of charge, to any person obtaining a copy of
68
* this software and associated documentation files (the "Software"), to deal in
@@ -78,10 +80,6 @@
7880
#define configTIMER_QUEUE_LENGTH ( ( UBaseType_t ) 10 )
7981
#define configTIMER_TASK_STACK_DEPTH ( 85 )
8082

81-
/* Co-routine definitions. */
82-
#define configUSE_CO_ROUTINES 0
83-
#define configMAX_CO_ROUTINE_PRIORITIES ( (UBaseType_t ) 2 )
84-
8583
/* Set the stack depth type to be uint16_t. */
8684
#define configSTACK_DEPTH_TYPE uint16_t
8785

src/FreeRTOSVariant.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2020 Phillip Stevens All Rights Reserved.
2+
* Copyright (C) 2021 Phillip Stevens All Rights Reserved.
33
*
44
* Permission is hereby granted, free of charge, to any person obtaining a copy of
55
* this software and associated documentation files (the "Software"), to deal in

src/History.txt

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

3+
Changes between FreeRTOS V10.4.3 and FreeRTOS V10.4.4 released May 28 2021
4+
+ Minor performance improvements to xTaskIncrementTick() achieved by providing
5+
macro versions of uxListRemove() and vListInsertEnd().
6+
+ Minor refactor of timers.c that obsoletes the need for the
7+
tmrCOMMAND_START_DONT_TRACE macro and removes the need for timers.c to
8+
post to its own event queue. A consequence of this change is that auto-
9+
reload timers that miss their intended next execution time will execute
10+
again immediately rather than executing again the next time the command
11+
queue is processed. (thanks Jeff Tenney).
12+
+ Fix a race condition in the message buffer implementation. The
13+
underlying cause was that length and data bytes are written and read as
14+
two distinct operations, which both modify the size of the buffer. If a
15+
context switch occurs after adding or removing the length bytes, but
16+
before adding or removing the data bytes, then another task may observe
17+
the message buffer in an invalid state.
18+
+ The xTaskCreate() and xTaskCreateStatic() functions accept a task priority
19+
as an input parameter. The priority has always been silently capped to
20+
(configMAX_PRIORITIES - 1) should it be set to a value above that priority.
21+
Now values above that priority will also trigger a configASSERT() failure.
22+
+ Replace configASSERT( pcQueueName ) in vQueueAddToRegistry with a NULL
23+
pointer check.
24+
+ Introduce the configSTACK_ALLOCATION_FROM_SEPARATE_HEAP configuration
25+
constant that enables the stack allocated to tasks to come from a heap other
26+
than the heap used by other memory allocations. This enables stacks to be
27+
placed within special regions, such as fast tightly coupled memory.
28+
+ If there is an attempt to add the same queue or semaphore handle to the
29+
queue registry more than once then prior versions would create two separate
30+
entries. Now if this is done the first entry is overwritten rather than
31+
duplicated.
32+
+ Update the ESP32 port and TF-M (Trusted Firmware M)code to the latest from
33+
their respective repositories.
34+
+ Correct a build error in the POSIX port.
35+
+ Additional minor formatting updates, including replacing tabs with spaces
36+
in more files.
37+
+ Other minor updates include adding additional configASSERT() checks and
38+
correcting and improving code comments.
39+
+ Go look at the smp branch to see the progress towards the Symetric
40+
Multiprocessing Kernel. https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/smp
41+
342
Changes between FreeRTOS V10.4.2 and FreeRTOS V10.4.3 released December 14 2020
443

544
V10.4.3 is included in the 202012.00 LTS release. Learn more at https:/freertos.org/lts-libraries.html
@@ -79,7 +118,7 @@ Changes between FreeRTOS V10.3.1 and FreeRTOS V10.4.0 released September 10 2020
79118
the same way the Windows port layer enables FreeRTOS to run on Windows
80119
hosts.
81120
+ Many other minor optimisations and enhancements. For full details
82-
see https://github.com/FreeRTOS/FreeRTOS-Kernel/commits/master
121+
see https://github.com/FreeRTOS/FreeRTOS-Kernel/commits/main
83122

84123

85124
Changes between FreeRTOS V10.3.0 and FreeRTOS V10.3.1 released February 18 2020

src/atomic.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
/*
2-
* FreeRTOS Kernel V10.4.3
3-
* Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
* FreeRTOS Kernel V10.4.4
3+
* Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4+
*
5+
* SPDX-License-Identifier: MIT
46
*
57
* Permission is hereby granted, free of charge, to any person obtaining a copy of
68
* this software and associated documentation files (the "Software"), to deal in

0 commit comments

Comments
 (0)