source: S-port/trunk/Middlewares/Third_Party/FreeRTOS/Source/st_readme.txt

Last change on this file was 1, checked in by AlexLir, 3 years ago
File size: 18.4 KB
Line 
1
2 @verbatim
3 ******************************************************************************
4 *
5 * Portions Copyright © 2019 STMicroelectronics International N.V. All rights reserved.
6 * Portions Copyright (C) 2016 Real Time Engineers Ltd, All rights reserved
7 *
8 * @file st_readme.txt
9 * @author MCD Application Team
10 * @brief This file lists the main modification done by STMicroelectronics on
11 * FreeRTOS for integration with STM32Cube solution.
12 * For more details on FreeRTOS implementation on STM32Cube, please refer
13 * to UM1722 "Developing Applications on STM32Cube with FreeRTOS"
14 ******************************************************************************
15 *
16 * Copyright (c) 2019 STMicroelectronics. All rights reserved.
17 *
18 * This software component is licensed by ST under BSD 3-Clause license,
19 * the "License"; You may not use this file except in compliance with the
20 * License. You may obtain a copy of the License at:
21 * opensource.org/licenses/BSD-3-Clause
22 *
23 ******************************************************************************
24 @endverbatim
25
26=======
27
28### 31-August-2020 ###
29=========================
30 + Bug fix for G0 compilation error due to IRQn_Type mismatch between G0 and other families
31 - Source/CMSIS_RTOS_V2/cmsis_os2.c
32 + Bug fix when using systick as timebasse for HAL
33 - Source/CMSIS_RTOS_V2/cmsis_os2.c
34
35### 20-July-2020 ###
36=========================
37 + FreeRTOS: Update to FreeRTOS v10.3.1
38
39 + CMSIS_RTOS_V2: update against the latest CMSIS-FreeRTOS v10.3.0 release
40 - CMSIS_RTOS_V2/cmsis_os2.c
41 - CMSIS_RTOS_V2/freertos_mpool.h
42 - CMSIS_RTOS_V2/freertos_os2.h
43 - CMSIS_RTOS_V2/os_systick.c
44
45 + Add Tickless Idle support for CM23/CM33
46 - GCC/ARM_CM23/non_secure/port.c
47 - GCC/ARM_CM23/non_secure/portmacro.h
48 - GCC/ARM_CM23_NTZ/non_secure/port.c
49 - GCC/ARM_CM23_NTZ/non_secure/portmacro.h
50 - GCC/ARM_CM33/non_secure/port.c
51 - GCC/ARM_CM33/non_secure/portmacro.h
52 - GCC/ARM_CM33_NTZ/non_secure/port.c
53 - GCC/ARM_CM33_NTZ/non_secure/portmacro.h
54 - IAR/ARM_CM23/non_secure/port.c
55 - IAR/ARM_CM23/non_secure/portmacro.h
56 - IAR/ARM_CM23_NTZ/non_secure/port.c
57 - IAR/ARM_CM23_NTZ/non_secure/portmacro.h
58 - IAR/ARM_CM33/non_secure/port.c
59 - IAR/ARM_CM33/non_secure/portmacro.h
60 - IAR/ARM_CM33_NTZ/non_secure/port.c
61 - IAR/ARM_CM33_NTZ/non_secure/portmacro.h
62
63 + Fix MPU hardfault bug for Cortex-M4 MPU
64 - GCC\ARM_CM4_MPU\port.c
65 - IAR\ARM_CM4_MPU\port.c
66 - RVDS\ARM_CM4_MPU\port.c
67
68 + Add support for 16 MPU regions to Cortex-M4 MPU ports
69 - GCC/ARM_CM4_MPU/portmacro.h
70 - IAR/ARM_CM4_MPU/portmacro.h
71 - RVDS/ARM_CM4_MPU/portmacro.h
72
73 + Update ARM_CM7_MPU source files for all compilers
74 - GCC/ARM_CM7_MPU/r0p1/port.c
75 - GCC/ARM_CM7_MPU/r0p1/portmacro.h
76 - IAR/ARM_CM7_MPU/r0p1/port.c
77 - IAR/ARM_CM7_MPU/r0p1/portasm.s
78 - IAR/ARM_CM7_MPU/r0p1/portmacro.h
79 - RVDS/ARM_CM7_MPU/r0p1/port.c
80 - RVDS/ARM_CM7_MPU/r0p1/portmacro.h
81
82### 17-January-2020 ###
83=========================
84 + Fix compile error in the GCC CM7_MPU port caused by a duplicated variable declaration
85 - Source/portable/GCC/ARM_CM7_MPU/r0p1/port.c
86
87### 13-December-2019 ###
88=========================
89 + Remove warnings thrown by EWARM for CM33/CM23 ports
90 - IAR/ARM_CM23/non_secure/portmacro.h
91 - IAR/ARM_CM23_NTZ/non_secure/portmacro.h
92 - IAR/ARM_CM33/non_secure/portmacro.h
93 - IAR/ARM_CM33_NTZ/non_secure/portmacro.h
94
95### 19-July-2019 ###
96=========================
97 + Fix runtime error in the IAR/CM4_MPU port
98 - IAR/ARM_CM4_MPU/port.c
99
100### 12-July-2019 ###
101=========================
102 + FreeRTOS: Update against the FreeRTOS v10.2.1 release
103 - support for the CM33 and CM23 cores
104
105 + CMSIS_RTOS_V2: update against the latest CMSIS-FreeRTOS v10.2.0 release
106
107 + Add MPU support for the CM7/r0p1:
108 - GCC/ARM_CM7_MPU/r0p1/port.c
109 - GCC/ARM_CM7_MPU/r0p1/portmacro.h
110 - IAR/ARM_CM7_MPU/r0p1/port.c
111 - IAR/ARM_CM7_MPU/r0p1/portasm.s
112 - IAR/ARM_CM7_MPU/r0p1/portmacro.h
113 - RVDS/ARM_CM7_MPU/r0p1/port.c
114 - RVDS/ARM_CM7_MPU/r0p1/portmacro.h
115
116 + cmsis_os.c: Fix compile errors by using the correct TimerCallbackFunction_t type for timer creation
117
118### 29-Mars-2019 ###
119=========================
120 + cmsis_os.c : Fix bug in osPoolAlloc(): memory blocks can't be reused after being free'd
121 + Source/CMSIS_RTOS_V2/cmsis_os, Source/CMSIS_RTOS_V2/cmsis_os1.c, Source/CMSIS_RTOS_V2/cmsis_os2.c, Source/CMSIS_RTOS_V2/cmsis_os2.h: restore original Apache license terms
122 + st_readme.txt: update license terms to BSD-3-Clause
123
124
125### 13-August-2018 ###
126=========================
127 + Add empty implementation for the missing function osThreadGetStackSize()
128 to avoid link errors when using CMSIS-RTOS V2.
129
130 + Update the FreeRTOSConfig_template.h with specific defines for the
131 CMSIS-RTOS V2.
132
133 + Rename the "RTE_RTOS_FreeRTOS_XXXX" macros to "USE_FreeRTOS_XXXX" in
134 cmsis_os2.c.
135
136### 30-July-2018 ###
137=========================
138 + Update License.txt file to MIT license instead of GPLv2
139
140### 23-July-2018 ###
141=========================
142 + Fix compiler warnings thrown by IAR compiler 8.20
143
144 + Add MPU support for the CM7/r0p1:
145 - GCC/ARM_CM7_MPU/r0p1/port.c
146 - GCC/ARM_CM7_MPU/r0p1/portmacro.h
147 - IAR/ARM_CM7_MPU/r0p1/port.c
148 - IAR/ARM_CM7_MPU/r0p1/portasm.s
149 - IAR/ARM_CM7_MPU/r0p1/portmacro.h
150 - RVDS/ARM_CM7_MPU/r0p1/port.c
151 - RVDS/ARM_CM7_MPU/r0p1/portmacro.h
152
153### 09-April-2018 ###
154=========================
155 Update the FreeRTOS against the latest release 10.0.1
156 more details are available in: https://www.freertos.org/History.txt
157
158 + Integrate support for tickless mode for ARM_CM0 core:
159 - GCC/ARM_CM0/port.c
160 - GCC/ARM_CM0/portmacro.h
161 - IAR/ARM_CM0/port.c
162 - IAR/ARM_CM0/portmacro.h
163 - RVDS/ARM_CM0/port.c
164
165 Integrate CMSIS-RTOSv2 wrapper based on: https://github.com/ARM-software/CMSIS-FreeRTOS/releases/tag/10.0.1
166 + Add new files:
167 - CMSIS_RTOS_V2/cmsis_os.h
168 - CMSIS_RTOS_V2/cmsis_os1.c
169 - CMSIS_RTOS_V2/cmsis_os2.c
170 - CMSIS_RTOS_V2/cmsis_os2.h
171 "cmsis_os1.c" and "cmsis_os1.h" contains the reference implementation of
172 CMSIS-RTOSv1,i.e as released by ARM, using the CMSIS-RTOSV2 API.
173
174 + The ST customized CMSIS-RTOSv1 is maintained under:
175 - CMSIS_RTOS/cmsis_os.c
176 - CMSIS_RTOS/cmsis_os.h
177
178 + When using CMSIS-RTOSv2 APIs, the following FreeRTOS defines are required:
179 - #define configMAX_PRIORITIES 56
180 - #define configSUPPORT_STATIC_ALLOCATION 0
181 - #define configUSE_PORT_OPTIMISED_TASK_SELECTION 0
182
183
184### 10-August-2017 ###
185=========================
186 Update FreeRTOS to support MPU feature with IAR compiler.
187
188 + Add the following ports:
189 - IAR/ARM_CM4_MPU
190 - IAR/ARM_CM7_MPU
191 - RVDS/ARM_CM7_MPU
192
193
194### 03-March-2017 ###
195=========================
196 Update CMSIS-RTOS drivers to support both CMSIS Core V4.x and V5.x
197
198 Bug fixes:
199 + CMSIS-RTOS: Wrong return value for osSignalWait()
200 + CMSIS-RTOS: Not all queue size is 0 initialized with osMailCAlloc()
201
202 Limitation:
203 + CMSIS-RTOS: osSignalWAit() function is not fully compliant with the specification
204
205
206### 30-September-2016 ###
207=========================
208 The purpose of this release is to Upgrade to use FreeRTOS V9.0.0, this version
209 is a drop-in compatible replacement for FreeRTOS V8.2.3.
210 For more details please refer to http://www.freertos.org/History.txt
211
212 + Add support to tickless mode for MPU ports:
213 - GCC/ARM_CM3_MPU/port.c
214 - GCC/ARM_CM4_MPU/port.c
215 - RVDS/ARM_CM4_MPU/port.c
216
217 + Update CM0 ports, add possibility to use a timebase different than Systick:
218 - IAR/ARM_CM0/port.c
219 - RVDS/ARM_CM0/port.c
220 - GCC/ARM_CM0/port.c
221
222 + Fix compilation error in CM3_MPU and CM4_MPU ports:
223 - GCC/ARM_CM3_MPU/portmacro.h
224 - GCC/ARM_CM4_MPU/portmacro.h
225 - RVDS/ARM_CM4_MPU/portmacro.h
226 - Add "Source\portable\Common\" directory
227
228 + cmsis_os.c
229 - Add support of Statically Allocated Systems introduced with FreeRTOS V9.0.0
230 - Add new wrappers CMSIS-RTOS APIs
231
232 FreeRTOS APIs | CMSIS-RTOS APIs | Description
233 ==================================================================================================================
234 uxQueueMessagesWaiting() | osMessageWaiting() | Return the number of messages stored in a queue
235 ------------------------------------------------------------------------------------------------------------------
236 xTaskAbortDelay() | osAbortDelay() | Force a thread to get out the blocked state immediately
237 ------------------------------------------------------------------------------------------------------------------
238 uxSemaphoreGetCount() | osSemaphoreGetCount() | Return the current count of a semaphore
239 ------------------------------------------------------------------------------------------------------------------
240 uxQueueSpacesAvailable() | osMessageAvailableSpace() | Return the available space in a message queue
241 ------------------------------------------------------------------------------------------------------------------
242 vQueueDelete() | osMessageDelete() | Delete a message Queue
243 ------------------------------------------------------------------------------------------------------------------
244
245
246### 22-January-2016 ###
247=======================
248 The purpose of this release is to Upgrade to use FreeRTOS V8.2.3.
249 It also provides fixes for minor issues.
250
251 + cmsis_os.c
252 - Implementation of functions "osSignalSet" and "osSignalWait" are now delimited by
253 #define configUSE_TASK_NOTIFICATIONS.
254 - Function "osTimerStart" : fix for an assert issue when called from an ISR.
255 - Function "osMailCreate" : internal variables initialization.
256 - Function "osSignalWait" : signals value is now compared versus integer zero for error checking.
257
258 + freeRTOS sources
259 - FreeRTOS.h file : Add configuration sanity check in case of configUSE_RECURSIVE_MUTEXES set
260 and configUSE_MUTEXES not set.
261
262 + STMicroelectronics license simplifications, see license disclaimer within this file's header
263
264
265### 27-March-2015 ###
266=====================
267 The purpose of this release is to Upgrade to use FreeRTOS V8.2.1.
268
269 + Major change of the version 8.2.1 is the support of CM7 core.
270 For STM32F746xx/STM32F756xx devices, need to use port files under Source/Portable/XXX/ARM_CM7/r0p1,
271 where XXX refers to the compiler used.
272
273 + It also provides implementation of osSignal management APIs, osSignalSet() and osSignalWait(),
274 fixes osMassage queue size, osMailQDef macro and osDelayUntil parameters.
275
276 + In this release an alignment has been done in ARM_CM4 and ARM_CM3 port.c versus ARM_CM0 port.c
277 regarding the use of macros configPRE_SLEEP_PROCESSING and configPOST_SLEEP_PROCESSING, these tow macros
278 are now taking as parameter as pointer to TickType_t.
279
280 + cmsis_os.c
281 - Add implementation of osSignalSet() and osSignalWait() APIs
282 - Fix massage queue size in osMessageCreate API
283 - osDelayUntil: parameter PreviousWakeTime is now passed as a pointer.
284 - Enabling Mail queue management APIs (temporary removed in previous version).
285 - Function "osThreadGetPriority" uses now uxTaskPriorityGetFromISR if called from an interrupt handler, if not use uxTaskPriorityGet.
286
287 + cmsis_os.h
288 - osFeature_Wait is defined to 0 to indicate that osWait function is not available (as specified by cmsis_os template by ARM)
289 - Fix compilation issue with osMailQDef macro.
290 - Enabling Mail queue management APIs (temporary removed in previous version)
291
292 + freeRTOS sources
293 - ARM_CM3 port.c and ARM_CM4 port.c:
294 function vPortSuppressTicksAndSleep : configPRE_SLEEP_PROCESSING and configPOST_SLEEP_PROCESSING are now taking
295 as parameter as pointer to TickType_t.
296 The purpose of this change is to align the CM3 and CM4 implementation with CM0 one.
297
298 + Note
299 - osSignalSet returns an int32_t value which is a a status (osOK or osError)
300 instead of the previous signal value as specified in cmsis_os template by ARM.
301 This is mainly due to freeRTOS implementation, the return value will be aligned (with the cmsis os template by ARM) as soon as the freeRTOS next version will allow it.
302
303 - osThreadDef() macro is defined in the freeRTOS cmsis_os.h wrapper as follow :
304 osThreadDef(name, thread, priority, instances, stacksz)
305 the macro osThreadDef() as defined in ARM cmsis_os.h is defined with 4 parameters :
306 name : name of the thread function.
307 priority : initial priority of the thread function.
308 instances : number of possible thread instances.
309 stacksz : stack size (in bytes) requirements for the thread function.
310
311 - osThreadDef as defined in the ARM template file cmsis_os.h assumes that the thread name is the same as the thread function name.
312 where the freeRTOS implementation gives separate parameters for the thread name and the thread function name.
313
314 care must be taken when porting an application from/to another OS to/from freeRTOS cmsis_os regarding this macro.
315
316 the macro osThreadDef() as defined in ARM cmsis_os.h template is defined with 4 parameters :
317 name : name of the thread function.
318 priority : initial priority of the thread function.
319 instances : number of possible thread instances.
320 stacksz : stack size (in bytes) requirements for the thread function.
321
322 the macro osThreadDef() as defined in freeRTOS cmsis_os.h is defined with 5 parameters :
323 name : name of the thread (used for debugging and trace).
324 thread : name of the thread function
325 priority : initial priority of the thread function.
326 instances : number of possible thread instances.
327 stacksz : stack size (in bytes) requirements for the thread function.
328
329
330### 25-December-2014 ###
331========================
332 The purpose of this release is to remove compilation errors and warning. It also reintroduces
333 the function osThreadIsSuspended() which has been removed in the version V1.2.0.
334
335 + cmsis_os.c
336 - osThreadGetPriority() and makeCmsisPriority(): replace INCLUDE_vTaskPriorityGet by the correct
337 freeRTOS constant uxTaskPriorityGet.
338 The version 1.2.2 is using a wrong constant INCLUDE_vTaskPriorityGet, while the correct freeRTOS
339 constant is uxTaskPriorityGet.
340 This fix ensure a safe use of osThreadGetPriority() function.
341
342 - osThreadIsSuspended(): this function has been removed in version V1.2.0, it is now available gain.
343 User can either use this function to check if a Thread is suspended either use function osThreadGetState,
344 which is more generic, to check the exact state of a thread.
345
346 - osThreadList(): this function is now taking as argument a pointer to uint8_t instead of a pointer to int8_t.
347 The change is made to remove a compilation warning.
348
349 - osRecursiveMutexCreate(): the prototype has been changed to osMutexId osRecursiveMutexCreate (const osMutexDef_t *mutex_def)
350 This change is made to make osRecursiveMutexCreate() compatible with function MutexCreate().
351 It also allow the better use of the function in conjunction with the macro osMutex, note that osMutex return a
352 "const osMutexDef_t *mutex_def".
353 example : osMutex1Id = osRecursiveMutexCreate (osMutex(Mutex1));
354
355 - Fix implementation of functions osSemaphoreWait(), osMutexRelease() and osMutexWait() by using the appropriate
356 freeRTOS “FromISR” APIs when called from an interrupt.
357
358 - Fix compilation warning when the constant INCLUDE_eTaskGetState is not defined
359
360 + cmsis_os.h
361 - osThreadIsSuspended(): add function prototype.
362 - osThreadList(): function prototype modified as described in cmsis_os.c section.
363 - osRecursiveMutexCreate(): function modified as described in cmsis_os.c section.
364
365 + Important note:
366 Mail Queue Management Functions are not supported in this cmsis_os version, will be added in the next release.
367
368
369### 04-December-2014 ###
370========================
371 + cmsis_os.c, osSemaphoreCreate(): use vSemaphoreCreateBinary() instead of xSemaphoreCreateBinary(),
372 to keep compatibility with application code developed on FreeRTOS V7.6.0.
373
374
375### 07-November-2014 ###
376========================
377 + cmsis_os.h: modify the osThreadState enum to fix warning generated by ARMCC compiler
378 + task.c: add preprocessor compilation condition for prvTaskIsTaskSuspended() function
379 (it's build only when INCLUDE_vTaskSuspend option is enabled in FreeRTOSConfig.h file)
380
381
382### 04-November-2014 ###
383========================
384 + Upgrade to use FreeRTOS V8.1.2 and CMSIS-RTOS V1.02.
385 + cmsis_os.c
386 - Almost of CMSIS-RTOS APIs are implemented for FreeRTOS
387 - Additional wrapper APIs created for FreeRTOS
388
389 + Important note:
390 When upgrading existing application code to use this last version, the following
391 update should be considered:
392 - osThreadIsSuspended() is no longer public API in FreeRTOS and it should
393 be replaced by the wrapping of eTaskGetState()
394 - osKernelStart() API changed, must be updated
395 - update FreeRTOSConfig.h file, taking FreeRTOSConfig_template.h file as reference
396
397
398### 13-June-2014 ###
399====================
400 + FreeRTOSConfig_template.h: add this definition #define INCLUDE_xTaskGetSchedulerState 1
401 to enable the use of xTaskGetSchedulerState() API in the
402 application code.
403
404
405### 30-April-2014 ###
406=====================
407 + cmsis_os.c: add preprocessor compilation condition when calling some FreeRTOS APIs, to avoid link
408 errors with MDK-ARM when some FreeRTOS features are not enabled in FreeRTOSConfig.h
409
410
411### 22-April-2014 ###
412=====================
413 + Add Tickles mode for CM0 port (IAR, GCC, RVDS).
414
415
416### 18-February-2014 ###
417========================
418 + FreeRTOS V7.6.0 customized version for STM32Cube solution.
419
420
421 * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
422 */
Note: See TracBrowser for help on using the repository browser.