1 | Documentation and download available at http://www.FreeRTOS.org/
|
---|
2 |
|
---|
3 | Changes between FreeRTOS V10.3.0 and FreeRTOS V10.3.1 released February 18 2020
|
---|
4 |
|
---|
5 | See http://www.FreeRTOS.org/FreeRTOS-V10.3.x.html
|
---|
6 |
|
---|
7 | ./FreeRTOS-Labs directory was removed from this file. The libraries it
|
---|
8 | contained are now available as a separate download.
|
---|
9 |
|
---|
10 | Changes between FreeRTOS V10.2.1 and FreeRTOS V10.3.0 released February 7 2020
|
---|
11 |
|
---|
12 | See http://www.FreeRTOS.org/FreeRTOS-V10.3.x.html
|
---|
13 |
|
---|
14 | New and updated kernel ports:
|
---|
15 |
|
---|
16 | + Added RISC-V port for the IAR compiler.
|
---|
17 | + Update the Windows simulator port to use a synchronous object to prevent
|
---|
18 | a user reported error whereby a task continues to run for a short time
|
---|
19 | after being moved to the Blocked state. Note we were not able to
|
---|
20 | replicate the reported issue and it likely depends on your CPU model.
|
---|
21 | + Correct alignment of stack top in RISC-V port when
|
---|
22 | configISR_STACK_SIZE_WORDS is defined to a non zero value, which causes
|
---|
23 | the interrupt stack to be statically allocated.
|
---|
24 | + The RISC-V machine timer compare register can now be for any HART, whereas
|
---|
25 | previously it was always assumed FreeRTOS was running on HART 0.
|
---|
26 | + Update the sequence used to update the 64-bit machine timer
|
---|
27 | compare register on 32-bit cores to match that suggested in RISC-V
|
---|
28 | documentation.
|
---|
29 | + Added tickless low power modes into the ARM, IAR and GCC Cortex-M0 compiler
|
---|
30 | ports.
|
---|
31 | + Updated the behaviour of the ARMv7-M MPU (Memory Protection Unit) ports to
|
---|
32 | match that of the ARMv8-M ports whereby privilege escalations can only
|
---|
33 | originate from within the kernel's own memory segment. Added
|
---|
34 | configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY configuration constant.
|
---|
35 | + Update existing MPU ports to correctly disable the MPU before it is
|
---|
36 | updated.
|
---|
37 | + Added contributed port and demo application for a T-Head (formally C-SKY)
|
---|
38 | microcontroller.
|
---|
39 |
|
---|
40 | New API functions:
|
---|
41 |
|
---|
42 | + Added the vPortGetHeapStats() API function which returns information on
|
---|
43 | the heap_4 and heap_5 state.
|
---|
44 | + Added xTaskCatchUpTicks(), which corrects the tick count value after the
|
---|
45 | application code has held interrupts disabled for an extended period.
|
---|
46 | + Added xTaskNotifyValueClear() API function.
|
---|
47 | + Added uxTimerGetReloadMode() API function.
|
---|
48 |
|
---|
49 | Other miscellaneous changes:
|
---|
50 | + Change type of uxPendedTicks from UBaseType_t to TickType_t to ensure it
|
---|
51 | has the same type as variables with which it is compared to, and therefore
|
---|
52 | also renamed the variable xPendingTicks.
|
---|
53 | + Update Keil projects that use the MPU so memory regions come from linker
|
---|
54 | script (scatter file) variables instead of being hard coded.
|
---|
55 | + Added LPC51U68 Cortex-M0+ demos for GCC (MCUXpresso), Keil and IAR
|
---|
56 | compilers.
|
---|
57 | + Added CORTEX_MPU_STM32L4_Discovery_Keil_STM32Cube demo.
|
---|
58 | + Added LPC54018 MPU demo.
|
---|
59 | + Rename xTaskGetIdleRunTimeCounter() to ulTaskGetIdleRunTimeCounter().
|
---|
60 |
|
---|
61 |
|
---|
62 | Changes between FreeRTOS V10.2.1 and FreeRTOS V10.2.0 released May 13 2019:
|
---|
63 |
|
---|
64 | + Added ARM Cortex-M23 port layer to complement the pre-existing ARM
|
---|
65 | Cortex-M33 port layer.
|
---|
66 | + The RISC-V port now automatically switches between 32-bit and 64-bit
|
---|
67 | cores.
|
---|
68 | + Introduced the portMEMORY_BARRIER macro to prevent instruction re-ordering
|
---|
69 | when GCC link time optimisation is used.
|
---|
70 | + Introduced the portDONT_DISCARD macro to the ARMv8-M ports to try and
|
---|
71 | prevent the secure side builds from removing symbols required by the
|
---|
72 | non secure side build.
|
---|
73 | + Introduced the portARCH_NAME to provide additional data to select semi-
|
---|
74 | automated build environments.
|
---|
75 | + Cortex-M33 and Cortex-M23 ports now correctly disable the MPU before
|
---|
76 | updating the MPU registers.
|
---|
77 |
|
---|
78 | + Added Nuvoton NuMaker-PFM-M2351 ARM Cortex-M23 demo.
|
---|
79 | + Added LPC55S69 ARM Cortex-M33 demo.
|
---|
80 | + Added an STM32 dual core AMP stress test demo.
|
---|
81 |
|
---|
82 |
|
---|
83 | Changes between FreeRTOS V10.1.1 and FreeRTOS V10.2.0 released February 25 2019:
|
---|
84 |
|
---|
85 | + Added GCC RISC-V MCU port with three separate demo applications.
|
---|
86 | + Included pre-existing ARM Cortex-M33 (ARMv8-M) GCC/ARMclang and IAR ports
|
---|
87 | with Keil simulator demo.
|
---|
88 | + Update the method used to detect if a timer is active. Previously the
|
---|
89 | timer was deemed to be inactive if it was not referenced from a list.
|
---|
90 | However, when a timer is updated it is temporarily removed from, then
|
---|
91 | re-added to a list, so now the timer's active status is stored separately.
|
---|
92 | + Add vTimerSetReloadMode(), xTaskGetIdleRunTimeCounter(), and
|
---|
93 | xTaskGetApplicationTaskTagFromISR() API functions.
|
---|
94 | + Updated third party Xtensa port so it is MIT licensed.
|
---|
95 | + Added configINCLUDE_PLATFORM_H_INSTEAD_OF_IODEFINE_H to the Renesas
|
---|
96 | compiler RX600v2 port to enable switching between platform.h and
|
---|
97 | iodefine.h includes within that port's port.c file.
|
---|
98 | + Removed the 'FromISR' functions from the MPU ports as ISRs run privileged
|
---|
99 | anyway.
|
---|
100 | + Added uxTaskGetStackHighWaterMark2() function to enable the return type to
|
---|
101 | be changed without breaking backward compatibility.
|
---|
102 | uxTaskGetStackHighWaterMark() returns a UBaseType_t as always,
|
---|
103 | uxTaskGetStackHighWaterMark2() returns configSTACK_DEPTH_TYPE to allow the
|
---|
104 | user to determine the return type.
|
---|
105 | + Fixed issues in memory protected ports related to different combinations
|
---|
106 | of static memory only and dynamic memory only builds. As a result the
|
---|
107 | definition of tskSTATIC_AND_DYNAMIC_ALLOCATION_POSSIBLE became more
|
---|
108 | complex and was moved to FreeRTOS.h with a table explaining its definition.
|
---|
109 | + Added a 'get task tag from ISR' function.
|
---|
110 | + Change the method used to determine if a timer is active or not from just
|
---|
111 | seeing if it is referenced from the active timer list to storing its
|
---|
112 | active state explicitly. The change prevents the timer reporting that it
|
---|
113 | is inactive while it is being moved from one list to another.
|
---|
114 | + The pcName parameter passed into the task create functions can be NULL,
|
---|
115 | previously a name had to be provided.
|
---|
116 | + When using tickless idle, prvResetNextTaskUnblockTime() is now only called
|
---|
117 | in xTaskRemoveFromEventList() if the scheduler is not suspended.
|
---|
118 | + Introduced portHAS_STACK_OVERFLOW_CHECKING, which should be set to 1 for
|
---|
119 | FreeRTOS ports that run on architectures that have stack limit registers.
|
---|
120 |
|
---|
121 |
|
---|
122 | Changes between FreeRTOS V10.1.0 and FreeRTOS V10.1.1 released 7 September 2018
|
---|
123 |
|
---|
124 | + Reverted a few structure name changes that broke several kernel aware
|
---|
125 | debugger plug-ins.
|
---|
126 | + Updated to the latest trace recorder code.
|
---|
127 | + Fixed some formatting in the FreeRTOS+TCP TCP/IP stack code.
|
---|
128 | + Reverted moving some variables from file to function scope as doing so
|
---|
129 | broke debug scenarios that require the static qualifier to be removed.
|
---|
130 |
|
---|
131 | Changes between FreeRTOS V10.0.1 and FreeRTOS V10.1.0 released 22 August 2018
|
---|
132 |
|
---|
133 | FreeRTOS Kernel Changes:
|
---|
134 |
|
---|
135 | + Update lint checked MISRA compliance to use the latest MISRA standard, was
|
---|
136 | previously using the original MISRA standard.
|
---|
137 | + Updated all object handles (TaskHandle_t, QueueHandle_t, etc.) to be
|
---|
138 | unique types instead of void pointers, improving type safety. (this was
|
---|
139 | attempted some years back but had to be backed out due to bugs in some
|
---|
140 | debuggers). Note this required the pvContainer member of a ListItem_t
|
---|
141 | struct to be renamed - set configENABLE_BACKWARD_COMPATIBILITY to 1 if
|
---|
142 | this causes an issue.
|
---|
143 | + Added configUSE_POSIX_ERRNO to enable per task POSIX style errno
|
---|
144 | functionality in a more user friendly way - previously the generic thread
|
---|
145 | local storage feature was used for this purpose.
|
---|
146 | + Added Xtensa port and demo application for the XCC compiler.
|
---|
147 | + Changed the implementation of vPortEndScheduler() for the Win32 port to
|
---|
148 | simply call exit( 0 ).
|
---|
149 | + Bug fix in vPortEnableInterrupt() for the GCC Microblaze port to protect
|
---|
150 | the read modify write access to an internal Microblaze register.
|
---|
151 | + Fix minor niggles when the MPU is used with regards to prototype
|
---|
152 | differences, static struct size differences, etc.
|
---|
153 | + The usStackHighWaterMark member of the TaskStatus_t structure now has type
|
---|
154 | configSTACK_DEPTH_TYPE in place of uint16_t - that change should have been
|
---|
155 | made when the configSTACK_DEPTH_TYPE type (which gets around the previous
|
---|
156 | 16-bit limit on stack size specifications) was introduced.
|
---|
157 | + Added the xMessageBufferNextLengthBytes() API function and likewise stream
|
---|
158 | buffer equivalent.
|
---|
159 | + Introduce configMESSAGE_BUFFER_LENGTH_TYPE to allow the number of bytes
|
---|
160 | used to hold the length of a message in the message buffer to be reduced.
|
---|
161 | configMESSAGE_BUFFER_LENGTH_TYPE default to size_t, but if, for example,
|
---|
162 | messages can never be more than 255 bytes it could be set to uint8_t,
|
---|
163 | saving 3 bytes each time a message is written into the message buffer
|
---|
164 | (assuming sizeof( size_t ) is 4).
|
---|
165 | + Updated the StaticTimer_t structure to ensure it matches the size of the
|
---|
166 | Timer_t structure when the size of TaskFunction_t does not equal the size
|
---|
167 | of void *.
|
---|
168 | + Update various Xilinx demos to use 2018.1 version of the SDK tools.
|
---|
169 | + Various updates to demo tasks to maintain test coverage.
|
---|
170 | + FreeRTOS+UDP was removed in FreeRTOS V10.1.0 as it was replaced by
|
---|
171 | FreeRTOS+TCP, which was brought into the main download in FreeRTOS
|
---|
172 | V10.0.0. FreeRTOS+TCP can be configured as a UDP only stack, and
|
---|
173 | FreeRTOS+UDP does not contain the patches applied to FreeRTOS+TCP.
|
---|
174 |
|
---|
175 | FreeRTOS+TCP Changes:
|
---|
176 |
|
---|
177 | + Multiple security improvements and fixes in packet parsing routines, DNS
|
---|
178 | caching, and TCP sequence number and ID generation.
|
---|
179 | + Disable NBNS and LLMNR by default.
|
---|
180 | + Add TCP hang protection by default.
|
---|
181 |
|
---|
182 | We thank Ori Karliner of Zimperium zLabs Team for reporting these issues.
|
---|
183 |
|
---|
184 |
|
---|
185 | Changes between FreeRTOS V10.0.0 and FreeRTOS V10.0.1, released December 20 2017
|
---|
186 |
|
---|
187 | + Fix position of "#if defined( __cplusplus )" in stream_buffer.h.
|
---|
188 | + Correct declarations of MPU_xQueuePeek() and MPU_xQueueSemaphoreTake() in
|
---|
189 | mpu_prototypes.h.
|
---|
190 | + Correct formatting in vTaskList() helper function when it prints the state
|
---|
191 | of the currently executing task.
|
---|
192 | + Introduce #error if stream_buffer.c is built without
|
---|
193 | configUSE_TASK_NOTIFICATIONS set to 1.
|
---|
194 | + Update FreeRTOS+TCP to V2.0.0
|
---|
195 | - Improve the formatting of text that displays the available netword
|
---|
196 | interfaces when FreeRTOS+TCP is used on Windows with WinPCap.
|
---|
197 | - Introduce ipconfigSOCKET_HAS_USER_WAKE_CALLBACK option to enable a user
|
---|
198 | definable callback to execute when data arrives on a socket.
|
---|
199 |
|
---|
200 | Changes between FreeRTOS V9.0.1 and FreeRTOS V10.0.0:
|
---|
201 |
|
---|
202 | The FreeRTOS kernel is now MIT licensed: https://www.FreeRTOS.org/license
|
---|
203 |
|
---|
204 | New Features and components:
|
---|
205 |
|
---|
206 | + Stream Buffers - see http://www.FreeRTOS.org/RTOS-stream-buffer-example.html
|
---|
207 | + Message Buffers - see http://www.FreeRTOS.org//RTOS-message-buffer-example.html
|
---|
208 | + Move FreeRTOS+TCP into the main repository, along with the basic Win32
|
---|
209 | TCP demo FreeRTOS_Plus_TCP_Minimal_Windows_Simulator.
|
---|
210 |
|
---|
211 | New ports or demos:
|
---|
212 |
|
---|
213 | + Added demo for TI SimpleLink CC3220 MCU.
|
---|
214 | + Added MPU and non MPU projects for Microchip CEC and MEC 17xx and 51xx
|
---|
215 | MCUs.
|
---|
216 | + Added CORTEX_MPU_Static_Simulator_Keil_GCC demo to test static allocation
|
---|
217 | in the MPU port.
|
---|
218 |
|
---|
219 | Fixes or enhancements:
|
---|
220 |
|
---|
221 | + Cortex-M ports push additional register prior to calling
|
---|
222 | vTaskSwitchContext to ensure 8-byte alignment is maintained. Only
|
---|
223 | important if a user defined tick hook function performs an operation that
|
---|
224 | requires 8-byte alignment.
|
---|
225 | + Optimisations to the implementation of the standard tickless idle mode on
|
---|
226 | Cortex-M devices.
|
---|
227 | + Improvements to the Win32 port including using higher priority threads.
|
---|
228 | + Ensure interrupt stack alignment on PIC32 ports.
|
---|
229 | + Updated GCC TriCore port to build with later compiler versions.
|
---|
230 | + Update mpu_wrappers.c to support static allocation.
|
---|
231 | + The uxNumberOfItems member of List_t is now volatile - solving an issue
|
---|
232 | when the IAR compiler was used with maximum optimization.
|
---|
233 | + Introduced configRECORD_STACK_HIGH_ADDRESS. When set to 1 the stack start
|
---|
234 | address is saved into each task's TCB (assuming stack grows down).
|
---|
235 | + Introduced configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H to allow user defined
|
---|
236 | functionality, and user defined initialisation, to be added to FreeRTOS's
|
---|
237 | tasks.c source file. When configINCLUDE_FREERTOS_TASK_C_ADDITIONS_H is
|
---|
238 | set to 1 a user provided header file called freertos_task_c_additions.h
|
---|
239 | will be included at the bottom of tasks.c. Functions defined in that
|
---|
240 | header file can call freertos_tasks_c_additions_init(), which in turn
|
---|
241 | calls a macro called FREERTOS_TASKS_C_ADDITIONS_INIT(), if it is defined.
|
---|
242 | FREERTOS_TASKS_C_ADDITIONS_INIT() can be defined in FreeRTOSConfig.h.
|
---|
243 | + Introduced configPRE_SUPPRESS_TICKS_AND_SLEEP_PROCESSING( x ) which can be
|
---|
244 | defined by a user in FreeRTOSConfig.h. The macro is called before
|
---|
245 | assessing whether to enter tickless idle mode or not. If the macro sets
|
---|
246 | x to zero then tickless idle mode will not be entered. This allows users
|
---|
247 | to abort tickless idle mode entry before the tickless idle function is
|
---|
248 | even called - previously it was only possible to abort from within the
|
---|
249 | tickless idle function itself.
|
---|
250 | + Added configPRINTF(), which can be defined by users to allow all libraries
|
---|
251 | to use the same print formatter.
|
---|
252 | + Introduced configMAX() and configMIN() macros which default to standard
|
---|
253 | max( x, y ) and min( x, y ) macro behaviour, but can be overridden if the
|
---|
254 | application writer defines the same macros in FreeRTOSConfig.h.
|
---|
255 | + Corrected the definition of StaticTask_t in the case where
|
---|
256 | INCLUDE_xTaskAbortDelay is set to 1.
|
---|
257 | + Introduced configTIMER_SERVICE_TASK_NAME and configIDLE_TASK_NAME, both of
|
---|
258 | which can be defined to strings in FreeRTOSConfig.h to change the default
|
---|
259 | names of the timer service and idle tasks respectively.
|
---|
260 | + Only fill the stack of a newly created task with a known value if stack
|
---|
261 | checking, or high water mark checking/viewing, is in use - removing the
|
---|
262 | dependency on memset() in other cases.
|
---|
263 | + Introduced xTaskCreateRestrictedStatic() so static allocation can be used
|
---|
264 | with the MPU.
|
---|
265 | + Ensure suspended tasks cannot be unsuspended by a received task
|
---|
266 | notification.
|
---|
267 | + Fix race condition in vTaskSetTimeOutState().
|
---|
268 | + Updated trace recorder files to the latest version.
|
---|
269 |
|
---|
270 | Changes since FreeRTOS V9.0.0:
|
---|
271 |
|
---|
272 | + Priority dis-inheritance behaviour has been enhanced in the case where a
|
---|
273 | task that attempted to take a mutex that was held by a lower priority task
|
---|
274 | timed out before it was able to obtain the mutex (causing the task that
|
---|
275 | holds the mutex to have its priority raised, then lowered again, in
|
---|
276 | accordance with the priority inheritance protocol).
|
---|
277 | + Split the overloaded xQueueGenericReceive() function into three separate
|
---|
278 | dedicated functions.
|
---|
279 | + Allow the default human readable text names given to the Idle and Timer
|
---|
280 | tasks to be overridden by defining the configIDLE_TASK_NAME and
|
---|
281 | configTIMER_SERVICE_TASK_NAME definitions respectively in FreeRTOSConfig.h.
|
---|
282 | + Introduced configINITIAL_TICK_COUNT to allow the tick count to take a
|
---|
283 | value of than than 0 when the system boots. This can be useful for
|
---|
284 | testing purposes - although setting configUSE_16_BIT_TICKS to 1 can also
|
---|
285 | be used to test frequent tick overflows.
|
---|
286 | + Ensure the Cortex-M SysTick count is cleared to zero before starting the
|
---|
287 | first task.
|
---|
288 | + Add configASSERT() into ARM Cortex-M ports to check the number of priority
|
---|
289 | bit settings.
|
---|
290 | + Clear the 'control' register before starting ARM Cortex-M4F ports in case
|
---|
291 | the FPU is used before the scheduler is started. This just saves a few
|
---|
292 | bytes on the main stack as it prevents space being left for a later save
|
---|
293 | of FPU registers.
|
---|
294 | + Added xSemaphoreGetMutexHolderFromISR().
|
---|
295 | + Corrected use of portNVIC_PENDSVSET to portNVIC_PENDSVSET_BIT in MPU ports.
|
---|
296 | + Introduced configSTACK_DEPTH_TYPE to allow users to change the type used
|
---|
297 | to specify the stack size when using xTaskCreate(). For historic reasons,
|
---|
298 | when FreeRTOS was only used on small MCUs, the type was set to uint16_t,
|
---|
299 | but that can be too restrictive when FreeRTOS is used on larger
|
---|
300 | processors. configSTACK_DEPTH_TYPE defaults to uint16_t.
|
---|
301 | xTaskCreateStatic(), being a newer function, used a uint32_t.
|
---|
302 | + Increase the priority of the Windows threads used by the Win32 port. As
|
---|
303 | all the threads run on the same core, and the threads run with very high
|
---|
304 | priority, there is a risk that the host will become unresponsive, so also
|
---|
305 | prevent the Windows port executing on single core hosts.
|
---|
306 |
|
---|
307 | Changes between FreeRTOS V9.0.0 and FreeRTOS V9.0.0rc2 released May 25 2016:
|
---|
308 |
|
---|
309 | See http://www.FreeRTOS.org/FreeRTOS-V9.html
|
---|
310 |
|
---|
311 | RTOS kernel updates:
|
---|
312 |
|
---|
313 | + The prototype of the new xTaskCreateStatic() API function was modified to
|
---|
314 | remove a parameter and improve compatibility with other new
|
---|
315 | "CreateStatic()" API functions. The stack size parameter in
|
---|
316 | xTaskCreateStatic() is now uint32_t, which changes the prototype of the
|
---|
317 | callback functions. See the following URL:
|
---|
318 | http://www.freertos.org/xTaskCreateStatic.html
|
---|
319 | + GCC ARM Cortex-A port: Introduced the configUSE_TASK_FPU_SUPPORT
|
---|
320 | constant. When configUSE_TASK_FPU_SUPPORT is set to 2 every task is
|
---|
321 | automatically given a floating point (FPU) context.
|
---|
322 | + GCC ARM Cortex-A port: It is now possible to automatically save and
|
---|
323 | restore all floating point (FPU) registers on entry to each potentially
|
---|
324 | nested interrupt by defining vApplicationFPUSafeIRQHandler() instead of
|
---|
325 | vApplicationIRQHandler().
|
---|
326 | + All ARM Cortex-M3/4F/7 ports: Clear the least significant bit of the task
|
---|
327 | entry address placed onto the stack of a task when the task is created for
|
---|
328 | strict compliance with the ARM Cortex-M3/4/7 architecture documentation
|
---|
329 | (no noticeable effect unless using the QMEU emulator).
|
---|
330 | + Added GCC and Keil ARM Cortex-M4F MPU ports - previously the MPU was only
|
---|
331 | supported on ARM Cortex-M3.
|
---|
332 | + ARM Cortex-M3/4F MPU ports: Update to fully support the FreeRTOS V9.0.0
|
---|
333 | API (other than static object creation) and added the
|
---|
334 | FreeRTOS/Demo/CORTEX_MPU_Simulator_Keil_GCC demo application to
|
---|
335 | demonstrate how to use the updated MPU port.
|
---|
336 | + All ARM Cortex-M3/4F/7 ports: Add additional barrier instructions to the
|
---|
337 | default low power tickless implementation.
|
---|
338 | + All ARM Cortex-M0 ports: Prevent an item being left on the stack of the
|
---|
339 | first task that executes.
|
---|
340 | + Win32 ports: Reduce the amount of stack used and change the way Windows
|
---|
341 | threads are deleted to increase the maximum execution time.
|
---|
342 | + Add an ARM Cortex-M4F port for the MikroC compiler. Ensure to read the
|
---|
343 | documentation page for this port before use.
|
---|
344 | + MPS430X IAR port: Update to be compatible with the latest EW430 tools
|
---|
345 | release.
|
---|
346 | + IAR32 GCC port: Correct vPortExitCritical() when
|
---|
347 | configMAX_API_CALL_INTERRUPT_PRIORITY == portMAX_PRIORITY.
|
---|
348 | + For consistency vTaskGetTaskInfo() now has the alias vTaskGetInfo(),
|
---|
349 | xTaskGetTaskHandle() now has the alias xTaskGetHandle() and
|
---|
350 | pcQueueGetQueueName() now has an alias pcQueueGetName().
|
---|
351 | + Fix various errors in comments and compiler warnings.
|
---|
352 |
|
---|
353 | Demo application updates:
|
---|
354 |
|
---|
355 | + Update Atmel Studio projects to use Atmel Studio 7.
|
---|
356 | + Update Xilinx SDK projects to use the 2016.1 version of the SDK.
|
---|
357 | + Remove dependency on legacy IO libraries from the PIC32 demos.
|
---|
358 | + Move the Xilinx UltraScale Cortex-R5 demo into the main distribution.
|
---|
359 | + Update the MSP432 libraries to the latest version.
|
---|
360 | + Add Microchip CEC1302 (ARM Cortex-M4F) demos for GCC, Keil and MikroC
|
---|
361 | compilers.
|
---|
362 | + Move the Atmel SAMA5D2 demo into the main distribution.
|
---|
363 |
|
---|
364 | Changes between FreeRTOS V9.0.0rc1 and FreeRTOS V9.0.0rc2 (release candidate 2)
|
---|
365 | released March 30 2016:
|
---|
366 |
|
---|
367 | NOTE - See http://www.FreeRTOS.org/FreeRTOS-V9.html for details
|
---|
368 |
|
---|
369 | + The functions that create RTOS objects using static memory allocation have
|
---|
370 | been simplified and will not revert to using dynamic allocation if a
|
---|
371 | buffer is passed into a function as NULL.
|
---|
372 | + Introduced the configSUPPORT_DYNAMIC_ALLOCATION configuration constant to
|
---|
373 | allow a FreeRTOS application to be built without a heap even being being
|
---|
374 | defined. The Win32 example located in the
|
---|
375 | /FreeRTOS/demo/WIN32-MSVC-Static-Allocation-Only directory is provided as
|
---|
376 | a reference for projects that do not include a FreeRTOS heap.
|
---|
377 | + Minor run-time optimisations.
|
---|
378 | + Two new low power tickless implementations that target Silicon Labs EFM32
|
---|
379 | microcontrollers.
|
---|
380 | + Addition of the xTimerGetPeriod() and xTimerGetExpireTime() API functions.
|
---|
381 |
|
---|
382 | Changes between FreeRTOS V8.2.3 and FreeRTOS V9.0.0rc1 (release candidate 1)
|
---|
383 | released February 19 2016:
|
---|
384 |
|
---|
385 | RTOS Kernel Updates:
|
---|
386 |
|
---|
387 | + Major new feature - tasks, semaphores, queues, timers and event groups can
|
---|
388 | now be created using statically allocated memory, so without any calls to
|
---|
389 | pvPortMalloc().
|
---|
390 | + Major new features - Added the xTaskAbortDelay() API function which allows
|
---|
391 | one task to force another task to immediately leave the Blocked state,
|
---|
392 | even if the event the blocked task is waiting for has not occurred, or the
|
---|
393 | blocked task's timeout has not expired.
|
---|
394 | + Updates necessary to allow FreeRTOS to run on 64-bit architectures.
|
---|
395 | + Added vApplicationDaemonTaskStartupHook() which executes when the RTOS
|
---|
396 | daemon task (which used to be called the timer service task) starts
|
---|
397 | running. This is useful if the application includes initialisation code
|
---|
398 | that would benefit from executing after the scheduler has been started.
|
---|
399 | + Added the xTaskGetTaskHandle() API function, which obtains a task handle
|
---|
400 | from the task's name. xTaskGetTaskHandle() uses multiple string compare
|
---|
401 | operations, so it is recommended that it is called only once per task.
|
---|
402 | The handle returned by xTaskGetTaskHandle() can then be stored locally for
|
---|
403 | later re-use.
|
---|
404 | + Added the pcQueueGetQueueName() API function, which obtains the name of
|
---|
405 | a queue from the queue's handle.
|
---|
406 | + Tickless idling (for low power applications) can now also be used when
|
---|
407 | configUSE_PREEMPTION is 0.
|
---|
408 | + If one task deletes another task, then the stack and TCB of the deleted
|
---|
409 | task is now freed immediately. If a task deletes itself, then the stack
|
---|
410 | and TCB of the deleted task are freed by the Idle task as before.
|
---|
411 | + If a task notification is used to unblock a task from an ISR, but the
|
---|
412 | xHigherPriorityTaskWoken parameter is not used, then pend a context switch
|
---|
413 | that will then occur during the next tick interrupt.
|
---|
414 | + Heap_1.c and Heap_2.c now use the configAPPLICATION_ALLOCATED_HEAP
|
---|
415 | settings, which previously was only used by heap_4.c.
|
---|
416 | configAPPLICATION_ALLOCATED_HEAP allows the application writer to declare
|
---|
417 | the array that will be used as the FreeRTOS heap, and in-so-doing, place
|
---|
418 | the heap at a specific memory location.
|
---|
419 | + TaskStatus_t structures are used to obtain details of a task.
|
---|
420 | TaskStatus_t now includes the bae address of the task's stack.
|
---|
421 | + Added the vTaskGetTaskInfo() API function, which returns a TaskStatus_t
|
---|
422 | structure that contains information about a single task. Previously this
|
---|
423 | information could only be obtained for all the tasks at once, as an array
|
---|
424 | of TaskStatus_t structures.
|
---|
425 | + Added the uxSemaphoreGetCount() API function.
|
---|
426 | + Replicate previous Cortex-M4F and Cortex-M7 optimisations in some
|
---|
427 | Cortex-M3 port layers.
|
---|
428 |
|
---|
429 | Demo Application Updates:
|
---|
430 |
|
---|
431 | Further demo applications will be added prior to the final FreeRTOS V9
|
---|
432 | release.
|
---|
433 |
|
---|
434 | + Updated SAM4L Atmel Studio project to use Atmel Studio 7.
|
---|
435 | + Added ARM Cortex-A53 64-bit port.
|
---|
436 | + Added a port and demo for the ARM Cortex-A53 64-bit cores on the Xilinx
|
---|
437 | Ultrascale MPSoC.
|
---|
438 | + Added Cortex-M7 SAME70 GCC demo.
|
---|
439 | + Added EFM32 Giant and Wonder Gecko demos.
|
---|
440 |
|
---|
441 |
|
---|
442 | Changes between V8.2.2 and V8.2.3 released October 16, 2015
|
---|
443 |
|
---|
444 | RTOS kernel updates:
|
---|
445 |
|
---|
446 | + Fix bug identified in a modification made in V8.2.2 to the software timer
|
---|
447 | code that allows tickless low power applications to sleep indefinitely
|
---|
448 | when software timers are used.
|
---|
449 | + Simplify and improve efficiency of stack overflow checking.
|
---|
450 | + Add xTaskNotifyStateClear() API function.
|
---|
451 | + New IAR and GCC Cortex-R ports for microprocessors that do not use an ARM
|
---|
452 | generic interrupt controller (GIC).
|
---|
453 | + New PIC32MEC14xx port.
|
---|
454 | + Add support for PIC32MZ EF parts (with floating point) into the PIC32MZ
|
---|
455 | port.
|
---|
456 | + Zynq7000 port layer now declares the functions that setup and clear the
|
---|
457 | tick interrupt as weak symbols so they can be overridden by the
|
---|
458 | application, and uses a global XScuGic object so the same object can be
|
---|
459 | used by the application code.
|
---|
460 | + Introduced configUSE_TASK_FPU_SUPPORT, although the PIC32MZ EF port is
|
---|
461 | currently the only port that uses it.
|
---|
462 | + Updates to RL78 and 78K0 IAR port layers to improve support for
|
---|
463 | combinations of memory models.
|
---|
464 | + Minor updates to heap_5.c to remove compiler warnings generated by some
|
---|
465 | compilers.
|
---|
466 | + License simplifications. See /FreeRTOS/License/license.txt in the
|
---|
467 | official distribution.
|
---|
468 |
|
---|
469 | FreeRTOS+ updates:
|
---|
470 |
|
---|
471 | + Update directory names to use WolfSSL instead of CyaSSL, inline with
|
---|
472 | WolfSSL's re-branding.
|
---|
473 | + Update to latest WolfSSL code.
|
---|
474 | + Update to latest FreeRTOS+Trace recorder code.
|
---|
475 | + Add in the FreeRTOS+Trace recorder library required for streaming trace.
|
---|
476 |
|
---|
477 | Demo application changes:
|
---|
478 |
|
---|
479 | + Add demo applications for Renesas RZ/T (Cortex-R), PIC32MZ EF (PIC32 with
|
---|
480 | floating point hardware), PIC32MEC14xx, RX71M, RX113 and RX231.
|
---|
481 | + General tidy up of spelling and compiler warnings.
|
---|
482 |
|
---|
483 |
|
---|
484 | Changes between V8.2.1 and V8.2.2 released August 12, 2015
|
---|
485 |
|
---|
486 | RTOS kernel updates:
|
---|
487 |
|
---|
488 | + Added Intel IA32/x86 32-bit port.
|
---|
489 | + General maintenance.
|
---|
490 | + PRIVILEGED_FUNCTION and PRIVILEGED_DATA macros, which are used in memory
|
---|
491 | protected systems, have been added to the newer event group and software
|
---|
492 | timer functions.
|
---|
493 | + Add the errno definitions used by FreeRTOS+ components into projdefs.h.
|
---|
494 | + Remove the restriction that prevented tick-less idle implementations
|
---|
495 | waiting indefinitely when software timers were used in the same
|
---|
496 | application.
|
---|
497 | + Introduce xTaskNotifyAndQueryFromISR() as the interrupt safe version of
|
---|
498 | xTaskNotifyAndQuery().
|
---|
499 | + Add additional NOPs to the MSP430X port layers to ensure strict compliance
|
---|
500 | with the hardware documentation.
|
---|
501 | + Microblaze port: Added option for port optimised task selection.
|
---|
502 | + Microblaze port: Previously tasks inherited the exception enable state
|
---|
503 | at the time the task was created. Now all tasks are created with
|
---|
504 | exceptions enabled if the Microblaze design supports exceptions.
|
---|
505 | + Windows port: Add additional safe guards to ensure the correct start up
|
---|
506 | sequence and thread switching timing.
|
---|
507 | + Windows port: Improve the implementation of the port optimised task
|
---|
508 | selection assembly code.
|
---|
509 | + Update heap_4 and heap_5 to allow use on 64-bit processors.
|
---|
510 | + Simplify the code that creates a queue.
|
---|
511 | + General improved tick-less idle behaviour.
|
---|
512 | + Ensure none of the variables in the common kernel files are initialised to
|
---|
513 | anything other than zero.
|
---|
514 | + Correct calculation of xHeapStructSize in heap_4 and heap_5.
|
---|
515 |
|
---|
516 | Demo application updates:
|
---|
517 |
|
---|
518 | + Added demo project for the new IA32/x86 port that targets the Galileo
|
---|
519 | hardware.
|
---|
520 | + Added MSP430FR5969 demos (previously provided as a separate download).
|
---|
521 | + Added FreeRTOS BSP repository for automatic creation of FreeRTOS
|
---|
522 | applications in the Xilinx SDK.
|
---|
523 | + Added Atmel Studio / GCC project for the SAMV71 (ARM Cortex-M7)
|
---|
524 | + Update Xilinx SDK projects to use version 2015.2 of the SDK.
|
---|
525 | + Remove Microblaze demos that were using obsolete tools.
|
---|
526 | + Add MSP43FR5969 IAR and CCS demos.
|
---|
527 |
|
---|
528 | FreeRTOS+ Updates:
|
---|
529 |
|
---|
530 | + Updated FreeRTOS+Trace recorder library, which requires an update to the
|
---|
531 | FreeRTOS+Trace application.
|
---|
532 | + Added Reliance Edge source code and demo application. Reliance edge is
|
---|
533 | a fail safe transactional file system ideal for applications that require
|
---|
534 | file storage, and especially when high reliability is essential.
|
---|
535 | + Introduce configAPPLICATION_PROVIDES_cOutputBuffer to allow FreeRTOS+CLI
|
---|
536 | users to place the output buffer at a fixed memory address.
|
---|
537 | + Improve the NetworkInterface.c file provided for the Windows port of
|
---|
538 | FreeRTOS+UDP.
|
---|
539 |
|
---|
540 | Changes between V8.2.0 and V8.2.1 released 24th March 2015.
|
---|
541 |
|
---|
542 | RTOS kernel updates:
|
---|
543 |
|
---|
544 | + Added user definable and flexible thread local storage facility.
|
---|
545 | + Added vTimerSetTimerID() API function to complement the pvTimerGetTimerID()
|
---|
546 | function to allow the timer's ID to be used as timer local storage.
|
---|
547 | + Fixed a potential issue related to the use of queue sets from an ISR.
|
---|
548 | + Some updates to the Xilinx Microblaze GCC port.
|
---|
549 | + Added ARM Cortex-M4F port for Texas Instruments Code Composer Studio.
|
---|
550 | + Added ARM Cortex-M7 r0p1 port layer for IAR, GCC and Keil which contains a
|
---|
551 | minor errata work around. All other ARM Cortex-M7 core revisions should
|
---|
552 | use the ARM Cortex-M4F port.
|
---|
553 | + Exclude the whole of croutine.c if configUSE_CO_ROUTINES is set to 0.
|
---|
554 | + Change some data types from uint32_t to size_t in preparation for 64-bit
|
---|
555 | Windows port.
|
---|
556 | + Update the PIC32 port to remove deprecation warnings output by the latest
|
---|
557 | XC32 compilers.
|
---|
558 | + Fix bug when xQueueOverwrite() and xQueueOverwrite() from ISR are used to
|
---|
559 | overwrite items in two queues that are part of the same set.
|
---|
560 |
|
---|
561 | Demo application updates:
|
---|
562 |
|
---|
563 | + Added demo application for TI's ARM Cortex-M4F based MSP432
|
---|
564 | microcontroller using IAR, Keil and CCS compilers.
|
---|
565 | + Added demo application for STM32F ARM Cortex-M7 based microcontroller
|
---|
566 | using IAR and Keil.
|
---|
567 | + Added demo application for Atmel SAMV71 ARM Cortex-M7 based
|
---|
568 | microcontroller using IAR and Keil.
|
---|
569 | + Added Microblaze demo that uses the 2014.4 version of the Xilinx SDK and
|
---|
570 | runs on the KC705 evaluation board (Kintex FPGA).
|
---|
571 |
|
---|
572 | Changes between V8.1.2 and V8.2.0 released 16th January 2015
|
---|
573 |
|
---|
574 | Changes between release candidate 1 and the official release are restricted
|
---|
575 | to maintenance only.
|
---|
576 |
|
---|
577 | Significant RTOS kernel updates:
|
---|
578 |
|
---|
579 | + MAJOR NEW FEATURE! Task notifications. Please see the following URL for
|
---|
580 | details: http://www.FreeRTOS.org/RTOS-task-notifications.html
|
---|
581 | + NEW HEADER FILE REQUIRED! Obsolete definitions have been separated into
|
---|
582 | a new header file called FreeRTOS/Source/include/deprecated_definitions.h.
|
---|
583 | This header file must be present to build. Note some of the obsolete
|
---|
584 | definitions are still used by very old demo application projects.
|
---|
585 |
|
---|
586 | Other RTOS kernel updates:
|
---|
587 |
|
---|
588 | + Made xSemaphoreGiveFromISR() a function rather than a macro that calls
|
---|
589 | xQueueGenericSendFromISR(). This allows for major performance
|
---|
590 | enhancements at the expense of some additional code size if both functions
|
---|
591 | are used in the same application. NOTE: In most uses cases such use of
|
---|
592 | a semaphore can now be replaced with a task notification which is smaller
|
---|
593 | and faster still.
|
---|
594 | + The TCB is now always allocated such that the task's stack grows away from
|
---|
595 | the TCB (improves debugging of stack overflows as the overflow will not
|
---|
596 | overwrite the task's name).
|
---|
597 | + GCC, IAR and Keil Cortex-M4F ports now use more inlining (performance
|
---|
598 | enhancements at the cost of a little additional code space).
|
---|
599 | + Queues are now allocated with a single call to pvPortMalloc() which
|
---|
600 | allocates both the queue structure and the queue storage area.
|
---|
601 | + Introduced a new critical section macro for reading the tick count that
|
---|
602 | defines away to nothing in cases where the width of the tick allows the
|
---|
603 | tick count to be read atomically (performance benefits - especially when
|
---|
604 | optimisation is on).
|
---|
605 | + Introduced configAPPLICATION_ALLOCATED_HEAP in heap_4.c to allow the
|
---|
606 | application writer to provide their own heap array - and in so doing
|
---|
607 | control the location of the heap.
|
---|
608 | + Introduced configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES which, when set, will
|
---|
609 | include known values in both list and list item structures. The values
|
---|
610 | are intended to assist debugging. If the values get overwritten then it
|
---|
611 | is likely application code has written over RAM used by the kernel.
|
---|
612 | + configASSERT()s in all Cortex-M ports used to test the lowest 5 bits of
|
---|
613 | the interrupt control register to detect taskENTER_CRITICAL() being called
|
---|
614 | from an interrupt. This has been changed to test all 8 bits.
|
---|
615 | + Introduced uxTaskPriorityGetFromISR().
|
---|
616 | + Microblze V8 port now tests XPAR_MICROBLAZE_0_USE_FPU for inequality to 0
|
---|
617 | rather than equality to 1, and 2 and 3 are also valid values.
|
---|
618 | + Cortex-A5 GIC-less port no longer passes the address of the interrupting
|
---|
619 | peripheral into the interrupt handler.
|
---|
620 | + Fix an issue in FreeRTOS-MPU where an attempt was made to free the stack
|
---|
621 | belonging to a task when the task was deleted, even when the stack was
|
---|
622 | allocated statically.
|
---|
623 | + Utility (helper) functions that format task statistic information into
|
---|
624 | human readable tables now pad task names with spaces to ensure columns
|
---|
625 | line up correctly even where task name lengths vary greatly.
|
---|
626 | + Update FreeRTOS+Trace recorder library to version 2.7.0.
|
---|
627 |
|
---|
628 | Demo application updates:
|
---|
629 |
|
---|
630 | + Added two new standard demo task sets: IntSemTest and TaskNotify.
|
---|
631 | + Added port and demo application for Atmel SAMA5D4 Cortex-A5 MPU.
|
---|
632 | + Added demo application for Altera Cyclone V Cortex-A9 MPU.
|
---|
633 | + Updated Zynq demo to use version 2014.4 of Xilinx's SDK and added in
|
---|
634 | demo tasks for new RTOS features.
|
---|
635 | + Updated Atmel SAM4E and SAM4S demos to include a lot of additional test
|
---|
636 | and demo tasks.
|
---|
637 | + Fixed a corner case issue in Atmel SAM4L low power tickless
|
---|
638 | implementation, and added button interrupt handling.
|
---|
639 | + Make the interrupt queue tests more tolerant to heave CPU loads.
|
---|
640 | + Updated MSVC FreeRTOS simulator demo to include the latest standard test
|
---|
641 | and demo tasks.
|
---|
642 | + Updated MingW/Eclipse FreeRTOS simulator demo to match the FreeRTOS MSVC
|
---|
643 | simulator demo.
|
---|
644 | + Updated all demos that use FreeRTOS+Trace to work with the latest trace
|
---|
645 | recorder code.
|
---|
646 |
|
---|
647 |
|
---|
648 | Changes between V8.1.1 and V8.1.2 released September 2nd 2014
|
---|
649 |
|
---|
650 | Move the defaulting of configUSE_PORT_OPTIMISED_TASK_SELECTION into the
|
---|
651 | individual port layers where necessary so it does not affect ports that do
|
---|
652 | not support the definition.
|
---|
653 |
|
---|
654 | Changes between V8.1.0 and V8.1.1 released August 29th 2014
|
---|
655 |
|
---|
656 | By popular requests - a minor patch to V8.1.0 to re-instate the ability to
|
---|
657 | give a mutex type semaphore (with priority inheritance) from an interrupt
|
---|
658 | handler.
|
---|
659 |
|
---|
660 | Changes between V8.0.1 and V8.1.0 released August 26th 2014
|
---|
661 |
|
---|
662 | FreeRTOS scheduler, kernel, demo and test updates:
|
---|
663 |
|
---|
664 | + Improved the priority inheritance algorithms to assist integration with
|
---|
665 | off the shelf middleware that may hold multiple mutexes simultaneously.
|
---|
666 | + Introduce heap_5.c, which is similar to heap_4.c but allows the heap to
|
---|
667 | span multiple non-contiguous memory regions.
|
---|
668 | + Updated all Cortex-A9 ports to help trap a couple of common usage errors -
|
---|
669 | the first being when a task incorrectly attempts to exit its implementing
|
---|
670 | function and the second being when a non interrupt safe API function is
|
---|
671 | called from an interrupt.
|
---|
672 | + Update all Cortex-A9 ports to remove obsolete mode switches prior to
|
---|
673 | restoring a task context.
|
---|
674 | + configUSE_PORT_OPTIMISED_TASK_SELECTION now defaults to 1 instead of 0.
|
---|
675 | + Update all Cortex-M3/4F ports to trap a non interrupt safe API function
|
---|
676 | being called from an interrupt handler.
|
---|
677 | + Simplify the alignment checks in heap_4.c.
|
---|
678 | + Update the MSVC Windows simulator demo to use heap_5.c in place of
|
---|
679 | heap_4.c to ensure end users have an example to refer to.
|
---|
680 | + Updated standard demo test code to test the new priority inheritance
|
---|
681 | algorithms.
|
---|
682 | + Updated the standard demo tasks to make use of stdint and the FreeRTOS
|
---|
683 | specific typedefs that were introduced in FreeRTOS V8.0.0.
|
---|
684 | + Introduce the pdMS_TO_TICKS() macro as a more user friendly and intuitive
|
---|
685 | alternative to pdTICKS_PER_MS - both of which can be used to convert a
|
---|
686 | time specified in milliseconds to a time specified in RTOS ticks.
|
---|
687 | + Fix a bug in the Tasking compiler's Cortex-M port that resulted in an
|
---|
688 | incorrect value being written to the basepri register. This only effects
|
---|
689 | users of the Tasking compiler.
|
---|
690 | + Update the Zynq demo to use version 2014.2 of the SDK and add in an lwIP
|
---|
691 | example that demonstrates lwIP being used with both its raw and sockets
|
---|
692 | interfaces.
|
---|
693 | + Updated the CCS Cortex-R4 port to enable it to be built with the latest
|
---|
694 | CCS compiler.
|
---|
695 |
|
---|
696 | New ports and demo applications:
|
---|
697 |
|
---|
698 | + Two Renesas RX64M ports (RXv2 core) and demos introduced, one for the GCC
|
---|
699 | compiler and one for the Renesas compiler. Both demos use e2 studio.
|
---|
700 | + Generic IAR Cortex-A5 port (without any reliance on a GIC) introduced.
|
---|
701 | The new port is demonstrated on an Atmel SAMA5D3 XPlained board.
|
---|
702 |
|
---|
703 | FreeRTOS+ component updates:
|
---|
704 |
|
---|
705 | + Update CyaSSL to the latest version.
|
---|
706 | + Updated the FreeRTOS+ components supplied directly by Real Time Engineers
|
---|
707 | Ltd. to make use of stdint and the FreeRTOS specific typedefs that were
|
---|
708 | introduced in FreeRTOS V8.0.0.
|
---|
709 | + Rework and simplify the FreeRTOS+FAT SL RAM disk driver.
|
---|
710 |
|
---|
711 | Miscellaneous updates and maintenance:
|
---|
712 |
|
---|
713 | + Update the IAR and DS-5/ARM RZ demos to target the official RZ RSK
|
---|
714 | hardware in place of the previously targeted Renesas internal (not
|
---|
715 | publicly available) hardware.
|
---|
716 | + Various other maintenance tasks.
|
---|
717 |
|
---|
718 |
|
---|
719 | Changes between V8.0.0 and V8.0.1 released 2nd May 2014
|
---|
720 |
|
---|
721 | + Minor fixes to the event group functionality that was released in V8.0.0.
|
---|
722 | The 'clear bits from ISR' functionality is now implemented using a
|
---|
723 | deferred interrupt callback instead of a function, and the 'wait bits' and
|
---|
724 | 'task sync' functions now correctly clear internal control bits before
|
---|
725 | returning a value in every possible path through the respective functions.
|
---|
726 | + Ensure the updating of internal control data is protected by a critical
|
---|
727 | section after a task is deleted or suspended.
|
---|
728 | + Minor fixes to FreeRTOS+FAT SL - namely seeking beyond the end of a file
|
---|
729 | when the offset was not a multiple of the sector size.
|
---|
730 | + Ensure Cortex-A9 system registers are only ever accessed as 32-bit values,
|
---|
731 | even when only the lest significant byte of the register is implemented.
|
---|
732 |
|
---|
733 | Other updates:
|
---|
734 |
|
---|
735 | + Updated the XMC4200 IAR project so it links with version 7.x of the IAR
|
---|
736 | tools.
|
---|
737 | + Add RL78L1C demo.
|
---|
738 | + Add pcTimerGetName() API function.
|
---|
739 | + Call _reclaim_reent() when a task is deleted if configUSE_NEWLIB_REENTRANT
|
---|
740 | is defined.
|
---|
741 |
|
---|
742 | Changes between V7.6.0 and V8.0.0 released 19th Feb 2014
|
---|
743 |
|
---|
744 | http://www.freertos.org/upgrading-to-FreeRTOS-V8.html
|
---|
745 |
|
---|
746 | FreeRTOS V8.x.x is a drop-in compatible replacement for FreeRTOS V7.x.x,
|
---|
747 | although a change to the type used to reference character strings may result
|
---|
748 | in application code generating a few (easily clearable) compiler warnings
|
---|
749 | after the upgrade, and an updated typedef naming convention means use of the
|
---|
750 | old typedef names is now discouraged.
|
---|
751 | See http://www.freertos.org/upgrading-to-FreeRTOS-V8.html for full
|
---|
752 | information.
|
---|
753 |
|
---|
754 | New features and functionality:
|
---|
755 |
|
---|
756 | + Event groups - see http://www.freertos.org/FreeRTOS-Event-Groups.html
|
---|
757 | + Centralised deferred interrupt processing - see
|
---|
758 | http://www.freertos.org/xTimerPendFunctionCallFromISR.html
|
---|
759 |
|
---|
760 | Other updates:
|
---|
761 |
|
---|
762 | + Previously, when a task left the Blocked state, a context switch was
|
---|
763 | performed if the priority of the unblocked task was greater than or equal
|
---|
764 | to the priority of the Running task. Now a context switch is only
|
---|
765 | performed if the priority of the unblocked task is greater than the
|
---|
766 | priority of the Running task.
|
---|
767 | + New low power tickless demonstration project that targets the ST STM32L
|
---|
768 | microcontroller - see
|
---|
769 | http://www.freertos.org/STM32L-discovery-low-power-tickless-RTOS-demo.html
|
---|
770 | + Add xPortGetMinimumEverFreeHeapSize() to heap_4.c.
|
---|
771 | + Small change to the tickless low power implementation on the SAM4L to
|
---|
772 | ensure the alarm value (compare match value) cannot be set to zero when a
|
---|
773 | tickless period is exited due to an interrupt originating from a source
|
---|
774 | other than the RTOS tick.
|
---|
775 | + Update the GCC/Eclipse Win32 simulator demo to make better use of Eclipse
|
---|
776 | resource filters and match the functionality of the MSVC equivalent.
|
---|
777 | + xTaskIsTaskSuspended() is no longer a public function. Use
|
---|
778 | eTaskGetState() in its place.
|
---|
779 | + Improved trace macros, including tracing of heap usage.
|
---|
780 | + Remove one level of indirection when accepting interrupts on the PIC32MZ.
|
---|
781 | + Add Cortex-A9 GCC port layer.
|
---|
782 | + Add Xilinx Zynq demo application.
|
---|
783 |
|
---|
784 |
|
---|
785 | Changes between V7.5.3 and V7.6.0 released 18th November 2013
|
---|
786 |
|
---|
787 | V7.6.0 changes some behaviour when the co-operative scheduler is used (when
|
---|
788 | configUSE_PREEMPTION is set to 0). It is important to note that the
|
---|
789 | behaviour of the pre-emptive scheduler is unchanged - the following
|
---|
790 | description only applies when configUSE_PREEMPTION is set to 0:
|
---|
791 |
|
---|
792 | WHEN configUSE_PREEMPTION IS SET TO 0 (which is in a small minority of
|
---|
793 | cases) a context switch will now only occur when a task places itself into
|
---|
794 | the Blocked state, or explicitly calls taskYIELD(). This differs from
|
---|
795 | previous versions, where a context switch would also occur when implicitly
|
---|
796 | moving a higher priority task out of the Blocked state. For example,
|
---|
797 | previously, WHEN PREEMPTION WAS TURNED OFF, if task A unblocks task B by
|
---|
798 | writing to a queue, then the scheduler would switch to the higher priority
|
---|
799 | task. Now, WHEN PREEMPTION IS TURNED OFF, if task A unblocks task B by
|
---|
800 | writing to a queue, task B will not start running until task A enters the
|
---|
801 | Blocked state or task A calls taskYIELD(). [If configUSE_PREEMPTION is not
|
---|
802 | set to 0, so the normal pre-emptive scheduler is being used, then task B
|
---|
803 | will start running immediately that it is moved out of the Blocked state].
|
---|
804 |
|
---|
805 | Other changes:
|
---|
806 |
|
---|
807 | + Added a port layer and a demo project for the new PIC32MZ architecture.
|
---|
808 | + Update the PIC32MX port layer to re-introduce some ehb instructions that
|
---|
809 | were previously removed, add the ability to catch interrupt stack
|
---|
810 | overflows (previously only task stack overflows were trapped), and also
|
---|
811 | add the ability to catch an application task incorrectly attempting to
|
---|
812 | return from its implementing function.
|
---|
813 | + Make dramatic improvements to the performance of the Win32 simulator port
|
---|
814 | layer.
|
---|
815 | + Ensure tasks that are blocked indefinitely report their state as Blocked
|
---|
816 | instead of Suspended.
|
---|
817 | + Slight improvement to the Cortex-M4F port layers where previously one
|
---|
818 | register was inadvertently being saved twice.
|
---|
819 | + Introduce the xSemaphoreCreateBinary() API function to ensure consistency
|
---|
820 | in the semantics of how each semaphore type is created. It is no longer
|
---|
821 | recommended to use vSemaphoreCreateBinary() (the version prefixed with a
|
---|
822 | 'v'), although it will remain in the code for backward compatibility.
|
---|
823 | + Update the Cortex-M0 port layers to allow the scheduler to be started
|
---|
824 | without using the SVC handler.
|
---|
825 | + Added a build configuration to the PIC32MX MPLAB X demo project that
|
---|
826 | targets the PIC32 USB II starter kit. Previously all the build
|
---|
827 | configurations required the Explorer 16 hardware.
|
---|
828 | + Some of the standard demo tasks have been updated to ensure they execute
|
---|
829 | correctly with the updated co-operative scheduling behaviour.
|
---|
830 | + Added comprehensive demo for the Atmel SAM4E, including use of
|
---|
831 | FreeRTOS+UDP, FreeRTOS+FAT SL and FreeRTOS+CLI.
|
---|
832 |
|
---|
833 | FreeRTOS+ Changes:
|
---|
834 |
|
---|
835 | + Minor maintenance on FreeRTOS+UDP.
|
---|
836 |
|
---|
837 | Changes between V7.5.2 and V7.5.3 released October 14 2013
|
---|
838 |
|
---|
839 | Kernel changes:
|
---|
840 |
|
---|
841 | + Prior to V7.5.x yields requested from the tick hook would occur in the
|
---|
842 | same tick interrupt - revert to that original behaviour.
|
---|
843 | + New API function uxQueueSpacesAvailable().
|
---|
844 | + Introduced the prvTaskExitError() function to Cortex-M0, Cortex-M3/4
|
---|
845 | and Cortex-M4F ports. prvTaskExitError() is used to trap tasks that
|
---|
846 | attempt to return from their implementing functions (tasks should call
|
---|
847 | vTaskDelete( NULL ); if they want to exit).
|
---|
848 | + The Cortex-M0 version of portSET_INTERRUPT_MASK_FROM_ISR and
|
---|
849 | portCLEAR_INTERRUPT_MASK_FROM_ISR are now fully nestable.
|
---|
850 | + Improved behaviour and robustness of the default Cortex-M tickless idle
|
---|
851 | behaviour.
|
---|
852 | + Add workaround for silicon errata PMU_CM001 in Infineon XMC4000 devices to
|
---|
853 | all Cortex-M4F ports.
|
---|
854 | + Add Cortex-M0 port for Keil.
|
---|
855 | + Updated Cortus port.
|
---|
856 | + Ensure _impure_ptr is initialised before the scheduler is started.
|
---|
857 | Previously it was not set until the first context switch.
|
---|
858 |
|
---|
859 | FreeRTOS+ changes:
|
---|
860 |
|
---|
861 | + Update FreeRTOS+UDP to V1.0.1 - including direct integration of the
|
---|
862 | FreeRTOS+Nabto task, improvements to the DHCP behaviour, and a correction
|
---|
863 | to the test that prevents the network event hook being called on the first
|
---|
864 | network down event. The FreeRTOS+UDP change history is maintained
|
---|
865 | separately.
|
---|
866 | + Correct the __NVIC_PRIO_BITS setting in the LPC18xx.h header files
|
---|
867 | provided in the NXP CMSIS library, then update the interrupts used by the
|
---|
868 | LPC18xx demos accordingly.
|
---|
869 | + Replace double quotes (") with single quotes (') in FreeRTOS+CLI help
|
---|
870 | strings to ensure the strings can be used with the JSON descriptions used
|
---|
871 | in the FreeRTOS+Nabto demos.
|
---|
872 |
|
---|
873 | Demo and miscellaneous changes:
|
---|
874 |
|
---|
875 | + Added demo for the Atmel SAMD20 Cortex-M0+. The demo includes
|
---|
876 | FreeRTOS+CLI
|
---|
877 | + Added a demo for the Infineon Cortex-M0 that can be built with the IAR
|
---|
878 | Keil and GCC tools.
|
---|
879 | + Updated the Infineon XMC4000 demos for IAR, Keil, GCC and Tasking tools,
|
---|
880 | with additional build configurations to directly support the XMC4200 and
|
---|
881 | XMC4400 devices, in addition to the previously supported XMC4500.
|
---|
882 | + Updated the demo application.
|
---|
883 | + Added additional trace macros traceMALLOC and traceFREE to track heap
|
---|
884 | usage.
|
---|
885 |
|
---|
886 | Changes between V7.5.0 and V7.5.2 released July 24 2013
|
---|
887 |
|
---|
888 | V7.5.2 makes the new Cortex-M vPortCheckInterruptPriority() function
|
---|
889 | compatible with the STM32 standard peripheral driver library, and adds
|
---|
890 | an extra critical section to the default low power tickless mode
|
---|
891 | implementation. Only users of the STM32 peripheral library or the default
|
---|
892 | tickless implementation need update from version 7.5.0.
|
---|
893 |
|
---|
894 | Changes between V7.4.2 and V7.5.0 released July 19 2013
|
---|
895 |
|
---|
896 | V7.5.0 is a major upgrade that includes multiple scheduling and efficiency
|
---|
897 | improvements, and some new API functions.
|
---|
898 |
|
---|
899 | Compatibility information for FreeRTOS users:
|
---|
900 | FreeRTOS V7.5.0 is backward compatible with FreeRTOS V7.4.0 with one
|
---|
901 | exception; the vTaskList() and vTaskGetRunTimeStats() functions are now
|
---|
902 | considered legacy, having been replaced by the single uxTaskGetSystemState()
|
---|
903 | function. configUSE_STATS_FORMATTING_FUNCTIONS must be set to 1 in
|
---|
904 | FreeRTOSConfig.h for vTaskList() and vTaskGetRunTimeStats() to be
|
---|
905 | available.
|
---|
906 |
|
---|
907 | Compatibility information for FreeRTOS port writers:
|
---|
908 | vTaskIncrementTick() is now called xTaskIncrementTick() (because it now
|
---|
909 | returns a value).
|
---|
910 |
|
---|
911 | Headline changes:
|
---|
912 |
|
---|
913 | + Multiple scheduling and efficiency improvements.
|
---|
914 | + Core kernel files now pass PC-Lint V8 static checking without outputting
|
---|
915 | any warnings (information on the test conditions will follow).
|
---|
916 |
|
---|
917 | New API functions:
|
---|
918 |
|
---|
919 | + uxTaskGetSystemState() http://www.freertos.org/uxTaskGetSystemState.html
|
---|
920 | + xQueueOverwrite() http://www.freertos.org/xQueueOverwrite.html
|
---|
921 | + xQueueOverwriteFromISR()
|
---|
922 | + xQueuePeekFromISR()
|
---|
923 |
|
---|
924 | The following ports and demos, which were previously available separately,
|
---|
925 | are now incorporated into the main FreeRTOS zip file download:
|
---|
926 |
|
---|
927 | + ARM Cortex-A9 IAR
|
---|
928 | + ARM Cortex-A9 ARM compiler
|
---|
929 | + Renesas RZ
|
---|
930 | + Microsemi SmartFusion2
|
---|
931 |
|
---|
932 | New FreeRTOSConfig.h settings
|
---|
933 | http://shop.freertos.org/FreeRTOS_API_and_Configuration_Reference_s/1822.htm
|
---|
934 |
|
---|
935 | + configUSE_TIME_SLICING
|
---|
936 | + configUSE_NEWLIB_REENTRANT
|
---|
937 | + configUSE_STATS_FORMATTING_FUNCTIONS
|
---|
938 | + configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
|
---|
939 |
|
---|
940 | Other changes:
|
---|
941 |
|
---|
942 | + (MPU port only) The configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS
|
---|
943 | options provides a mechanism that allows application writers to execute
|
---|
944 | certain functions in privileged mode even when a task is running in user
|
---|
945 | mode.
|
---|
946 | + Ports that support interrupt nesting now include a configASSERT() that
|
---|
947 | will trigger if an interrupt safe FreeRTOS function is called from an
|
---|
948 | interrupt that has a priority designated as above the maximum system/API
|
---|
949 | call interrupt priority.
|
---|
950 | + The included FreeRTOS+Trace recorder code has been updated to the latest
|
---|
951 | version, and the demo applications that use the trace recorder code have
|
---|
952 | been updated accordingly.
|
---|
953 | + The FreeRTOS Windows Simulator (MSVC version only) has been updated to
|
---|
954 | include a new basic 'blinky' build option in addition to the original
|
---|
955 | comprehensive build option.
|
---|
956 | + Improve RAM usage efficiency of heap_4.c and heap_2.c.
|
---|
957 | + Prevent heap_4.c from attempting to free memory blocks that were not
|
---|
958 | allocated by heap_4.c, or have already been freed.
|
---|
959 | + As FreeRTOS now comes with FreeRTOS+FAT SL (donated by HCC) the Chan FATfs
|
---|
960 | files have been removed from FreeRTOS/Demo/Common.
|
---|
961 | + Fix build error when R4 port is build in co-operative mode.
|
---|
962 | + Multiple port and demo application maintenance activities.
|
---|
963 |
|
---|
964 | Changes between V7.4.1 and V7.4.2 released May 1 2013
|
---|
965 |
|
---|
966 | NOTE: There are no changes in the FreeRTOS kernel between V7.4.1 and V7.4.2
|
---|
967 |
|
---|
968 | + Added FreeRTOS+FAT SL source code and demo project. The demo project
|
---|
969 | runs in the FreeRTOS Windows simulator for easy and hardware independent
|
---|
970 | experimentation and evaluation. See http://www.FreeRTOS.org/fat_sl
|
---|
971 |
|
---|
972 | Changes between V7.4.0 and V7.4.1 released April 18 2013
|
---|
973 |
|
---|
974 | + To ensure strict conformance with the spec and ensure compatibility with
|
---|
975 | future chips data and instruction barrier instructions have been added to
|
---|
976 | the yield macros of Cortex-M and Cortex-R port layers. For efficiency
|
---|
977 | the Cortex-M port layer "yield" and "yield" from ISR are now implemented
|
---|
978 | separately as the barrier instructions are not required in the ISR case.
|
---|
979 | + Added FreeRTOS+UDP into main download.
|
---|
980 | + Reorganised the FreeRTOS+ directory so it now matches the FreeRTOS
|
---|
981 | directory with Source and Demo subdirectories.
|
---|
982 | + Implemented the Berkeley sockets select() function in FreeRTOS+UDP.
|
---|
983 | + Changed (unsigned) casting in calls to standard library functions with
|
---|
984 | (size_t) casting.
|
---|
985 | + Added the Atmel SAM4L and Renesas RX100 demos that demonstrates the
|
---|
986 | tickless (tick suppression) low power FreeRTOS features.
|
---|
987 | + Add a new RL78 IAR demo that targets numerous new RL78 chips and
|
---|
988 | evaluation boards.
|
---|
989 | + Adjusted stack alignment on RX200 ports to ensure an assert was not
|
---|
990 | falsely triggered when configASSERT() is defined.
|
---|
991 | + Updated the Cortex_M4F_Infineon_XMC4500_IAR demo to build with the latest
|
---|
992 | version of EWARM.
|
---|
993 | + Corrected header comments in the het.c and het.h files (RM48/TMS570 demo).
|
---|
994 |
|
---|
995 |
|
---|
996 | Changes between V7.3.0 and V7.4.0 released February 20 2013
|
---|
997 |
|
---|
998 | + New feature: Queue sets. See:
|
---|
999 | http://www.FreeRTOS.org/Pend-on-multiple-rtos-objects.html
|
---|
1000 | + Overhauled the default tickless idle mode implementation provided with the
|
---|
1001 | ARM Cortex-M3 port layers.
|
---|
1002 | + Enhanced tickless support in the core kernel code with the introduction of
|
---|
1003 | the configEXPECTED_IDLE_TIME_BEFORE_SLEEP macro and the
|
---|
1004 | eTaskConfirmSleepModeStatus() function.
|
---|
1005 | + Added the QueueSet.c common demo/test file. Several demo applications
|
---|
1006 | have been updated to use the new demo/test tasks.
|
---|
1007 | + Removed reliance on the PLIB libraries from the MPLAB PIC32 port layer and
|
---|
1008 | demo applications.
|
---|
1009 | + Added the FreeRTOS+Trace recorder code to the MSVC Win32 demo.
|
---|
1010 | + Renamed eTaskStateGet() to eTaskGetState() for consistency, and added a
|
---|
1011 | pre-processor macro for backward compatibility with the previous name.
|
---|
1012 | + Updated functions implemented in the core queue.c source file to allow
|
---|
1013 | queue.h to be included from the .c file directly (this prevents compiler
|
---|
1014 | warnings that were generated by some compilers).
|
---|
1015 | + Updated the CCS Cortex-R4 port layer to replace the CLZ assembler function
|
---|
1016 | with the CLZ compiler intrinsic that is provided by the latest versions of
|
---|
1017 | the CCS ARM compiler.
|
---|
1018 | + Updated all heap_x.c implementations to replace the structure that was
|
---|
1019 | used to ensure the start of the heap was aligned with a more portable
|
---|
1020 | direct C code implementation.
|
---|
1021 | + Added support for PIC24 devices that include EDS.
|
---|
1022 | + Minor optimisations to the PIC32 port layer.
|
---|
1023 | + Minor changes to tasks.c that allow the state viewer plug-ins to display
|
---|
1024 | additional information.
|
---|
1025 | + Bug fix: Update prvProcessReceivedCommands() in timers.c to remove an
|
---|
1026 | issue that could occur if the priority of the timer daemon task was set
|
---|
1027 | below the priority of tasks that used timer services.
|
---|
1028 | + Update the FreeRTOS+Trace recorder code to the latest version.
|
---|
1029 |
|
---|
1030 | Changes between V7.2.0 and V7.3.0 released October 31 2012
|
---|
1031 |
|
---|
1032 | + Added ability to override the default scheduler task selection mechanism
|
---|
1033 | with implementations that make use of architecture specific instructions.
|
---|
1034 | + Added ability to suppress tick interrupts during idle time, and in so
|
---|
1035 | doing, provide the ability to make use of architecture specific low power
|
---|
1036 | functionality.
|
---|
1037 | + Added the portSUPPRESS_TICKS_AND_SLEEP() macro and vTaskStepTick() helper
|
---|
1038 | function.
|
---|
1039 | + Added the configSYSTICK_CLOCK_HZ configuration constant.
|
---|
1040 | + Reworked the Cortex-M3 and Cortex-M4F port layers for GCC, Keil and IAR to
|
---|
1041 | directly support basic power saving functionality.
|
---|
1042 | + Added hooks to allow basic power saving to be augmented in the application
|
---|
1043 | by making use of chip specific functionality.
|
---|
1044 | + Minor change to allow mutex type semaphores to be used from interrupts
|
---|
1045 | (which would not be a normal usage model for a mutex).
|
---|
1046 | + Change the behaviour of the interrupt safe interrupt mask save and restore
|
---|
1047 | macros in the Cortex-M ports. The save macro now returns the previous
|
---|
1048 | mask value. The restore macro now uses the previous mask value. These
|
---|
1049 | changes are not necessary for the kernel's own implementation, and are
|
---|
1050 | made purely because the macros were being used by application writers.
|
---|
1051 | + Added eTaskStateGet() API function.
|
---|
1052 | + Added port specific optimisations to the PIC32 port layer, and updated the
|
---|
1053 | PIC32 demo applications to make use of this new feature.
|
---|
1054 | + Added port specific optimisations to the Win32 simulator port.
|
---|
1055 | + Added new ports and demo applications for the TI Hercules RM48 and TMS570
|
---|
1056 | safety microcontrollers.
|
---|
1057 | + Added SAM3 demos targeting the ATSAM3S-EK2 and ATSAM3X-EK evaluation
|
---|
1058 | boards.
|
---|
1059 | + Updated the PIC32 MPLAB X project to manually set the compiler include
|
---|
1060 | paths instead of using the IDE entry box following reports that the
|
---|
1061 | include paths were somehow being deleted.
|
---|
1062 | + Improved character handling in FreeRTOS+CLI.
|
---|
1063 |
|
---|
1064 | Changes between V7.1.1 and V7.2.0 released 14 August 2012
|
---|
1065 |
|
---|
1066 | FreeRTOS V7.2.0 is backward compatible with FreeRTOS V7.1.2.
|
---|
1067 |
|
---|
1068 | + Added a FreeRTOS+ sub-directory. The directory contains some FreeRTOS+
|
---|
1069 | source code, and example projects that use the FreeRTOS Win32 simulator.
|
---|
1070 | + Added a new example heap allocation implementation (heap_4.c) that
|
---|
1071 | includes memory block coalescence.
|
---|
1072 | + Added a demo that targets the Atmel SAM4S Cortex-M4 based microcontroller.
|
---|
1073 | The demo is preconfigured to build using the free Atmel Studio 6 IDE and
|
---|
1074 | GCC compiler.
|
---|
1075 | + Added xSemaphoreTakeFromISR() implementation.
|
---|
1076 | + The last parameter in ISR safe FreeRTOS queue and semaphore functions
|
---|
1077 | (xHigherPriorityTaskWoken) is now optional and can be set to NULL if it
|
---|
1078 | is not required.
|
---|
1079 | + Update the IAR and MSP430X ports to clear all lower power mode bits before
|
---|
1080 | exiting the tick interrupt [bug fix].
|
---|
1081 | + Allow xQueueReset() to be used, even when the queues event lists are not
|
---|
1082 | empty.
|
---|
1083 | + Added a vQueueDelete() handler for the FreeRTOS MPU port (this was
|
---|
1084 | previously missing).
|
---|
1085 | + Updated the vPortSVCHandler() functions in the FreeRTOS MPU port layer to
|
---|
1086 | ensure it compiles with the latest ARM GCC compilers from Linaro.
|
---|
1087 | + Updated the prvReadGP() function in the NIOS II port to ensure the compiler
|
---|
1088 | can choose any register for the functions parameter (required at high
|
---|
1089 | compiler optimisation levels).
|
---|
1090 | + Add #error macros into the Keil and IAR Cortex-M ports to ensure they
|
---|
1091 | cannot be built if the user has set configMAX_SYSCALL_INTERRUPT_PRIORITY
|
---|
1092 | to 0.
|
---|
1093 | + Added comments in the FreeRTOSConfig.h files associated with Cortex-M3 and
|
---|
1094 | Cortex-M4 demos stating that the configMAX_SYSCALL_INTERRUPT_PRIORITY
|
---|
1095 | parameter must not be set to 0.
|
---|
1096 | + Introduce new INCLUDE_xQueueGetMutexHolder configuration constant
|
---|
1097 | (defaulted to 0).
|
---|
1098 | + Added two new list handling macros - for internal use only in upcoming new
|
---|
1099 | products.
|
---|
1100 | + Removed all mention of the legacy vTaskStartTrace and ulTaskEndTrace
|
---|
1101 | macros. FreeRTOS+Trace supersedes the legacy trace.
|
---|
1102 | + Added a configASSERT() into the vPortFree() function in heap_1.c as it is
|
---|
1103 | invalid for the function to be called.
|
---|
1104 | + Made the xRxLock and xTxLock members of the queue structure volatile.
|
---|
1105 | This is probably not necessary, and is included as a precautionary
|
---|
1106 | measure.
|
---|
1107 | + Modify the assert() that checks to see if the priority passed into an
|
---|
1108 | xTaskCreate() function is within valid bounds to permit the assert to be
|
---|
1109 | used in the FreeRTOS MPU port.
|
---|
1110 | + The software timer service (daemon) task is now created in a way that
|
---|
1111 | to ensure compatibility with FreeRTOS MPU.
|
---|
1112 |
|
---|
1113 | Changes between V7.1.0 and V7.1.1 released May 1 2012
|
---|
1114 |
|
---|
1115 | New ports:
|
---|
1116 |
|
---|
1117 | The following ports are brand new:
|
---|
1118 | + Cortex-M3 Tasking
|
---|
1119 |
|
---|
1120 | The following ports have been available as separate downloads for a number
|
---|
1121 | of months, but are now included in the main FreeRTOS download.
|
---|
1122 | + Cortex-M0 IAR
|
---|
1123 | + Cortex-M0 GCC
|
---|
1124 | + Cortex-M4F GCC (with full floating point support)
|
---|
1125 |
|
---|
1126 |
|
---|
1127 | New demos:
|
---|
1128 |
|
---|
1129 | The following demos are brand new:
|
---|
1130 | + Renesas RX63N RDK (Renesas compiler)
|
---|
1131 |
|
---|
1132 | The following demos have been available as separate downloads for a number
|
---|
1133 | of months, but are now included in the main FreeRTOS download.
|
---|
1134 | + NXP LPC1114 GCC/LPCXpresso
|
---|
1135 | + ST STM32F0518 IAR
|
---|
1136 | + Infineon XMC4500 GCC/Atollic
|
---|
1137 | + Infineon XMC4500 IAR
|
---|
1138 | + Infineon XMC4500 Keil
|
---|
1139 | + Infineon XMC4500 Tasking
|
---|
1140 |
|
---|
1141 |
|
---|
1142 | Kernel miscellaneous / maintenance:
|
---|
1143 |
|
---|
1144 | + Introduced the portSETUP_TCB() macro to remove the requirement for the
|
---|
1145 | Windows simulator to use the traceTASK_CREATE() macro, leaving the trace
|
---|
1146 | macro available for use by FreeRTOS+Trace (http://www.FreeRTOS.org/trace).
|
---|
1147 | + Added a new trace macro, traceMOVE_TASK_TO_READY_STATE(), to allow future
|
---|
1148 | FreeRTOS+Trace versions to provide even more information to users.
|
---|
1149 | + Updated the FreeRTOS MPU port to be correct for changes that were
|
---|
1150 | introduced in FreeRTOS V7.1.0.
|
---|
1151 | + Introduced the xQueueReset() API function.
|
---|
1152 | + Introduced the xSemaphoreGetMutexHolder() API function.
|
---|
1153 | + Tidy up various port implementations to add the static key word where
|
---|
1154 | appropriate, and remove obsolete code.
|
---|
1155 | + Slight change to the initial stack frame given to the RX600 ports to allow
|
---|
1156 | them to be used in the Eclipse based E2Studio IDE without confusing GDB.
|
---|
1157 | + Correct the alignment given to the initial stack of Cortex-M4F tasks.
|
---|
1158 | + Added a NOP following each DINT instruction on MSP430 devices for strict
|
---|
1159 | conformance with the instructions on using DINT.
|
---|
1160 | + Changed the implementation of thread deletes in the Win32 port to prevent
|
---|
1161 | the port making use of the traceTASK_DELETE() trace macros - leaving this
|
---|
1162 | macro free for use by FreeRTOS+Trace.
|
---|
1163 | + Made some benign changes to the RX600 Renesas compiler port layer to
|
---|
1164 | ensure the code can be built to a library without essential code being
|
---|
1165 | removed by the linker.
|
---|
1166 | + Reverted the change in the name of the uxTaskNumber variable made in
|
---|
1167 | V7.1.0 as it broke the IAR plug-in.
|
---|
1168 |
|
---|
1169 |
|
---|
1170 | Demo miscellaneous / maintenance:
|
---|
1171 |
|
---|
1172 | + The command interpreter has now been formally released as FreeRTOS+CLI,
|
---|
1173 | and been moved out of the main FreeRTOS download, to instead be available
|
---|
1174 | from the FreeRTOS+ Ecosystem site http://www.FreeRTOS.org/plus.
|
---|
1175 | + flash_timer.c/h has been added to the list of standard demo tasks. This
|
---|
1176 | performs the same functionality as the flash.c tasks, but using software
|
---|
1177 | timers in place of tasks.
|
---|
1178 | + Upgraded the PIC32 demo as follows: Changes to how the library functions
|
---|
1179 | are called necessitated by the new compiler version, addition of MPLAB X
|
---|
1180 | project with PIC32MX360, PIC32MX460 and PIC32MX795 configurations,
|
---|
1181 | addition of simply blinky demo, updated FreeRTOSConfig.h to include more
|
---|
1182 | parameters, addition of hook function stubs.
|
---|
1183 | + The MSP430X IAR and CCS demos have been updated to ensure the power
|
---|
1184 | settings are correct for the configured CPU frequency.
|
---|
1185 | + Rowley CrossWorks projects have been updated to correct the "multiple
|
---|
1186 | definition of ..." warnings introduced when the toolchain was updated.
|
---|
1187 | + Updated various FreeRTOSConfig.h header files associated with projects
|
---|
1188 | that build with Eclipse to include a #error statement informing the user
|
---|
1189 | that the CreateProjectDirectoryStructure.bat batch file needs to be
|
---|
1190 | executed before the projects can be opened.
|
---|
1191 | + Renamed directories that included "CCS4" in their name to remove the '4'
|
---|
1192 | and instead just be "CCS". This is because the demo was updated and
|
---|
1193 | tested to also work with later Code Composer Studio versions.
|
---|
1194 | + Updated the TCP/IP periodic timer frequency in numerous uIP demos to be
|
---|
1195 | 50ms instead of 500ms.
|
---|
1196 |
|
---|
1197 | Changes between V7.0.2 and V7.1.0 released December 13 2011
|
---|
1198 |
|
---|
1199 | New ports:
|
---|
1200 |
|
---|
1201 | + Cortex-M4F IAR port.
|
---|
1202 | + Cortex-M4F Keil/RVDS port.
|
---|
1203 | + TriCore GCC port.
|
---|
1204 |
|
---|
1205 | New demos:
|
---|
1206 |
|
---|
1207 | + NXP LPC4350 using the Keil MDK, and demonstrated on a Hitex development
|
---|
1208 | board.
|
---|
1209 | + ST STM32F407 using the IAR Embedded Workbench for ARM, and demonstrated on
|
---|
1210 | the IAR STM32F407ZG-SK starter kit.
|
---|
1211 | + Infineon TriCore TC1782, using the GCC compiler, demonstrated on the
|
---|
1212 | TriBoard TC1782 evaluation board.
|
---|
1213 | + Renesas RX630, using the Renesas compiler and HEW, demonstrated on an
|
---|
1214 | RX630 RSK (Renesas Starter Kit).
|
---|
1215 |
|
---|
1216 | Miscellaneous / maintenance:
|
---|
1217 |
|
---|
1218 | + Removed all calls to printf() from the K60/IAR Kinetis demo so the project
|
---|
1219 | can execute stand alone - without being connected to the debugger.
|
---|
1220 | + Completed the command interpreter framework. Command handlers now receive
|
---|
1221 | the entire command string, giving them direct access to parameters.
|
---|
1222 | Utility functions are provided to check the number of parameters, and
|
---|
1223 | return parameter sub-strings.
|
---|
1224 | + The previously documented fix for the bug in xTaskResumeFromISR() that
|
---|
1225 | effected (only) ports supporting interrupt nesting has now been
|
---|
1226 | incorporated into the main release.
|
---|
1227 | + The portALIGNMENT_ASSERT_pxCurrentTCB() definition has been added to allow
|
---|
1228 | specific ports to skip the second stack alignment check when a task is
|
---|
1229 | created. This is because the second check is not appropriate for some
|
---|
1230 | ports - including the new TriCore port where the checked pointer does not
|
---|
1231 | actually point to a stack.
|
---|
1232 | + The portCLEAN_UP_TCB() macro has been added to allow port specific clean
|
---|
1233 | up when a task is deleted - again this is required by the TriCore port.
|
---|
1234 | + Various other minor changes to ensure warning free builds on a growing
|
---|
1235 | number of microcontroller and toolchain platforms. This includes a
|
---|
1236 | (benign) correction to the prototype of the
|
---|
1237 | vApplicationStackOverflowHook() definition found in lots of recent demos.
|
---|
1238 |
|
---|
1239 | Trace system:
|
---|
1240 |
|
---|
1241 | + The legacy trace mechanism has been completely removed - it has been
|
---|
1242 | obsolete for the years since the trace macros were introduced. The
|
---|
1243 | configuration constant configUSE_TRACE_FACILITY is now used to optionally
|
---|
1244 | include additional queue and task information. The additional information
|
---|
1245 | is intended to make the trace mechanism more generic, and allow the trace
|
---|
1246 | output to provide more information. When configUSE_TRACE_FACILITY is set
|
---|
1247 | to 1:
|
---|
1248 | - the queue structure includes an additional member to hold the queue
|
---|
1249 | type, which can be base, mutex, counting semaphore, binary semaphore
|
---|
1250 | or recursive mutex.
|
---|
1251 | - the queue structure includes an additional member to hold a queue
|
---|
1252 | number. A trace tool can set and query the queue number for its own
|
---|
1253 | purposes. The kernel does not use the queue number itself.
|
---|
1254 | - the TCB structure includes an additional member to hold a task number
|
---|
1255 | number. A trace tool can set and query the task number for its own
|
---|
1256 | purposes. The kernel does not use the task number itself.
|
---|
1257 | + Queues and all types of semaphores are now automatically allocated their
|
---|
1258 | type as they are created.
|
---|
1259 | + Added two new trace macros - traceTASK_PRIORITY_INHERIT() and
|
---|
1260 | traskTASK_PRIORITY_DISINHERIT().
|
---|
1261 | + Updated the traceQUEUE_CREATE_FAILED() macro to take a parameter that
|
---|
1262 | indicates the type of queue, mutex, or semaphore that failed to be
|
---|
1263 | created.
|
---|
1264 | + The position from which traceCREATE_MUTEX() is called has been moved from
|
---|
1265 | after the call to xQueueGenericSend() [within the same function] to before
|
---|
1266 | the call. This ensures the trace events occur in the correct order.
|
---|
1267 | + The value passed into tracePRIORITY_SET() has been corrected for the case
|
---|
1268 | where vTaskPrioritySet() is called with a null parameter.
|
---|
1269 |
|
---|
1270 | Changes between V7.0.1 and V7.0.2 released September 20 2011
|
---|
1271 |
|
---|
1272 | New ports:
|
---|
1273 |
|
---|
1274 | + The official FreeRTOS Renesas RX200 port and demo application have been
|
---|
1275 | incorporated into the main FreeRTOS zip file download.
|
---|
1276 | + The official FreeRTOS Renesas RL78 port and demo application have been
|
---|
1277 | incorporated into the main FreeRTOS zip file download.
|
---|
1278 | + The official FreeRTOS Freescale Kinetis K60 tower demo application has
|
---|
1279 | been incorporated into the main FreeRTOS zip file download. This includes
|
---|
1280 | an embedded web server example.
|
---|
1281 | + A new Microblaze V8 port layer has been created to replace the older, now
|
---|
1282 | deprecated, port layer. The V8 port supports V8.x of the Microblaze IP,
|
---|
1283 | including exceptions, caches, and the floating point unit. A new
|
---|
1284 | Microblaze demo has also been added to demonstrate the new Microblaze V8
|
---|
1285 | port layer. The demo application was created using V13.1 of the Xilinx
|
---|
1286 | EDK, and includes a basic embedded web server that uses lwIP V1.4.0.
|
---|
1287 | + The official FreeRTOS Fujitsu FM3 MB9A310 demo application has been
|
---|
1288 | incorporated into the main FreeRTOS zip file download. Projects are
|
---|
1289 | provided for both the IAR and Keil toolchains.
|
---|
1290 |
|
---|
1291 |
|
---|
1292 | API additions:
|
---|
1293 |
|
---|
1294 | + xTaskGetIdleTaskHandle() has been added.
|
---|
1295 | + xTaskGetTimerDaemonTaskHandle() has been added.
|
---|
1296 | + pcTaskGetTaskName() has been added.
|
---|
1297 | + vSemaphoreDelete() macro has been added to make it obvious how to delete
|
---|
1298 | a semaphore. In previous versions vQueueDelete() had to be used.
|
---|
1299 | + vTaskCleanUpResources() has been removed. It has been obsolete for a
|
---|
1300 | while.
|
---|
1301 | + portPOINTER_SIZE_TYPE has been introduced to prevent compiler warnings
|
---|
1302 | being generated when the size of a pointer does not match the size of
|
---|
1303 | the stack type. This will (has already) be used in new ports, but will
|
---|
1304 | not be retrofitted to existing ports until the existing port itself is
|
---|
1305 | updated.
|
---|
1306 |
|
---|
1307 | Other updates and news:
|
---|
1308 |
|
---|
1309 | + The core files have all been modified to tighten the coding standard even
|
---|
1310 | further. These are style, not functional changes.
|
---|
1311 | + All ARM7 port layers have been slightly modified to prevent erroneous
|
---|
1312 | assert() failures when tasks are created and configASSERT() is defined.
|
---|
1313 | + All ARM IAR projects have been updated to build with the latest V6.2.x
|
---|
1314 | versions of the IAR Embedded Workbench for ARM tools (EWARM). This was
|
---|
1315 | necessary due to a change in the way EWARM uses the CMSIS libraries.
|
---|
1316 | + The PIC32 port layer has been updated in preparation for V2 of the C32
|
---|
1317 | compiler.
|
---|
1318 | + The old Virtex-4 Microblaze demo has been marked as deprecated. Please
|
---|
1319 | use the brand new Spartan-6 port and demo in its place.
|
---|
1320 | + The bones of a new generic command interpreter is located in
|
---|
1321 | FreeRTOS/Demo/Common/Utils/CommandInterpreter.c. This is still a work in
|
---|
1322 | progress, and not documented. It is however already in use. It will be
|
---|
1323 | documented in full when the projects that are already using it are
|
---|
1324 | completed.
|
---|
1325 | + A couple of new standard demos have been included. First, a version of
|
---|
1326 | flop.c called sp_flop.c. This is similar to flop.c, but uses single
|
---|
1327 | precision floats in place of double precision doubles. This allows the
|
---|
1328 | for testing ports to processors that have only single precision floating
|
---|
1329 | point units, and revert to using emulated calculations whenever a double
|
---|
1330 | is used. Second, comtest_strings.c has been included to allow the test
|
---|
1331 | of UART drivers when an entire string is transmitted at once. The
|
---|
1332 | previous comtest.c only used single character transmission and reception.
|
---|
1333 | + lwIP V1.4.0 is now included in the FreeRTOS/Demo/Common directory, and
|
---|
1334 | used by a couple of new demos.
|
---|
1335 |
|
---|
1336 | Changes between V7.0.0 and V7.0.1 released May 13 2011
|
---|
1337 |
|
---|
1338 | + Added a Fujitsu FM3 demo application for both the IAR and Keil tool
|
---|
1339 | chains.
|
---|
1340 | + Added a SmartFusion demo application for all of the IAR, Keil and
|
---|
1341 | SoftConsole (GCC/Eclipse) tool chains.
|
---|
1342 | + Updated the RX600 port and demo applications to take into account the
|
---|
1343 | different semantics required when using the latest (V1.0.2.0) version of
|
---|
1344 | the Renesas compiler.
|
---|
1345 | + Modified the RX600 Ethernet driver slightly to make it more robust under
|
---|
1346 | heavy load, and updated the uIP handling task to make use of the FreeRTOS
|
---|
1347 | software timers.
|
---|
1348 | + Slightly changed the PIC32 port layer to move an ehb instruction in line
|
---|
1349 | with the recommendations of the MIPS core manual, and ensure 8 byte stack
|
---|
1350 | alignment is truly always obtained.
|
---|
1351 | + Changed the behaviour when tasks are suspended before the scheduler has
|
---|
1352 | been started. Before, there needed to be at least one task that was not
|
---|
1353 | in the suspended state. This is no longer the case.
|
---|
1354 |
|
---|
1355 | Changes between V6.1.1 and V7.0.0 released April 8 2011
|
---|
1356 |
|
---|
1357 | FreeRTOS V7.0.0 is backward compatible with FreeRTOS V6.x.x
|
---|
1358 |
|
---|
1359 | Main changes:
|
---|
1360 |
|
---|
1361 | + Introduced a new software timer implementation.
|
---|
1362 | + Introduced a new common demo application file to exercise the new timer
|
---|
1363 | implementation.
|
---|
1364 | + Updated the Win32/MSVC simulator project to include the new software timer
|
---|
1365 | demo tasks and software timer tick hook test. Much simpler software timer
|
---|
1366 | demonstrations are included in the demo projects for both of the new ports
|
---|
1367 | (MSP430X with CCS4 and STM32 with TrueStudio).
|
---|
1368 | + Various enhancements to the kernel implementation in tasks.c. These are
|
---|
1369 | transparent to users and do not effect the pre-existing API.
|
---|
1370 | + Added calls to configASSERT() within the kernel code. configASSERT() is
|
---|
1371 | functionally equivalent to the standard C assert() macro, but does not
|
---|
1372 | rely on the compiler providing assert.h.
|
---|
1373 |
|
---|
1374 | Other changes:
|
---|
1375 |
|
---|
1376 | + Updated the MSP430X IAR port and demo project to include support for the
|
---|
1377 | medium memory model.
|
---|
1378 | + Added a demo project for the MSP430X that targets the MSP430X Discovery
|
---|
1379 | board and uses the Code Composer Studio 4 tools. This demo includes use
|
---|
1380 | of the new software timer implementation.
|
---|
1381 | + Added an STM32F100RB demo project that targets the STM32 Discovery Board
|
---|
1382 | and uses the TrueStudio Eclipse based IDE from Atollic.
|
---|
1383 | + Removed some compiler warnings from the PSoC demo application.
|
---|
1384 | + Updated the PIC32 port layer to ensure the
|
---|
1385 | configMAX_SYSCALL_INTERRUPT_PRIORITY constant works as expected no matter
|
---|
1386 | what its value is (within the valid range set by the microcontroller
|
---|
1387 | kernel).
|
---|
1388 | + Updated the PIC24, dsPIC and PIC32 projects so they work with the latest
|
---|
1389 | MPLAB compiler versions from Microchip.
|
---|
1390 | + Various cosmetic changes to prepare for a standards compliance statement
|
---|
1391 | that will be published after the software release.
|
---|
1392 |
|
---|
1393 |
|
---|
1394 | Changes between V6.1.0 and V6.1.1 released January 14 2011
|
---|
1395 |
|
---|
1396 | + Added two new Windows simulator ports. One uses the free Microsoft Visual
|
---|
1397 | Studio 2010 express edition, and the other the free MingW/Eclipse
|
---|
1398 | environment. Demo projects are provided for both.
|
---|
1399 | + Added three demo projects for the PSoC 5 (CYAC5588). These are for the
|
---|
1400 | GCC, Keil, and RVDS build tools, and all use the PSoC Creator IDE.
|
---|
1401 | + Added a demo for the low power STM32L152 microcontroller using the IAR
|
---|
1402 | Embedded Workbench.
|
---|
1403 | + Added a new port for the MSP430X core using the IAR Embedded Workbench.
|
---|
1404 | + Updated all the RX62N demo projects that target the Renesas Demonstration
|
---|
1405 | Kit (RDK) to take into account the revered LED wiring on later hardware
|
---|
1406 | revisions, and the new J-Link debug interface DLL.
|
---|
1407 | + Updated all the RX62N demo projects so the IO page served by the example
|
---|
1408 | embedded web server works with all web browsers.
|
---|
1409 | + Updated the Red Suite projects to work with the up coming Red Suite
|
---|
1410 | release, and to use a more recent version of the CMSIS libraries.
|
---|
1411 | + Added the traceTAKE_MUTEX_RECURSIVE_FAILED() trace macro.
|
---|
1412 | + Removed the (pointless) parameter from the traceTASK_CREATE_FAILED()
|
---|
1413 | trace macro.
|
---|
1414 | + Introduced the portALT_GET_RUN_TIME_COUNTER_VALUE() macro to compliment
|
---|
1415 | the already existing portGET_RUN_TIME_COUNTER_VALUE(). This allows for
|
---|
1416 | more flexibility in how the time base for the run time statistics feature
|
---|
1417 | can be implemented.
|
---|
1418 | + Added a "cpsie i" instruction before the "svc 0" instruction used to start
|
---|
1419 | the scheduler in each of the Cortex M3 ports. This is to ensure that
|
---|
1420 | interrupts are globally enabled prior to the "svc 0" instruction being
|
---|
1421 | executed in cases where interrupts are left disabled by the C start up
|
---|
1422 | code.
|
---|
1423 | + Slight optimisation in the run time stats calculation.
|
---|
1424 |
|
---|
1425 | Changes between V6.0.5 and V6.1.0 released October 6 2010
|
---|
1426 |
|
---|
1427 | + Added xTaskGetTickCountFromISR() function.
|
---|
1428 | + Modified vTaskSuspend() to allow tasks that have just been created to be
|
---|
1429 | immediately suspended even when the kernel has not been started. This
|
---|
1430 | allows them to effectively start in the Suspended state - a feature that
|
---|
1431 | has been asked for on numerous occasions to assist with initialisation
|
---|
1432 | procedures.
|
---|
1433 | + Added ports for the Renesas RX62N using IAR, GCC and Renesas tool suites.
|
---|
1434 | + Added a STM32F103 demo application that uses the Rowley tools.
|
---|
1435 | + Under specific conditions xFreeBytesRemaining within heap_2.c could end up
|
---|
1436 | with an incorrect value. This has been fixed.
|
---|
1437 | + xTaskCreateGeneric() has a parameter that can be used to pass the handle
|
---|
1438 | of the task just created out to the calling task. The assignment to this
|
---|
1439 | parameter has been moved to ensure it is assigned prior to the newly
|
---|
1440 | created having any possibility of executing. This takes into account the
|
---|
1441 | case where the assignment is made to a global variable that is accessed by
|
---|
1442 | the newly created task.
|
---|
1443 | + Fixed some build time compiler warnings in various FreeTCPIP (based on
|
---|
1444 | uIP) files.
|
---|
1445 | + Fixed some build time compiler warnings in Demo/Common/Minimal/IntQueue.c.
|
---|
1446 |
|
---|
1447 | Changes between V6.0.4 and V6.0.5 released May 17 2010
|
---|
1448 |
|
---|
1449 | + Added port and demo application for the Cortus APS3 processor.
|
---|
1450 |
|
---|
1451 | Changes between V6.0.3 and V6.0.4 released March 14 2010
|
---|
1452 |
|
---|
1453 | + All the contributed files that were located in the Demo/Unsupported_Demos
|
---|
1454 | directory have been removed. These files are instead now available in the
|
---|
1455 | new Community Contributions section of the FreeRTOS website. See
|
---|
1456 | http://www.freertos.org/RTOS-contributed-ports.html
|
---|
1457 | + The project file located in the Demo/CORTEX_STM32F107_GCC_Rowley directory
|
---|
1458 | has been upgraded to use V2.x of the Rowley Crossworks STM32 support
|
---|
1459 | package.
|
---|
1460 | + An initial Energy Micro EFM32 demo has been included. This will be
|
---|
1461 | updated over the coming months to make better use of the low power modes
|
---|
1462 | the EFM32 provides.
|
---|
1463 |
|
---|
1464 | Changes between V6.0.2 and V6.0.3 released February 26 2010
|
---|
1465 |
|
---|
1466 | + SuperH SH7216 (SH2A-FPU) port and demo application added.
|
---|
1467 | + Slight modification made to the default implementation of
|
---|
1468 | pvPortMallocAligned() and vPortFreeAligned() macros so by default they
|
---|
1469 | just call pvPortMalloc() and vPortFree(). The macros are only needed to
|
---|
1470 | be defined when a memory protection unit (MPU) is being used - and then
|
---|
1471 | only depending on other configuration settings.
|
---|
1472 |
|
---|
1473 | Changes between V6.0.1 and V6.0.2 released January 9th 2010
|
---|
1474 |
|
---|
1475 | + Changed all GCC ARM 7 ports to use 0 as the SWI instruction parameter.
|
---|
1476 | Previously the parameter was blank and therefore only an implicit 0 but
|
---|
1477 | newer GCC releases do not permit this.
|
---|
1478 | + Updated IAR SAM7S and SAM7X ports to work with IAR V5.40.
|
---|
1479 | + Changed the stack alignment requirement for PIC32 from 4 bytes to 8 bytes.
|
---|
1480 | + Updated prvListTaskWithinSingleList() is it works on processors where the
|
---|
1481 | stack grows up from low memory.
|
---|
1482 | + Corrected some comments.
|
---|
1483 | + Updated the startup file for the RVDS LPC21xx demo.
|
---|
1484 |
|
---|
1485 | Changes between V6.0.0 and V6.0.1 released November 15th 2009
|
---|
1486 |
|
---|
1487 | + Altered pxPortInitialiseStack() for all Cortex-M3 ports to ensure the
|
---|
1488 | stack pointer is where the compiler expects it to be when a task first
|
---|
1489 | starts executing.
|
---|
1490 |
|
---|
1491 | The following minor changes only effect the Cortex-M3 MPU port:
|
---|
1492 |
|
---|
1493 | + portRESET_PRIVILEGE() assembly macro updated to include a clobber list.
|
---|
1494 | + Added prototypes for all the privileged function wrappers to ensure no
|
---|
1495 | compile time warnings are generated no matter what the warning level
|
---|
1496 | setting.
|
---|
1497 | + Corrected the name of portSVC_prvRaisePrivilege to
|
---|
1498 | portSVC_RAISE_PRIVILEGE.
|
---|
1499 | + Added conditional compilation into xTaskGenericCreate() to prevent some
|
---|
1500 | compilers issuing warnings when portPRIVILEGE_BIT is defined as zero.
|
---|
1501 |
|
---|
1502 |
|
---|
1503 | Changes between V5.4.2 and V6.0.0 released October 16th 2009
|
---|
1504 |
|
---|
1505 | FreeRTOS V6 is backward compatible with FreeRTOS V5.x.
|
---|
1506 |
|
---|
1507 | Main changes:
|
---|
1508 |
|
---|
1509 | + FreeRTOS V6 is the first version to include memory protection unit (MPU)
|
---|
1510 | support. Two ports now exist for the Cortex M3, the standard FreeRTOS
|
---|
1511 | which does not include MPU support, and FreeRTOS-MPU which does.
|
---|
1512 | + xTaskCreateRestricted() and vTaskAllocateMPURegions() API functions added
|
---|
1513 | in support of FreeRTOS-MPU.
|
---|
1514 | + Wording for the GPL exception has been (hopefully) clarified. Also the
|
---|
1515 | license.txt file included in the download has been fixed (the previous
|
---|
1516 | version contained some corruption).
|
---|
1517 |
|
---|
1518 | Other changes:
|
---|
1519 |
|
---|
1520 | + New API function xPortGetFreeHeapSize() added to heap_1.c and heap_2.c.
|
---|
1521 | + ARM7 GCC demo interrupt service routines wrappers have been modified to
|
---|
1522 | call the C portion using an __asm statement. This prevents the function
|
---|
1523 | call being inlined at higher optimisation levels.
|
---|
1524 | + ARM7 ports now automatically set the THUMB bit if necessary when
|
---|
1525 | setting up the initial stack of a task - removing the need for
|
---|
1526 | THUMB_INTERWORK to be defined. This also allows THUMB mode and ARM mode
|
---|
1527 | tasks to be mixed more easily.
|
---|
1528 | + All ARM7/9 ports now have portBYTE_ALIGNMENT set to 8 by default.
|
---|
1529 | + Various demo application project files have been updated to be up to date
|
---|
1530 | with the latest IDE versions.
|
---|
1531 | + The linker scripts used with command line GCC demos have been updated to
|
---|
1532 | include an eh_frame section to allow their use with the latest Yagarto
|
---|
1533 | release. Likewise the demo makefiles have been updated to include
|
---|
1534 | command line options to reduce or eliminate the eh_frame section all
|
---|
1535 | together.
|
---|
1536 | + The definition of portBYTE_ALIGNMENT_MASK has been moved out of the
|
---|
1537 | various memory allocation files and into the common portable.h header
|
---|
1538 | file.
|
---|
1539 | + Removed unnecessary use of portLONG, portSHORT and portCHAR.
|
---|
1540 | + Added LM3Sxxxx demo for Rowley CrossWorks.
|
---|
1541 | + Posix simulator has been upgraded - see the corresponding WEB page on the
|
---|
1542 | FreeRTOS.org site.
|
---|
1543 |
|
---|
1544 |
|
---|
1545 | Changes between V5.4.1 and V5.4.2 released August 9th 2009
|
---|
1546 |
|
---|
1547 | + Added a new port and demo app for the Altera Nios2 soft core.
|
---|
1548 | + Added LPC1768 demo for IAR.
|
---|
1549 | + Added a USB CDC demo to all LPC1768 demos (Code Red, CrossWorks and IAR).
|
---|
1550 | + Changed clock frequency of LPC1768 demos to 99MHz.
|
---|
1551 |
|
---|
1552 | Changes between V5.4.0 and V5.4.1 released July 25th 2009
|
---|
1553 |
|
---|
1554 | + New hook function added. vApplicationMallocFailedHook() is (optionally)
|
---|
1555 | called if pvPortMalloc() returns NULL.
|
---|
1556 | + Additional casting added to xTaskCheckForTimeOut(). This prevents
|
---|
1557 | problems that can arise should configUSE_16_BIT_TICKS be set to 1 on a
|
---|
1558 | 32 bit architecture (which would probably be a mistake, anyway).
|
---|
1559 | + Corrected the parameter passed to NVIC_SetPriority() to set the MAC
|
---|
1560 | interrupt priority in both LPC1768 demos.
|
---|
1561 | + Decreased the default setting of configMINIMAL_STACK_SIZE in the PIC32
|
---|
1562 | demo application to ensure the heap space was not completely consumed
|
---|
1563 | before the scheduler was started.
|
---|
1564 |
|
---|
1565 | Changes between V5.3.1 and V5.4.0 released July 13th 2009
|
---|
1566 |
|
---|
1567 | + Added Virtex5 / PPC440 port and demos.
|
---|
1568 | + Replaced the LPC1766 Red Suite demo with an LPC1768 Red Suite demo. The
|
---|
1569 | original demo was configured to use engineering samples of the CPU. The
|
---|
1570 | new demo has an improved Ethernet driver.
|
---|
1571 | + Added LPC1768 Rowley demo with zero copy Ethernet driver.
|
---|
1572 | + Reworked byte alignment code to ensure 8 byte alignment works correctly.
|
---|
1573 | + Set configUSE_16_BIT_TICKS to 0 in the PPC405 demo projects.
|
---|
1574 | + Changed the initial stack setup for the PPC405 to ensure the small data
|
---|
1575 | area pointers are setup correctly.
|
---|
1576 |
|
---|
1577 | Changes between V5.3.0 and V5.3.1 released June 21st 2009
|
---|
1578 |
|
---|
1579 | + Added ColdFire V1 MCF51CN128 port and WEB server demo.
|
---|
1580 | + Added STM32 Connectivity Line STM32107 Cortex M3 WEB server demo.
|
---|
1581 | + Changed the Cortex M3 port.c asm statements to __asm so it can be
|
---|
1582 | compiled using Rowley CrossWorks V2 in its default configuration.
|
---|
1583 | + Updated the Posix/Linux simulator contributed port.
|
---|
1584 |
|
---|
1585 | Changes between V5.2.0 and V5.3.0 released June 1st 2009
|
---|
1586 |
|
---|
1587 | Main changes:
|
---|
1588 |
|
---|
1589 | + Added new (optional) feature that gathers statistics on the amount of CPU
|
---|
1590 | time used by each task.
|
---|
1591 | + Added a new demo application for the Atmel AT91SAM3U Cortex-M3 based
|
---|
1592 | microcontroller.
|
---|
1593 | + Added a new demo application for the NXP LPC1766 Cortex-M3 based
|
---|
1594 | microcontroller.
|
---|
1595 | + Added a contributed port/demo that allows FreeRTOS to be 'simulated' in a
|
---|
1596 | Linux environment.
|
---|
1597 |
|
---|
1598 | Minor changes:
|
---|
1599 | + Updated the Stellaris uIP WEB server demos to include the new run time
|
---|
1600 | statistics gathering feature - and include a served WEB page that
|
---|
1601 | presents the information in a tabular format.
|
---|
1602 | + Added in the lwIP port layer for the Coldfire MCF52259.
|
---|
1603 | + Updated the CrossWorks LPC2368 WEB server to include an image in the
|
---|
1604 | served content.
|
---|
1605 | + Changed some of the timing in the initialisation of the LPC2368 MAC to
|
---|
1606 | permit its use on all part revisions.
|
---|
1607 | + Minor modifications to the core uIP code to remove some compiler warnings.
|
---|
1608 | + Added xTaskGetApplicationTaskTag() function and updated the OpenWatcom
|
---|
1609 | demo to make use of the new function.
|
---|
1610 | + Added contributed demos for AVR32 AP7000, STM32 Primer 2 and STM32 using
|
---|
1611 | Rowley Crossworks.
|
---|
1612 | + Heap_1.c and Heap_2.c used to define structures for the purpose of data
|
---|
1613 | alignment. These have been converted to unions to save a few bytes of
|
---|
1614 | RAM that would otherwise be wasted.
|
---|
1615 | + Remove the call to strncpy() used to copy the task name into the TCB when
|
---|
1616 | the maximum task name is configured to be 1 byte long.
|
---|
1617 |
|
---|
1618 | Changes between V5.1.2 and V5.2.0 released March 14th 2009
|
---|
1619 |
|
---|
1620 | + Optimised the queue send and receive functions (also used by semaphores).
|
---|
1621 | + Replaced the standard critical sections used to protect BIOS calls in the
|
---|
1622 | PC port to instead use scheduler locks. This is because the BIOS calls
|
---|
1623 | always return with interrupts enabled.
|
---|
1624 | + Corrected unclosed comments in boot.s.
|
---|
1625 |
|
---|
1626 | Changes between V5.1.1 and V5.1.2 released February 9th 2009
|
---|
1627 |
|
---|
1628 | + Added NEC V850ES port and demo.
|
---|
1629 | + Added NEC 78K0R port and demo.
|
---|
1630 | + Added MCF52259 port and demo.
|
---|
1631 | + Added the AT91SAM9XE port and demo.
|
---|
1632 | + Updated the MCF52233 FEC driver to work around a silicon bug that
|
---|
1633 | prevents the part auto negotiating some network parameters.
|
---|
1634 | + Minor modifications to the MCF52233 makefile to permit it to be used
|
---|
1635 | on Linux hosts.
|
---|
1636 | + Updated the STM32 primer files to allow them to be built with the latest
|
---|
1637 | version of the RIDE tools.
|
---|
1638 | + Updated the threads.js Java script used for kernel aware debugging in
|
---|
1639 | the Rowley CrossWorks IDE.
|
---|
1640 |
|
---|
1641 |
|
---|
1642 | Changes between V5.1.0 and V5.1.1 released November 20, 2008
|
---|
1643 |
|
---|
1644 | + Added Coldfire MCF52233 WEB server demo using GCC and Eclipse.
|
---|
1645 | + Added IAR MSP430 port and demo.
|
---|
1646 | + Corrected several compiler time issues that had crept in as tool versions
|
---|
1647 | change.
|
---|
1648 | + Included FreeRTOS-uIP - a faster uIP. This is not yet complete.
|
---|
1649 |
|
---|
1650 | Changes between V5.0.4 and V5.1.0 released October 24, 2008
|
---|
1651 |
|
---|
1652 | + Added a new port and demo application for the ColdFire V2 core using the
|
---|
1653 | CodeWarrior development tools.
|
---|
1654 | + Replaced the ARM7 demo that used the old (and now no longer supported)
|
---|
1655 | Keil compiler with a new port that uses the new Keil/RVDS combo.
|
---|
1656 | + Stack overflow checking now works for stacks that grow up from low
|
---|
1657 | memory (PIC24 and dsPIC).
|
---|
1658 | + BUG FIX - set the PIC32 definition of portSTACK_GROWTH to the correct
|
---|
1659 | value of -1.
|
---|
1660 | + MSP430 port layers have been updated to permit tasks to place the
|
---|
1661 | microcontroller into power down modes 1 to 3. The demo applications have
|
---|
1662 | likewise been updated to demonstrate the new feature.
|
---|
1663 | + Replaced the two separate MSP430/Rowley port layers with a single and more
|
---|
1664 | flexible version.
|
---|
1665 | + Added more contributed ports, including ports for NEC and SAM9
|
---|
1666 | microcontrollers.
|
---|
1667 | + Changed the linker script used in the LPC2368 Eclipse demo.
|
---|
1668 |
|
---|
1669 | Changes between V5.0.3 and V5.0.4 released September 22, 2008
|
---|
1670 |
|
---|
1671 | + Completely re-written port for ColdFire GCC.
|
---|
1672 | + Bug fix: All Cortex M3 ports have a minor change to the code that sets
|
---|
1673 | the pending interrupt.
|
---|
1674 | + Some header files require that FreeRTOS.h be included prior to their
|
---|
1675 | inclusion. #error message have been added to all such header file
|
---|
1676 | informing users to the cause of the compilation error should the headers
|
---|
1677 | not be included in the correct order.
|
---|
1678 |
|
---|
1679 | Changes between V5.0.2 and V5.0.3 released July 31, 2008
|
---|
1680 |
|
---|
1681 | Changes relating to the Cortex M3:
|
---|
1682 |
|
---|
1683 | + Added configMAX_SYSCALL_INTERRUPT_PRIORITY usage to all the Cortex M3
|
---|
1684 | ports and demos. See the port documentation pages on the FreeRTOS.org
|
---|
1685 | WEB site for full usage information.
|
---|
1686 | + Improved efficiency of Cortex M3 port even further.
|
---|
1687 | + Ensure the Cortex M3 port works no matter where the vector table is
|
---|
1688 | located.
|
---|
1689 | + Added the IntQTimer demo/test tasks to a demo project for each CM3 port
|
---|
1690 | (Keil, GCC and IAR) to test the new configMAX_SYSCALL_INTERRUPT_PRIORITY
|
---|
1691 | functionality.
|
---|
1692 | + Added the mainINCLUDE_WEB_SERVER definition to the LM3SXXXX IAR and Keil
|
---|
1693 | projects to allow the WEB server to be conditionally excluded from the
|
---|
1694 | build and therefore allow use of the KickStart (code size limited)
|
---|
1695 | compiler version.
|
---|
1696 |
|
---|
1697 | Other changes:
|
---|
1698 |
|
---|
1699 | + Moved the PIC24 and dsPIC versions of vPortYield() from the C file to
|
---|
1700 | an assembly file to allow use with all MPLAB compiler versions. This also
|
---|
1701 | allows the omit-frame-pointer optimisation to be turned off.
|
---|
1702 |
|
---|
1703 | Changes between V5.0.0 and V5.0.2 released May 30, 2008
|
---|
1704 |
|
---|
1705 | + Updated the PIC32 port to allow queue API calls to be used from
|
---|
1706 | interrupts above the kernel interrupt priority, and to allow full
|
---|
1707 | interrupt nesting. Task stack usages has also been reduced.
|
---|
1708 | + Added a new PowerPC port that demonstrates how the trace macros can be
|
---|
1709 | used to allow the use of a floating point co-processor. The
|
---|
1710 | traceTASK_SWITCHED_OUT() and traceTASK_SWITCHED_INT() macros are used to
|
---|
1711 | save and restore the floating point context respectively for those tasks
|
---|
1712 | that actually use floating point operations.
|
---|
1713 | + BUG FIX: The first PPC405 port contained a bug in that it did not leave
|
---|
1714 | adequate space above the stack for the backchain to be saved when a task
|
---|
1715 | started to execute for the first time.
|
---|
1716 | + Updated queue.c to add in the means to allow interrupt nesting and for
|
---|
1717 | queue API functions to be called from interrupts that have a priority
|
---|
1718 | above the kernel priority. This is only supported on PIC32 ports thus
|
---|
1719 | far.
|
---|
1720 | + Fixed the compiler warnings that were generated when the latest version
|
---|
1721 | of WinAVR was used.
|
---|
1722 | + Remove all inline usage of 'inline' from the core kernel code.
|
---|
1723 | + Added the queue registry feature. The queue registry is provided as a
|
---|
1724 | means for kernel aware debuggers to locate queue definitions. It has no
|
---|
1725 | purpose unless you are using a kernel aware debugger. The queue registry
|
---|
1726 | will only be used when configQUEUE_REGISTRY_SIZE is greater than zero.
|
---|
1727 | + Added the ST Cortex-M3 drivers into the Demo/Common/Drivers directory to
|
---|
1728 | prevent them from having to be included in multiple demos.
|
---|
1729 | + Added a Keil STM32 demo application.
|
---|
1730 | + Changed the blocktim.c test files as it is no longer legitimate for all
|
---|
1731 | ports to call queue API functions from within a critical section.
|
---|
1732 | + Added the IntQueue.c test file to test the calling of queue API functions
|
---|
1733 | from different interrupt priority levels, and test interrupt nesting.
|
---|
1734 |
|
---|
1735 | Changes between V5.0.0 and V5.0.1
|
---|
1736 |
|
---|
1737 | + V5.0.1 was a customer specific release.
|
---|
1738 |
|
---|
1739 | Changes between V4.8.0 and V5.0.0 released April 15, 2008
|
---|
1740 |
|
---|
1741 | *** VERY IMPORTANT INFORMATION ON UPGRADING TO FREERTOS.ORG V5.0.0 ***
|
---|
1742 |
|
---|
1743 | The parameters to the functions xQueueSendFromISR(), xQueueSendToFrontFromISR(),
|
---|
1744 | xQueueSendToBackFromISR() and xSemaphoreGiveFromISR() have changed. You must
|
---|
1745 | update all calls to these functions to use the new calling convention! Your
|
---|
1746 | compiler might not issue any type mismatch warnings!
|
---|
1747 |
|
---|
1748 |
|
---|
1749 | See http://www.FreeRTOS.org/upgrading.html for full information.
|
---|
1750 |
|
---|
1751 |
|
---|
1752 | Other changes:
|
---|
1753 |
|
---|
1754 | + Support added for the new Luminary Micro LM3S3768 and LM3S3748 Cortex-M3
|
---|
1755 | microcontrollers.
|
---|
1756 | + New task hook feature added.
|
---|
1757 | + PowerPC demo updated to use version 10.1 of the Xilinx EDK.
|
---|
1758 | + Efficiency gains within the PIC32 port layer.
|
---|
1759 |
|
---|
1760 | Changes between V4.7.2 and V4.8.0 released March 26 2008
|
---|
1761 |
|
---|
1762 | + Added a Virtex4 PowerPC 405 port and demo application.
|
---|
1763 | + Added optional stack overflow checking and new
|
---|
1764 | uxTaskGetStackHighWaterMark() function.
|
---|
1765 | + Added new xQueueIsQueueEmptyFromISR(), xQueueIsQueueFullFromISR() and
|
---|
1766 | uxQueueMessagesWaitingFromISR() API functions.
|
---|
1767 | + Efficiency improvements to the Cortex-M3 port layer. NOTE: This
|
---|
1768 | requires that an SVC handler be installed in the application.
|
---|
1769 | + Efficiency improvements to the queue send and receive functions.
|
---|
1770 | + Added new trace macros. These are application definable to provide
|
---|
1771 | a flexible trace facility.
|
---|
1772 | + Implemented the configKERNEL_INTERRUPT_PRIORITY within the Keil Cortex
|
---|
1773 | M3 port layer (bringing it up to the same standard as the IAR and GCC
|
---|
1774 | versions).
|
---|
1775 | + Ports that used the arm-stellaris-eabi-gcc tools have been converted to
|
---|
1776 | use the arm-non-eabi-gcc tools.
|
---|
1777 |
|
---|
1778 | Changes between V4.7.1 and V4.7.2 released February 21, 2008
|
---|
1779 |
|
---|
1780 | + Added Fujitsu MB91460 port and demo.
|
---|
1781 | + Added Fujitsu MB96340 port and demo.
|
---|
1782 | + Tidied up the capitalisation of include files to facilitate builds on
|
---|
1783 | Linux hosts.
|
---|
1784 | + Removed some redundant casting that was generating warnings - but was
|
---|
1785 | included to remove warnings on other compilers.
|
---|
1786 |
|
---|
1787 | Changes between V4.7.0 and V4.7.1 released February 3, 2008
|
---|
1788 |
|
---|
1789 | + Updated all IAR ARM projects to use V5.11 of the IAR Embedded Workbench
|
---|
1790 | for ARM.
|
---|
1791 | + Introduced recursive semaphore feature.
|
---|
1792 | + Updated LPC2368 demos to take into account silicon bugs in old chip
|
---|
1793 | revisions.
|
---|
1794 | + Updated STR9 uIP port to manually set the net mask and gateway addresses.
|
---|
1795 | + Updating demos to allow more to run with the co-operative scheduler.
|
---|
1796 | + Fixed co-operative scheduler behaviour upon the occurrence of a tick
|
---|
1797 | interrupt while the scheduler was suspended.
|
---|
1798 | + Updated documentation contained within semphr.h.
|
---|
1799 | + ARM7 GCC ports no longer use the IRQ attribute.
|
---|
1800 |
|
---|
1801 | Changes between V4.6.1 and V4.7.0 released December 6, 2007
|
---|
1802 |
|
---|
1803 | + Introduced the counting semaphore macros and demo source files. The
|
---|
1804 | Open Watcom PC project has been updated to include the new demo. See
|
---|
1805 | the online documentation for more information.
|
---|
1806 | + Introduced the 'alternative' queue handling API and demo source files.
|
---|
1807 | The Open Watcom PC project has been updated to include the new demo
|
---|
1808 | source files. See the online documentation for more information.
|
---|
1809 | + Added AT91SAM7X Eclipse demo project.
|
---|
1810 | + Added the STM32 primer demo project for the GCC compiler and Ride IDE.
|
---|
1811 | + Removed the .lock files that were mistakenly included in the V4.6.1
|
---|
1812 | eclipse workspaces.
|
---|
1813 |
|
---|
1814 | Changes between V4.6.0 and V4.6.1 released November 5 2007
|
---|
1815 |
|
---|
1816 | + Added support for the MIPS M4K based PIC32.
|
---|
1817 | + Added 'extern "C"' to all the header files to facilitate use with C++.
|
---|
1818 |
|
---|
1819 | Changes between V4.5.0 and V4.6.0 released October 28 2007
|
---|
1820 |
|
---|
1821 | + Changed the method used to force a context switch within an ISR for the
|
---|
1822 | ARM7/9 GCC ports only. The portENTER_SWITCHING_ISR() and
|
---|
1823 | portEXIT_SWITCHING_ISR() macros are no longer supported. This is to
|
---|
1824 | ensure correct behaviour no matter which GCC version is used, with or
|
---|
1825 | without the -fomit-frame-pointer option, and at all optimisation levels.
|
---|
1826 | + Corrected the prototype for xQueueGenericSend() within queue.h.
|
---|
1827 |
|
---|
1828 | Changes between V4.4.0 and V4.5.0 released September 17 2007
|
---|
1829 |
|
---|
1830 | + Added the xQueueSendToFront(), xQueueSendToBack() and xQueuePeek()
|
---|
1831 | functionality. These should now be used in preference to the old
|
---|
1832 | xQueueSend() function - which is maintained for backward compatibility.
|
---|
1833 | + Added Mutex functionality. The behaviour of mutexes is subtly different
|
---|
1834 | to the already existing binary semaphores as mutexes automatically
|
---|
1835 | include a priority inheritance mechanism.
|
---|
1836 | + Added the GenQTest.c and QPeek.c to test and demonstrate the behaviour
|
---|
1837 | of the new functionality.
|
---|
1838 | + Updated the LM3Sxxxx and PC ports to include the new GenQTest.c and
|
---|
1839 | QPeek.c files.
|
---|
1840 | + Updated the GCC port for the Cortex M3 to include the
|
---|
1841 | configKERNEL_INTERRUPT_PRIORITY functionality. This was previously only
|
---|
1842 | included in the IAR port.
|
---|
1843 | + Optimised the GCC and IAR port layer code - specifically the context
|
---|
1844 | switch code.
|
---|
1845 | + Consolidated the LM3Sxxxx EK demos for all development tools into a
|
---|
1846 | single project that automatically detects which version of the EK the
|
---|
1847 | application is executing on.
|
---|
1848 | + Added Eclipse support for LM3Sxxxx evaluation kits.
|
---|
1849 | + Added Eclipse support for the Keil LPC2368 evaluation kit.
|
---|
1850 | + Added the Demo/Drivers directory to hold code that is common to multiple
|
---|
1851 | demo application projects.
|
---|
1852 | + Included some minor bug fixes in the uIP 1.0 code.
|
---|
1853 | + Added an lwIP demo for the STR9 - thanks ST for assistance.
|
---|
1854 | + Updated the AVR32 port to ensure correct behaviour with full compiler
|
---|
1855 | optimisation.
|
---|
1856 | + Included binaries for OpenOCD FTDI and parallel port interfaces.
|
---|
1857 |
|
---|
1858 | Changes between V4.4.0 and V4.3.1 released July 31, 2007
|
---|
1859 |
|
---|
1860 | + Added AVR32 UC3B demo application.
|
---|
1861 | + Updated AVR32 UC3A port and demo applications.
|
---|
1862 | + Added IAR lwIP demo for AVR32 UC3A.
|
---|
1863 | + Updated listGET_OWNER_OF_NEXT_ENTRY() to assist compiler optimisation
|
---|
1864 | (thanks Niu Yong for making the suggestion).
|
---|
1865 | + Added xTaskGetSchedulerState() API function.
|
---|
1866 | + BUG FIX: Corrected behaviour when tasks that are blocked indefinitely
|
---|
1867 | have their block time adjusted (within xQueueSend() and xQueueReceive()),
|
---|
1868 | and are the subject of a call the vTaskResume() when they are not
|
---|
1869 | actually in the Suspended state (thanks Dan Searles for reporting the
|
---|
1870 | issues).
|
---|
1871 |
|
---|
1872 |
|
---|
1873 | Changes between V4.3.0 and V4.3.1 released June 11, 2007
|
---|
1874 |
|
---|
1875 | + Added STMicroelectronics STM32 Cortex-M3 demo application.
|
---|
1876 | + Updated ustdlib.c for the GCC LM3S6965 demo.
|
---|
1877 |
|
---|
1878 | Changes between V4.2.1 and V4.3.0 released June 5, 2007
|
---|
1879 |
|
---|
1880 | + Introduced configKERNEL_INTERRUPT_PRIORITY to the IAR Cortex-M3, PIC24
|
---|
1881 | and dsPIC ports. See the LM3S6965 and PIC24 demo application
|
---|
1882 | documentation pages for more information.
|
---|
1883 | + Updated the PIC24 and dsPIC demos to build with V3.0 of the PIC30 GCC
|
---|
1884 | tools, and changed the demo applications.
|
---|
1885 | + Added demos for the new Ethernet and CAN enabled Luminary Micro Stellaris
|
---|
1886 | microcontrollers.
|
---|
1887 | + Corrected bug in uIP the demos that prevented frames of approximately 1480
|
---|
1888 | bytes and over from being transmitted.
|
---|
1889 | + Included the LPC2368/uIP/Rowley demo into the main FreeRTOS.org
|
---|
1890 | download.
|
---|
1891 | + Update to WizC PIC18 port to permit its use with version 14 of the
|
---|
1892 | compiler. Thanks Marcel!
|
---|
1893 |
|
---|
1894 | Changes between V4.2.1 and V4.2.0 released April 2, 2007
|
---|
1895 |
|
---|
1896 | + Added AVR32 AT32UC3A ports for GCC and IAR.
|
---|
1897 | + Added -fomit-frame-pointer option to lwIP SAM7X demo makefile.
|
---|
1898 | + Moved location of call to LCD_Init() in STR9 demo to ensure it is only
|
---|
1899 | called after the scheduler has been started.
|
---|
1900 |
|
---|
1901 | Changes between V4.1.3 and V4.2.0 released February 8, 2007
|
---|
1902 |
|
---|
1903 | + Changes to both task.c and queue.c as a result of testing performed on
|
---|
1904 | the SafeRTOS code base.
|
---|
1905 | + Added Cortex-M3 LM3S811 demos for GCC and IAR tools.
|
---|
1906 |
|
---|
1907 | Changes between V4.1.2 and V4.1.3 released November 19, 2006
|
---|
1908 |
|
---|
1909 | + Added STR750 ARM7 port using the Raisonance RIDE/GCC tools.
|
---|
1910 | + Added -fomit-frame-pointer option to Rowley ARM7 demos as work around
|
---|
1911 | to GCC bug at some optimisation levels.
|
---|
1912 | + Altered the way the heap is defined in the LM3S811 Keil demo to prevent
|
---|
1913 | the RAM usage from counting toward the code size limit calculation.
|
---|
1914 | + CO-ROUTINE BUG FIX: Removed the call to prvIsQueueEmpty from within
|
---|
1915 | xQueueCRReceive as it exited with interrupts enabled. Thanks Paul Katz.
|
---|
1916 | + Tasks that block on events with a timeout of portMAX_DELAY are now
|
---|
1917 | blocked indefinitely if configINCLUDE_vTaskSuspend is defined.
|
---|
1918 | Previously portMAX_DELAY was just the longest block time possible. This
|
---|
1919 | is still the case if configINCLUDE_vTaskSuspend is not defined.
|
---|
1920 | + Minor changes to some demo application files.
|
---|
1921 |
|
---|
1922 | Changes between V4.1.1 and V4.1.2 released October 21, 2006
|
---|
1923 |
|
---|
1924 | + Added 16bit PIC ports and demos.
|
---|
1925 | + Added STR750 port and demo.
|
---|
1926 |
|
---|
1927 |
|
---|
1928 | Changes between V4.1.0 and V4.1.1 released September 24, 2006
|
---|
1929 |
|
---|
1930 | + Added the Luminary Micro Stellaris LM3S811 demo application.
|
---|
1931 |
|
---|
1932 | Changes between V4.0.5 and V4.1.0 released August 28, 2006
|
---|
1933 |
|
---|
1934 | + Prior to V4.1.0, under certain documented circumstances, it was possible
|
---|
1935 | for xQueueSend() and xQueueReceive() to return without having completed
|
---|
1936 | and without their block time expiring. The block time effectively
|
---|
1937 | stated a maximum block time, and the return value of the function needed
|
---|
1938 | to be checked to determine the reason for returning. This is no longer
|
---|
1939 | the case as the functions will only return once the block time has
|
---|
1940 | expired or they are able to complete their operation. It is therefore no
|
---|
1941 | longer necessary to wrap calls within loops.
|
---|
1942 | + Changed the critical section handling in the IAR AVR port to correct the
|
---|
1943 | behaviour when used with later compiler versions.
|
---|
1944 | + Added the LPC2138 CrossWorks demo into the zip file. Previously this was
|
---|
1945 | only available as a separate download.
|
---|
1946 | + Modified the AVR demo applications to demonstrate the use of co-routines.
|
---|
1947 |
|
---|
1948 | Changes between V4.0.4 and V4.0.5 released August 13, 2006
|
---|
1949 |
|
---|
1950 | + Introduced API function xTaskResumeFromISR(). Same functionality as
|
---|
1951 | xTaskResume(), but can be called from within an interrupt service routine.
|
---|
1952 | + Optimised vListInsert() in the case when the wake time is the maximum
|
---|
1953 | tick count value.
|
---|
1954 | + Bug fix: The 'value' of the event list item is updated when the priority
|
---|
1955 | of a task is changed. Previously only the priority of the TCB itself was
|
---|
1956 | changed.
|
---|
1957 | + vTaskPrioritySet() and vTaskResume() no longer use the event list item.
|
---|
1958 | This has not been necessary since V4.0.1 when the xMissedYield handling
|
---|
1959 | was added.
|
---|
1960 | + Lowered the PCLK setting on the ARM9 STR9 demo from 96MHz to 48MHz.
|
---|
1961 | + When ending the scheduler - do not try to attempt a context switch when
|
---|
1962 | deleting the current task.
|
---|
1963 | + SAM7X EMAC drivers: Corrected the Rx frame length mask when obtaining
|
---|
1964 | the length from the rx descriptor.
|
---|
1965 |
|
---|
1966 |
|
---|
1967 | Changes between V4.0.3 and V4.0.4 released June 22, 2006
|
---|
1968 |
|
---|
1969 | + Added a port and demo application for the STR9 ARM9 based processors from
|
---|
1970 | ST.
|
---|
1971 | + Slight optimisation to the vTaskPrioritySet() function.
|
---|
1972 | + Included the latest uIP version (1.0) in the demo/common/ethernet
|
---|
1973 | directory.
|
---|
1974 |
|
---|
1975 | Changes between V4.0.2 and V4.0.3 released June 7, 2006
|
---|
1976 |
|
---|
1977 | + Added a port and demo application for the Cortex-M3 target using the IAR
|
---|
1978 | development tools.
|
---|
1979 | + The ARM Cortex-m3 Rowley projects have been updated to use V1.6 of the
|
---|
1980 | CrossStudio tools.
|
---|
1981 | + The heap size defined for the lwIP Rowley demo has been reduced so that
|
---|
1982 | the project will link correctly when using the command line GCC tools
|
---|
1983 | also. The makefile has also been modified to allow debugging.
|
---|
1984 | + The lwIP Rowley demo not includes a 'kernel aware' debug window.
|
---|
1985 | + The uIP Rowley project has been updated to build with V1.6 of CrossWorks.
|
---|
1986 | + The second set of tasks in the blockQ demo were created the wrong way
|
---|
1987 | around (inconsistent to the description in the file). This has been
|
---|
1988 | corrected.
|
---|
1989 |
|
---|
1990 | Changes between V4.0.1 and V4.0.2 released May 28, 2006
|
---|
1991 |
|
---|
1992 | + Port and demo application added for the Tern Ethernet Engine controller.
|
---|
1993 | + Port and demo application added for MC9S12 using GCC, thanks to
|
---|
1994 | Jefferson "imajeff" Smith.
|
---|
1995 | + The function vTaskList() now suspends the scheduler rather than disabling
|
---|
1996 | interrupts during the creation of the task list.
|
---|
1997 | + Allow a task to delete itself by passing in its own handle. Previously
|
---|
1998 | this could only be done by passing in NULL.
|
---|
1999 | + Corrected the value passed to the WDG_PeriodValueConfig() library
|
---|
2000 | function in the STR71x demo.
|
---|
2001 | + The tick hook function is now called only within a tick isr. Previously
|
---|
2002 | it was also called when the tick function was called during the scheduler
|
---|
2003 | unlocking process.
|
---|
2004 | + The EMAC driver in the SAM7X lwIP demo has been made more robust as per
|
---|
2005 | the thread: http://sourceforge.net/forum/message.php?msg_id=3714405
|
---|
2006 | + In the PC ports: Add function prvSetTickFrequencyDefault() to set the
|
---|
2007 | DOS tick back to its proper value when the scheduler exits. Thanks
|
---|
2008 | Raynald!
|
---|
2009 | + In the Borland x86 ports there was a mistake in the portFIRST_CONTEXT
|
---|
2010 | macro where the BP register was not popped from the stack correctly. The
|
---|
2011 | BP value would never get used so this did not cause a problem, but it has
|
---|
2012 | been corrected all the same.
|
---|
2013 |
|
---|
2014 |
|
---|
2015 | Changes between V4.0.0 and V4.0.1 released April 7 2006
|
---|
2016 |
|
---|
2017 | + Improved the ARM CORTEX M3 ports so they now only have to service
|
---|
2018 | pendSV interrupts.
|
---|
2019 | + Added a Luminary Micro port and demo for use with Rowley CrossWorks.
|
---|
2020 | + Added the xMissedYield handling to tasks.c.
|
---|
2021 |
|
---|
2022 | Changes between V3.2.4 and V4.0.0
|
---|
2023 |
|
---|
2024 | Major changes:
|
---|
2025 |
|
---|
2026 | + Added new RTOS port for Luminary Micros ARM CORTEX M3 microcontrollers.
|
---|
2027 | + Added new co-routine functionality.
|
---|
2028 |
|
---|
2029 | Other kernel changes:
|
---|
2030 |
|
---|
2031 | + An optional tick hook call is now included in the tick function.
|
---|
2032 | + Introduced the xMiniListItem structure and removed the list pxHead
|
---|
2033 | member in order to reduce RAM usage.
|
---|
2034 | + Added the following definitions to the FreeRTOSConfig.h file included
|
---|
2035 | with every port:
|
---|
2036 | configUSE_TICK_HOOK
|
---|
2037 | configUSE_CO_ROUTINES
|
---|
2038 | configMAX_CO_ROUTINE_PRIORITIES
|
---|
2039 | + The volatile qualification has been changed on the list members to allow
|
---|
2040 | the task.c code to be tidied up a bit.
|
---|
2041 | + The scheduler can now be started even if no tasks have been created!
|
---|
2042 | This is to allow co-routines to run when there are no tasks.
|
---|
2043 | + A task being woken by an event will now preempt the currently running task
|
---|
2044 | even if its priority is only equal to the currently running task.
|
---|
2045 |
|
---|
2046 | Port and demo application changes:
|
---|
2047 |
|
---|
2048 | + Updated the WinAVR demo to compile with the latest version of WinAVR
|
---|
2049 | with no warnings generated.
|
---|
2050 | + Changed the WinAVR makefile to make chars signed - needed for the
|
---|
2051 | co-routine code if BaseType_t is set to char.
|
---|
2052 | + Added new demo application file crflash.c. This demonstrates co-routine
|
---|
2053 | functionality including passing data between co-routines.
|
---|
2054 | + Added new demo application file crhook.c. This demonstrates co-routine
|
---|
2055 | and tick hook functionality including passing data between and ISR and
|
---|
2056 | a co-routine.
|
---|
2057 | + Some NOP's were missing following stmdb{}^ instructions in various ARM7
|
---|
2058 | ports. These have been added.
|
---|
2059 | + Updated the Open Watcom PC demo project to include the crflash and crhook
|
---|
2060 | demo co-routines as an example of their use.
|
---|
2061 | + Updated the H8S demo to compile with the latest version of GCC.
|
---|
2062 | + Updated the SAM7X EMAC drivers to take into account the hardware errata
|
---|
2063 | regarding lost packets.
|
---|
2064 | + Changed the default MAC address used by some WEB server demos as the
|
---|
2065 | original addresses used was not liked by some routers.
|
---|
2066 | + Modified the SAM7X/IAR startup code slightly to prevent it hanging on
|
---|
2067 | some systems when the code is executed using a j-link debugger. The
|
---|
2068 | j-link macro file configures the PLL before the code executes so
|
---|
2069 | attempting to configure it again in the startup code was causing a
|
---|
2070 | problem for some user. Now a check is performed first to see if the
|
---|
2071 | PLL is already set up.
|
---|
2072 | + GCC port now contain all assembler code in a single asm block rather than
|
---|
2073 | individual blocks as before.
|
---|
2074 | + GCC LPC2000 code now explicitly uses R0 rather than letting the assembler
|
---|
2075 | choose the register to use as a temporary register during the context
|
---|
2076 | switch.
|
---|
2077 | + Added portNOP() macro.
|
---|
2078 | + The compare match load value on LPC2000 ports now has 1 added to correct
|
---|
2079 | the value used.
|
---|
2080 | + The minimal stack depth has been increased slightly on the WIZC PIC18
|
---|
2081 | port.
|
---|
2082 |
|
---|
2083 | Changes between V3.2.3 and V3.2.4
|
---|
2084 |
|
---|
2085 | + Modified the GCC ARM7 port layer to allow use with GCC V4.0.0 and above.
|
---|
2086 | Many thanks to Glen Biagioni for the provided update.
|
---|
2087 | + Added a new Microblaze port and demo application.
|
---|
2088 | + Modified the SAM7X EMAC demo to default to use the MII interface rather
|
---|
2089 | than the RMII interface.
|
---|
2090 | + Modified the startup sequence of the SAM7X demo slightly to allow the
|
---|
2091 | EMAC longer to auto negotiate.
|
---|
2092 |
|
---|
2093 | Changes between V3.2.2 and V3.2.3
|
---|
2094 |
|
---|
2095 | + Added MII interface support to the SAM7X EMAC peripheral driver.
|
---|
2096 | Previously versions worked with the RMII interface only.
|
---|
2097 | + Added command line GCC support to the SAM7X lwIP demo. Previously the
|
---|
2098 | project could only be built using the CrossWorks IDE. Modifications to
|
---|
2099 | this end include the addition of a standard makefile and linker script to
|
---|
2100 | the download, and some adjustments to the stacks allocated to each task.
|
---|
2101 | + Changed the page returned by the lwIP WEB server demo to display the
|
---|
2102 | task status table rather than the TCP/IP statistics.
|
---|
2103 | + Corrected the capitalisation of some header file includes and makefile
|
---|
2104 | dependencies to facilitate use on Linux host computers.
|
---|
2105 | + The various LPC2000 ports had a mistake in the timer setup where the
|
---|
2106 | prescale value was written to T0_PC instead of T0_PR. This would have
|
---|
2107 | no effect unless a prescale value was actually required. This has been
|
---|
2108 | corrected.
|
---|
2109 |
|
---|
2110 | Changes between V3.2.1 and V3.2.2 - Released 23 September, 2005
|
---|
2111 |
|
---|
2112 | + Added an IAR port for the Philips LPC2129
|
---|
2113 | + The Atmel ARM7 IAR demo project files are now saved in the IAR Embedded
|
---|
2114 | Workbench V4.30a format.
|
---|
2115 | + Updated the J-Link macro file included with the SAM7X uIP demo project
|
---|
2116 | to allow the demo board to be reset over the J-Link.
|
---|
2117 |
|
---|
2118 | Changes between V3.2.0 and V3.2.1 - Released 1 September, 2005
|
---|
2119 |
|
---|
2120 | + Added lwIP demo for AT91SAM7X using Rowley tools.
|
---|
2121 | + Added uIP demo for AT91SAM7X using IAR tools.
|
---|
2122 | + Added function xTaskGetCurrentTaskHandle().
|
---|
2123 | + Renamed events.h to mevents.h to prevent it conflicting with the events.h
|
---|
2124 | generated automatically by the HCS12 processor expert utility. events.h
|
---|
2125 | is only used by the PC demo application.
|
---|
2126 | + Both PIC18 ports now initialise the TBLPTRU to 0 as this is the value
|
---|
2127 | expected by the compiler, and the compilers do not write to this
|
---|
2128 | register.
|
---|
2129 | + The HCS12 banked model demo now creates the 'suicide' tasks immediately
|
---|
2130 | prior to starting the scheduler. These tasks should be the last tasks to
|
---|
2131 | get started in order for the test to function correctly.
|
---|
2132 |
|
---|
2133 | Changes between V3.1.1 and V3.2.0 - Released 29 June, 2005
|
---|
2134 |
|
---|
2135 | V3.2.0 introduces two new MSP430 ports and corrects a minor kernel
|
---|
2136 | issues. Thanks to Ares.qi for his input.
|
---|
2137 |
|
---|
2138 | + Added two MSP430 ports that use the Rowley CrossWorks development tools.
|
---|
2139 | One port just mirrors the existing GCC port. The other port was provided
|
---|
2140 | by Milos Prokic. Thanks!
|
---|
2141 | + V3.2.0 corrects the behavior when vTaskPrioritySet() or vTaskResume()
|
---|
2142 | are called while the scheduler is locked (by a call to
|
---|
2143 | vTaskSuspendAll()). When this is done the subject task now starts to
|
---|
2144 | execute immediately when the scheduler is unlocked if it has the highest
|
---|
2145 | priority that is ready to run. Previously there was a possibility that
|
---|
2146 | the task would not run until the next RTOS tick or call to portYIELD().
|
---|
2147 | + Another similar small correction ensures that in the case where more than
|
---|
2148 | one task is blocked on a semaphore or queue, the task with the highest
|
---|
2149 | priority is guaranteed to be unblocked first.
|
---|
2150 | + Added a couple of more test tasks to the PC demo which cover the points
|
---|
2151 | above.
|
---|
2152 |
|
---|
2153 | Changes between V3.1.0 and V3.1.1 - Released 21st June, 2005
|
---|
2154 |
|
---|
2155 | This release updates the HCS12 port. The common kernel code
|
---|
2156 | remains unchanged.
|
---|
2157 |
|
---|
2158 | + Updated the HCS12 port to support banking and introduced a demo
|
---|
2159 | application for the MC9S12DP256. The new demo application is
|
---|
2160 | located in the Demo/HCS12_CodeWarrior_banked directory.
|
---|
2161 | + The name of the directory containing the MC9S12F32 demo application
|
---|
2162 | has been changed to Demo/HCS12_CodeWarrior_small (as in 'small'
|
---|
2163 | memory model).
|
---|
2164 | + MC9S12F32 demo updated slightly to use the PLL. The CPU speed for the
|
---|
2165 | demo application is now 24MHz. Previously it was 8MHz.
|
---|
2166 | + The demo application file Demo/Common/Minimal/death.c has a slight
|
---|
2167 | alteration to prevent it using floating point variables.
|
---|
2168 |
|
---|
2169 |
|
---|
2170 | Changes between V3.0.0 and V3.1.0 - Released 11th June, 2005
|
---|
2171 |
|
---|
2172 | + Added new ports for ST Microsystems STR71x, and Freescale HCS12
|
---|
2173 | microcontrollers. Currently the HCS12 port is limited to the small
|
---|
2174 | memory model. Large memory models will be supported in the next
|
---|
2175 | release.
|
---|
2176 | + PIC18 wizC port updated. Thanks to Marcel van Lieshout for his
|
---|
2177 | continuing contribution.
|
---|
2178 | + The accuracy of the AVR port timer setup has been improved. Thanks to
|
---|
2179 | Thomas Krutmann for this contribution.
|
---|
2180 | + Added a new conditional compilation macro configIDLE_SHOULD_YIELD.
|
---|
2181 | See the WEB documentation for details.
|
---|
2182 | + Updated the CrossWorks uIP demo to build with V1.4 of CrossWorks.
|
---|
2183 | + Slight modification to the SAM7 release build configuration to correct
|
---|
2184 | an include path definition.
|
---|
2185 | + Updated the MPLAB PIC18 documentation to provide extra details on linker
|
---|
2186 | file configuration.
|
---|
2187 |
|
---|
2188 | Changes between V3.0.0 and V2.6.1 - Released 23rd April, 2005
|
---|
2189 |
|
---|
2190 | V3.0.0 includes many enhancements, so this history list is broken into
|
---|
2191 | subsections as follows:
|
---|
2192 |
|
---|
2193 | API changes
|
---|
2194 | New ports
|
---|
2195 | Directory name changes
|
---|
2196 | Kernel and miscellaneous changes changes
|
---|
2197 |
|
---|
2198 | - API changes
|
---|
2199 |
|
---|
2200 | + Each port now defines BaseType_t as the data type that is most
|
---|
2201 | efficient for that architecture. The type BaseType_t is used
|
---|
2202 | extensively in API calls necessitating the following changes to the
|
---|
2203 | FreeRTOS API function prototypes.
|
---|
2204 |
|
---|
2205 | See the "New for V3.0.0" section of the FreeRTOS online
|
---|
2206 | documentation for full details of API changes.
|
---|
2207 |
|
---|
2208 | - New ports
|
---|
2209 |
|
---|
2210 | + The AT91FR40008 ARM7 port contributed by John Feller is now included
|
---|
2211 | in the download (thanks John!).
|
---|
2212 | + The PIC18 port for the wizC/fedC compiler contributed by Marcel van
|
---|
2213 | Lieshout is now included in the download (thanks Marcel!).
|
---|
2214 | + The IAR port for the AVR microcontroller has been upgraded to V3.0.0
|
---|
2215 | and is now a supported port.
|
---|
2216 |
|
---|
2217 | - Directory name changes
|
---|
2218 |
|
---|
2219 | For consistency, and to allow integration of the new ports, the
|
---|
2220 | following directory names have been changed.
|
---|
2221 |
|
---|
2222 | + The source/portable/GCC/ARM7 directory has been renamed
|
---|
2223 | source/portable/GCC/ARM7_LPC2000 so it is compatible with the naming
|
---|
2224 | of other GCC ARM7 ports.
|
---|
2225 | + The Demo/PIC directory has been renamed Demo/PIC18_MPLAB to
|
---|
2226 | accommodate the wizC/fedC PIC port.
|
---|
2227 | + The demo applications for the two AVR ports no longer share the same
|
---|
2228 | directory. The WinAVR demo is in the Demo/AVR_ATMega323_WinAVR
|
---|
2229 | directory and the IAR port in the Demo/AVR_ATMega323_IAR directory.
|
---|
2230 |
|
---|
2231 |
|
---|
2232 | - Kernel and miscellaneous changes changes
|
---|
2233 |
|
---|
2234 | See the "New for V3.0.0" section of the FreeRTOS online
|
---|
2235 | documentation for more information.
|
---|
2236 |
|
---|
2237 | + Previously 'portmacro.h' contained some user editable definitions
|
---|
2238 | relating to the user application, and some fixed definitions relating
|
---|
2239 | specifically to the port being used. The application specific
|
---|
2240 | definitions have been removed from 'portmacro.h' and placed inside a
|
---|
2241 | new header file called 'FreeRTOSConfig.h'. 'portmacro.h' should now
|
---|
2242 | never be modified by the user. A 'FreeRTOSConfig.h' is now included
|
---|
2243 | in each of FreeRTOS/Demo subdirectories - as it's settings relate to
|
---|
2244 | the demo application rather than being specific to the port.
|
---|
2245 | + Introduced configUSE_IDLE_HOOK in idle task.
|
---|
2246 | + The idle task will yield when another idle priority task is ready to
|
---|
2247 | run. Previously the idle task would run to the end of its time slice
|
---|
2248 | regardless.
|
---|
2249 | + The idle task is now created when the scheduler is started. This
|
---|
2250 | requires less stack than the previous scheme where it was created upon
|
---|
2251 | creation of the first application task.
|
---|
2252 | + The function usPortCheckFreeStackSpace() has been renamed
|
---|
2253 | usTaskCheckFreeStackSpace() and moved from the portable layer to
|
---|
2254 | tasks.c.
|
---|
2255 | + Corrected spelling of portMINMAL_STACK_SIZE to portMINIMAL_STACK_SIZE.
|
---|
2256 | + The portheap.c file included with the AVR port has been deleted. The
|
---|
2257 | AVR demo now uses the standard heap1 sample memory allocator.
|
---|
2258 | + The GCC AVR port is now build using the standard make utility. The
|
---|
2259 | batch files used previously have been deleted. This means a recent
|
---|
2260 | version of WinAVR is required in order to create a binary suitable for
|
---|
2261 | source level debugging.
|
---|
2262 | + vTaskStartScheduler() no longer takes the configUSE_PREEMPTION
|
---|
2263 | constant as a parameter. Instead the constant is used directly within
|
---|
2264 | tasks.c and no parameter is required.
|
---|
2265 | + The header file 'FreeRTOS.h' has been created and is used to include
|
---|
2266 | 'projdefs.h', 'FreeRTOSConfig.h' and 'portable.h' in the necessary
|
---|
2267 | order. FreeRTOS.h can now be included in place of these other
|
---|
2268 | headers.
|
---|
2269 | + The header file 'errors.h' has been deleted. The definitions it
|
---|
2270 | contained are now located within 'projdefs.h'.
|
---|
2271 | + pvPortMalloc() now takes a size_t parameter as per the ANSI malloc().
|
---|
2272 | Previously an unsigned short was used.
|
---|
2273 | + When resuming the scheduler a yield is performed if either a tick has
|
---|
2274 | been missed, or a task is moved from the pending ready list into a
|
---|
2275 | ready list. Previously a yield was not performed on this second
|
---|
2276 | condition.
|
---|
2277 | + In heap1.c an overflow check has been added to ensure the next free
|
---|
2278 | byte variable does not wrap around.
|
---|
2279 | + Introduced the portTASK_FUNCTION() and portTASK_FUNCTION_PROTO()
|
---|
2280 | macros.
|
---|
2281 | + The MPLAB PIC port now saved the TABLAT register in interrupt service
|
---|
2282 | routines.
|
---|
2283 |
|
---|
2284 | Changes between V2.6.0 and V2.6.1 - Released Feb 22, 2005
|
---|
2285 |
|
---|
2286 | This version adds support for the H8 processor.
|
---|
2287 |
|
---|
2288 | Other changes:
|
---|
2289 |
|
---|
2290 | + tskMAX_TASK_NAME_LEN removed from the task.h header and added to each
|
---|
2291 | individual portmacro.h file as portMAX_TASK_NAME_LEN. This allows RAM
|
---|
2292 | limited ports to allocate fewer characters to the task name.
|
---|
2293 | + AVR port - Replaced the inb() and outb() functions with direct memory
|
---|
2294 | access. This allows the port to be built with the 20050414 build of
|
---|
2295 | WinAVR.
|
---|
2296 | + GCC LPC2106 port - removed the 'static' from the definition of
|
---|
2297 | vNonPreemptiveTick() to allow the demo to link when using the cooperative
|
---|
2298 | scheduler.
|
---|
2299 | + GCC LPC2106 port - Corrected the optimisation options in the batch files
|
---|
2300 | ROM_THUMB.bat, RAM_THUMB.bat, ROM_ARM.bat and RAM_ARM.bat. The lower case
|
---|
2301 | -o is replaced by an uppercase -O.
|
---|
2302 | + Tasks.c - The strcpy call has been removed when copying across the task
|
---|
2303 | name into the TCB.
|
---|
2304 | + Updated the trace visualisation to always be 4 byte aligned so it can be
|
---|
2305 | used on ARM architectures.
|
---|
2306 | + There are now two tracecon executables (that convert the trace file binary
|
---|
2307 | into an ASCII file). One for big endian targets and one for little endian
|
---|
2308 | targets.
|
---|
2309 | + Added ucTasksDeleted variable to prevent vTaskSuspendAll() being called
|
---|
2310 | too often in the idle task.
|
---|
2311 | + SAM7 USB driver - Replaced the duplicated RX_DATA_BK0 in the interrupt
|
---|
2312 | mask with the RX_DATA_BK1.
|
---|
2313 |
|
---|
2314 |
|
---|
2315 | Changes between V2.5.5 and V2.6.0 - Released January 16, 2005
|
---|
2316 |
|
---|
2317 | + Added the API function vTaskDelayUntil(). The demo app file
|
---|
2318 | Demo/Common/Minimal/flash.c has been updated to demonstrate its use.
|
---|
2319 | + Added INCLUDE_vTaskDelay conditional compilation.
|
---|
2320 | + Changed the name of the Demo/ARM7_AtmelSAM7S64_IAR directory to
|
---|
2321 | Demo/ARM7_AT91SAM7S64_IAR for consistency.
|
---|
2322 | + Modified the AT91SAM7S USB driver to allow descriptors that have
|
---|
2323 | a length that is an exact multiple of the FIFO to be transmitted.
|
---|
2324 |
|
---|
2325 | Changes between V2.5.4 and V2.5.5 - Released January 3, 2005
|
---|
2326 |
|
---|
2327 | This version adds support for the Atmel SAM7 ARM7 microcontrollers
|
---|
2328 | along with the IAR development tools.
|
---|
2329 |
|
---|
2330 | Other changes:
|
---|
2331 |
|
---|
2332 | + Renamed the Demo/ARM7 directory to Demo/ARM7_LPC2106_GCC.
|
---|
2333 | + Renamed the Demo/ARM7_Keil directory to Demo/ARM7_LPC2129_Keil.
|
---|
2334 | + Modified the Philips ARM7 serial interrupt service routines to only
|
---|
2335 | process one interrupt per call. This seems to enable the ISR to
|
---|
2336 | operate more quickly.
|
---|
2337 | + Removed the 'far' keyword from the Open Watcom portable layer source
|
---|
2338 | files. This allows their use with V1.3 of Open Watcom.
|
---|
2339 | + Minor modifications to the SDCC build files to allow their use under
|
---|
2340 | Linux. Thanks to Frieder Ferlemann for this contribution.
|
---|
2341 | + Small change to sTaskCreate() to allow a context switch even when
|
---|
2342 | pxCreatedTask is NULL. Thanks to Kamil for this contribution.
|
---|
2343 | + inline keyword removed from vTaskSwitchContext() and VTaskIncrementTick()
|
---|
2344 | definitions.
|
---|
2345 |
|
---|
2346 | Changes between V2.5.3 and V2.5.4 - Released Dec 1, 2004
|
---|
2347 |
|
---|
2348 | This is an important maintenance release.
|
---|
2349 |
|
---|
2350 | The function cTaskResumeAll() has been modified so it can be used safely
|
---|
2351 | prior to the kernel being initialised. This was an issue as
|
---|
2352 | cTaskResumeAll() is called from pvPortMalloc(). Thanks to Daniel Braun
|
---|
2353 | for highlighting this issue.
|
---|
2354 |
|
---|
2355 | Changes between V2.5.2 and V2.5.3 - Released Nov 2, 2004
|
---|
2356 |
|
---|
2357 | The critical section handling functions have been changed for the GCC ARM7
|
---|
2358 | port. Some optimisation levels use the stack differently to others. This
|
---|
2359 | means the interrupt flags cannot always be stored on the stack and are
|
---|
2360 | instead now stored in a variable, which is then saved as part of the
|
---|
2361 | tasks context. This allows the GCC ARM7 port to be used at all
|
---|
2362 | optimisation levels - including -Os.
|
---|
2363 |
|
---|
2364 | Other minor changes:
|
---|
2365 |
|
---|
2366 | + MSP430 definition of usCriticalNesting now uses the volatile qualifier.
|
---|
2367 | This is probably not required but added just in case.
|
---|
2368 |
|
---|
2369 | Changes between V2.5.1 and V2.5.2 - Released Oct 26, 2004
|
---|
2370 |
|
---|
2371 | + Added the Keil ARM7 port.
|
---|
2372 | + Slight modification to comtest.c to make the delay periods more random.
|
---|
2373 | This creates a better test condition.
|
---|
2374 |
|
---|
2375 | Changes between V2.5.0 and V2.5.1 - Released Oct 9, 2004
|
---|
2376 |
|
---|
2377 | + Added the MSP430 port.
|
---|
2378 | + Extra comments added to the GCC ARM7 port.c and portISR.c files.
|
---|
2379 | + The memory pool allocated within heap_1.c has been placed within a
|
---|
2380 | structure to ensure correct memory alignment on 32bit systems.
|
---|
2381 | + Within the GCC ARM7 serial drivers an extra check is made to ensure
|
---|
2382 | the post to the queue was successful if then attempting immediately
|
---|
2383 | retrieve the posted character.
|
---|
2384 | + Changed the name of the constant portTICKS_PER_MS to portTICK_PERIOD_MS
|
---|
2385 | as the old name was misleading.
|
---|
2386 |
|
---|
2387 |
|
---|
2388 | Changes between V2.4.2 and V2.5.0 - Released Aug 12, 2004
|
---|
2389 |
|
---|
2390 | The RTOS source code download now includes three separate memory allocation
|
---|
2391 | schemes - so you can choose the most appropriate for your application.
|
---|
2392 | These are found in the Source/Portable/MemMang directory. The demo
|
---|
2393 | application projects have also been updated to demonstrate the new schemes.
|
---|
2394 | See the "Memory Management" page of the API documentation for more details.
|
---|
2395 |
|
---|
2396 | + Added heap_1.c, heap_2.c and heap_3.c in the Source/Portable/MemMang
|
---|
2397 | directory.
|
---|
2398 | + Replaced the portheap.c files for each demo application with one of the
|
---|
2399 | new memory allocation files.
|
---|
2400 | + Updated the portmacro.h file for each demo application to include the
|
---|
2401 | constants required for the new memory allocators: portTOTAL_HEAP_SIZE and
|
---|
2402 | portBYTE_ALIGNMENT.
|
---|
2403 | + Added a new test to the ARM7 demo application that tests the operation
|
---|
2404 | of the heap_2 memory allocator.
|
---|
2405 |
|
---|
2406 |
|
---|
2407 | Changes between V2.4.1 and V2.4.2 - Released July 14, 2004
|
---|
2408 |
|
---|
2409 | + The ARM7 port now supports THUMB mode.
|
---|
2410 | + Modification to the ARM7 demo application serial port driver.
|
---|
2411 |
|
---|
2412 | Changes between V2.4.0 and V2.4.1 - Released July 2, 2004
|
---|
2413 |
|
---|
2414 | + Rationalised the ARM7 port version of portEXIT_CRITICAL() -
|
---|
2415 | improvements provided by Bill Knight.
|
---|
2416 | + Made demo serial driver more complete and robust.
|
---|
2417 |
|
---|
2418 |
|
---|
2419 | Changes between V2.4.0 and V2.3.1 - Released June 30, 2004
|
---|
2420 |
|
---|
2421 | + Added the first ARM7 port - thanks to Bill Knight for the assistance
|
---|
2422 | provided.
|
---|
2423 | + Added extra files to the Demo/Common/Minimal directory. These are
|
---|
2424 | equivalent to their Demo/Common/Full counterparts but with the
|
---|
2425 | calls to the functions defined in print.c removed.
|
---|
2426 | + Added TABLAT to the list of registers saved as part of a PIC18 context.
|
---|
2427 |
|
---|
2428 | Changes between V2.3.0 and V2.3.1 - Released June 25, 2004
|
---|
2429 |
|
---|
2430 | + Changed the way the vector table is defined to be more portable.
|
---|
2431 | + Corrected the definitions of SPH and SPL in portmacro.s90.
|
---|
2432 | The previous definitions prevented V2.3.0 operating if the iom323.h
|
---|
2433 | header file was included in portmacro.s90.
|
---|
2434 |
|
---|
2435 | Changes between V2.2.0 and V2.3.0 - Released June 19, 2004
|
---|
2436 |
|
---|
2437 | + Added an AVR port that uses the IAR compiler.
|
---|
2438 | + Explicit use of 'signed' qualifier on plain char types.
|
---|
2439 | + Modified the Open Watcom project files to use 'signed' as the
|
---|
2440 | default char type.
|
---|
2441 | + Changed odd calculation of initial pxTopOfStack value when
|
---|
2442 | portSTACK_GROWTH < 0.
|
---|
2443 | + Added inline qualifier to context switch functions within task.c.
|
---|
2444 | Ports that do not support the (non ANSI) inline keyword have the
|
---|
2445 | inline #define'd away in their respective portmacro.h files.
|
---|
2446 |
|
---|
2447 | Changes between V2.1.1 and V2.2.0 - Released May 18, 2004
|
---|
2448 |
|
---|
2449 | + Added Cygnal 8051 port.
|
---|
2450 | + PCLATU and PCLATH are now saved as part of the PIC18 context. This
|
---|
2451 | allows function pointers to be used within tasks. Thanks to Javier
|
---|
2452 | Espeche for the enhancement.
|
---|
2453 | + Minor changes to demo application files to reduce stack usage.
|
---|
2454 | + Minor changes to prevent compiler warnings when compiling the new port.
|
---|
2455 |
|
---|
2456 | Changes between V2.1.0 and V2.1.1 - Released March 12, 2004
|
---|
2457 |
|
---|
2458 | + Bug fix - pxCurrentTCB is now initialised before the call to
|
---|
2459 | prvInitialiseTaskLists(). Previously pxCurrentTCB could be accessed
|
---|
2460 | while null during the initialisation sequence. Thanks to Giuseppe
|
---|
2461 | Franco for the correction.
|
---|
2462 |
|
---|
2463 | Changes between V2.0.0 and V2.1.0 - Released Feb 29, 2004
|
---|
2464 |
|
---|
2465 | V2.1.0 has significant reworks that greatly reduce the amount of time
|
---|
2466 | the kernel has interrupts disabled. The first section of modifications
|
---|
2467 | listed here must be taken into account by users. The second section
|
---|
2468 | are related to the kernel implementation and as such are transparent.
|
---|
2469 |
|
---|
2470 | Section1 :
|
---|
2471 |
|
---|
2472 | + The typedef TickType_t has been introduced. All delay times should
|
---|
2473 | now use a variable of type TickType_t in place of the unsigned long's
|
---|
2474 | used previously. API function prototypes have been updated
|
---|
2475 | appropriately.
|
---|
2476 | + The configuration macro USE_16_BIT_TICKS has been introduced. If set
|
---|
2477 | to 1 TickType_t is defined as an unsigned short. If set to 0
|
---|
2478 | TickType_t is defined as an unsigned long. See the configuration
|
---|
2479 | section of the API documentation for more details.
|
---|
2480 | + The configuration macro INCLUDE_vTaskSuspendAll is now obsolete.
|
---|
2481 | + vTaskResumeAll() has been renamed cTaskResumeAll() as it now returns a
|
---|
2482 | value (see the API documentation).
|
---|
2483 | + ulTaskGetTickCount() has been renamed xTaskGetTickCount() as the type
|
---|
2484 | it returns now depends on the USE_16_BIT_TICKS definition.
|
---|
2485 | + cQueueReceive() must now >never< be used from within an ISR. Use the new
|
---|
2486 | cQueueReceiveFromISR() function instead.
|
---|
2487 |
|
---|
2488 | Section 2:
|
---|
2489 |
|
---|
2490 | + A mechanism has been introduced that allows a queue to be accessed by
|
---|
2491 | a task and ISR simultaneously.
|
---|
2492 | + A "pending ready" queue has been introduced that enables interrupts to
|
---|
2493 | be processed when the scheduler is suspended.
|
---|
2494 | + The list implementation has been improved to provide faster item
|
---|
2495 | removal.
|
---|
2496 | + The scheduler now makes use of the scheduler suspend mechanism in places
|
---|
2497 | where previously interrupts were disabled.
|
---|
2498 |
|
---|
2499 | Changes between V1.2.6 and V2.0.0 - Released Jan 31, 2004
|
---|
2500 |
|
---|
2501 | + Introduced new API functions:
|
---|
2502 | vTaskPriorityGet ()
|
---|
2503 | vTaskPrioritySet ()
|
---|
2504 | vTaskSuspend ()
|
---|
2505 | vTaskResume ()
|
---|
2506 | vTaskSuspendAll ()
|
---|
2507 | vTaskResumeAll ()
|
---|
2508 | + Added conditional compilation options that allow the components of the
|
---|
2509 | kernel that are unused by an application to be excluded from the build.
|
---|
2510 | See the Configuration section on the WEB site for more information (on
|
---|
2511 | the API pages). The macros have been added to each portmacro.h file (
|
---|
2512 | sometimes called prtmacro.h).
|
---|
2513 | + Rearranged tasks.c.
|
---|
2514 | + Added demo application file dynamic.c.
|
---|
2515 | + Updated the PC demo application to make use of dynamic.c.
|
---|
2516 | + Updated the documentation contained in the kernel header files.
|
---|
2517 | + Creating a task now causes a context switch if the task being created
|
---|
2518 | has a higher priority than the calling task - assuming the kernel is
|
---|
2519 | running.
|
---|
2520 | + vTaskDelete() now only causes a context switch if the calling task is
|
---|
2521 | the task being deleted.
|
---|
2522 |
|
---|
2523 | Changes between V1.2.5 and V1.2.6 - Released December 31, 2003
|
---|
2524 |
|
---|
2525 | Barring the change to the interrupt vector (PIC port) these are minor
|
---|
2526 | enhancements.
|
---|
2527 |
|
---|
2528 | + The interrupt vector used for the PIC master ISR has been changed from
|
---|
2529 | 0x18 to 0x08 - where it should have always been. The incorrect address
|
---|
2530 | still works but probably executes a number of NOP's before getting to the
|
---|
2531 | ISR.
|
---|
2532 | + Changed the baud rate used by the AVR demo application to 38400. This
|
---|
2533 | has an error percentage of less than one percent with an 8MHz clock.
|
---|
2534 | + Raised the priority of the Rx task in demo\full\comtest.c. This only
|
---|
2535 | affects the Flashlite and PC ports. This was done to prevent the Rx
|
---|
2536 | buffer becoming full.
|
---|
2537 | + Reverted the Flashlite COM port driver back so it does not use the DMA.
|
---|
2538 | The DMA appears to miss characters under stress. The Borland Flashlite
|
---|
2539 | port was also calculating a register value incorrectly resulting in the
|
---|
2540 | wrong DMA source address being used. The same code worked fine when
|
---|
2541 | compiling with Open Watcom. Other minor enhancements were made to the
|
---|
2542 | interrupt handling.
|
---|
2543 | + Modified the PIC serial Rx ISR to check for and clear overrun errors.
|
---|
2544 | Overrun errors seem to prevent any further characters being received.
|
---|
2545 | + The PIC demo projects now have some optimisation switched on.
|
---|
2546 |
|
---|
2547 |
|
---|
2548 | Changes between V1.2.4 and V1.2.5
|
---|
2549 |
|
---|
2550 | Small fix made to the PIC specific port.c file described below.
|
---|
2551 |
|
---|
2552 | + Introduced portGLOBAL_INTERRUPT_FLAG definition to test the global
|
---|
2553 | interrupt flag setting. Using the two bits defined within
|
---|
2554 | portINITAL_INTERRUPT_STATE was causing the w register to get clobbered
|
---|
2555 | before the test was performed.
|
---|
2556 |
|
---|
2557 | Changes between V1.2.3 and V1.2.4
|
---|
2558 |
|
---|
2559 | V1.2.4 contains a release version of the PIC18 port.
|
---|
2560 | An optional exception has been included with the GPL. See the licensing
|
---|
2561 | section of www.FreeRTOS.org for details.
|
---|
2562 |
|
---|
2563 | + The function xPortInitMinimal() has been renamed to
|
---|
2564 | xSerialPortInitMinimal() and the function xPortInit() has been renamed
|
---|
2565 | to xSerialPortInit().
|
---|
2566 | + The function sSerialPutChar() has been renamed cSerialPutChar() and
|
---|
2567 | the function return type chaned to portCHAR.
|
---|
2568 | + The integer and flop tasks now include calls to tskYIELD(), allowing
|
---|
2569 | them to be used with the cooperative scheduler.
|
---|
2570 | + All the demo applications now use the integer and comtest tasks when the
|
---|
2571 | cooperative scheduler is being used. Previously they were only used with
|
---|
2572 | the preemptive scheduler.
|
---|
2573 | + Minor changes made to operation of minimal versions of comtest.c and
|
---|
2574 | integer.c.
|
---|
2575 | + The ATMega port definition of portCPU_CLOSK_HZ definition changed to
|
---|
2576 | 8MHz base 10, previously it base 16.
|
---|
2577 |
|
---|
2578 |
|
---|
2579 |
|
---|
2580 | Changes between V1.2.2a and V1.2.3
|
---|
2581 |
|
---|
2582 | The only change of any significance is to the license, which has changed
|
---|
2583 | from the Open Software License to the GNU GPL.
|
---|
2584 |
|
---|
2585 | The zip file also contains a pre-release version of the PIC18 port. This
|
---|
2586 | has not yet completed testing and as such does not constitute part of the
|
---|
2587 | V1.2.3 release. It is still however covered by the GNU GPL.
|
---|
2588 |
|
---|
2589 | There are minor source code changes to accommodate the PIC C compiler.
|
---|
2590 | These mainly involve more explicit casting.
|
---|
2591 |
|
---|
2592 | + sTaskCreate() has been modified slightly to make use of the
|
---|
2593 | portSTACK_GROWTH macro. This is required for the PIC port where the
|
---|
2594 | stack grows in the opposite direction to the other existing ports.
|
---|
2595 | + prvCheckTasksWaitingTermination() has been modified slightly to bring
|
---|
2596 | the decrementing of usCurrentNumberOfTasks within the critical section,
|
---|
2597 | where it should have been since the creation of an eight bit port.
|
---|
2598 |
|
---|
2599 | Changes between V1.2.2 and V1.2.2a
|
---|
2600 |
|
---|
2601 | The makefile and buildcoff.bat files included with the AVR demo application
|
---|
2602 | have been modified for use with the September 2003 build of WinAVR. No
|
---|
2603 | source files have changed.
|
---|
2604 |
|
---|
2605 | Changes between V1.2.1 and V1.2.2
|
---|
2606 |
|
---|
2607 | There are only minor changes here to allow the PC and Flashlite 186 ports
|
---|
2608 | to use the Borland V4.52 compiler, as supplied with the Flashlite 186
|
---|
2609 | development kit.
|
---|
2610 |
|
---|
2611 | + Introduced a BCC directory under source\portable. This contains all the
|
---|
2612 | files specific to the Borland compiler port.
|
---|
2613 | + Corrected the macro naming of portMS_PER_TICK to portTICKS_PER_MS.
|
---|
2614 | + Modified comtest.c to increase the rate at which the string is
|
---|
2615 | transmitted and received on the serial port. The Flashlite 186 demo
|
---|
2616 | app baud rate has also been increased.
|
---|
2617 | + The values of the constants used in both integer.c files have been
|
---|
2618 | increased to force the Borland compiler to use 32 bit values. The
|
---|
2619 | Borland optimiser placed the previous values in 16 bit registers, and in
|
---|
2620 | So doing invalidated the test.
|
---|
2621 |
|
---|
2622 | Changes between V1.2.0 and V1.2.1
|
---|
2623 |
|
---|
2624 | This version includes some minor changes to the list implementation aimed
|
---|
2625 | at improving the context switch time - with is now approximately 10% faster.
|
---|
2626 | Changes include the removal of some null pointer assignment checks. These
|
---|
2627 | were redundant where the scheduler uses the list functions, but means any
|
---|
2628 | user application choosing to use the same list functions must now check
|
---|
2629 | that no NULL pointers are passed as a parameter.
|
---|
2630 |
|
---|
2631 | The Flashlite 186 serial port driver has also been modified to use a DMA
|
---|
2632 | channel for transmissions. The serial driver is fully functional but still
|
---|
2633 | under development. Flashlite users may prefer to use V1.2.0 for now.
|
---|
2634 |
|
---|
2635 | Details:
|
---|
2636 |
|
---|
2637 | + Changed the baud rate for the ATMega323 serial test from 19200 to 57600.
|
---|
2638 | + Use vSerialPutString() instead of single character puts in
|
---|
2639 | Demo\Full\Comtest.c. This allows the use of the flashlite DMA serial
|
---|
2640 | driver. Also the check variable only stops incrementing after two
|
---|
2641 | consecutive failures.
|
---|
2642 | + semtest.c creates four tasks, two of which operate at the idle priority.
|
---|
2643 | The tasks that operate at the idle priority now use a lower expected
|
---|
2644 | count than those running at a higher priority. This prevents the low
|
---|
2645 | priority tasks from signalling an error because they have not been
|
---|
2646 | scheduled enough time for each of them to count the shared variable to
|
---|
2647 | the higher original value.
|
---|
2648 | + The flashlite 186 serial driver now uses a DMA channel for transmissions.
|
---|
2649 | + Removed the volatile modifier from the list function parameters. This was
|
---|
2650 | only ever included to prevent compiler warnings. Now warnings are
|
---|
2651 | removed by casting parameters where the calls are made.
|
---|
2652 | + prvListGetOwnerOfNextEntry() and prvListGetOwnerOfHeadEntry() have been
|
---|
2653 | removed from list.c and added as macros in list.h.
|
---|
2654 | + usNumberOfItems has been added to the list structure. This removes the
|
---|
2655 | need for a pointer comparison when checking if a list is empty, and so
|
---|
2656 | is slightly faster.
|
---|
2657 | + Removed the NULL check in vListRemove(). This makes the call faster but
|
---|
2658 | necessitates any application code utilising the list implementation to
|
---|
2659 | ensure NULL pointers are not passed.
|
---|
2660 | + Renamed portTICKS_PER_MS definition to portMS_PER_TICK (milli seconds
|
---|
2661 | per tick). This is what it always should have been.
|
---|
2662 |
|
---|
2663 | Changes between V1.01 and V1.2.0
|
---|
2664 |
|
---|
2665 | The majority of these changes were made to accommodate the 8bit AVR port.
|
---|
2666 | The scheduler workings have not changed, but some of the data types used
|
---|
2667 | have been made more friendly to an eight bit environment.
|
---|
2668 |
|
---|
2669 | Details:
|
---|
2670 |
|
---|
2671 | + Changed the version numbering format.
|
---|
2672 | + Added AVR port.
|
---|
2673 | + Split the directory demo\common into demo\common\minimal and
|
---|
2674 | demo\common\full. The files in the full directory are for systems with
|
---|
2675 | a display (currently PC and Flashlite 186 demo's). The files in the
|
---|
2676 | minimal directory are for systems with limited RAM and no display
|
---|
2677 | (currently MegaAVR).
|
---|
2678 | + Minor changes to demo application function prototypes to make more use
|
---|
2679 | of 8bit data types.
|
---|
2680 | + Within the scheduler itself the following functions have slightly
|
---|
2681 | modified declarations to make use of 8bit data types where possible:
|
---|
2682 | xQueueCreate(),
|
---|
2683 | sQueueReceive(),
|
---|
2684 | sQUeueReceive(),
|
---|
2685 | usQueueMessageWaiting(),
|
---|
2686 | sQueueSendFromISR(),
|
---|
2687 | sSemaphoreTake(),
|
---|
2688 | sSemaphoreGive(),
|
---|
2689 | sSemaphoreGiveFromISR(),
|
---|
2690 | sTaskCreate(),
|
---|
2691 | sTaskMoveFromEventList().
|
---|
2692 |
|
---|
2693 | Where the return type has changed the function name has also changed in
|
---|
2694 | accordance with the naming convention. For example
|
---|
2695 | usQueueMessageWaiting() has become ucQueueMessageWaiting().
|
---|
2696 | + The definition tskMAX_PRIORITIES has been moved from task.h to
|
---|
2697 | portmacro.h and renamed portMAX_PRIORITIES. This allows different
|
---|
2698 | ports to allocate a different maximum number of priorities.
|
---|
2699 | + By default the trace facility is off, previously USE_TRACE_FACILITY
|
---|
2700 | was defined.
|
---|
2701 | + comtest.c now uses a psuedo random delay between sends. This allows for
|
---|
2702 | better testing as the interrupts do not arrive at regular intervals.
|
---|
2703 | + Minor change to the Flashlite serial port driver. The driver is written
|
---|
2704 | to demonstrate the scheduler and is not written to be efficient.
|
---|
2705 |
|
---|
2706 |
|
---|
2707 |
|
---|
2708 | Changes between V1.00 and V1.01
|
---|
2709 |
|
---|
2710 | These changes improve the ports. The scheduler itself has not changed.
|
---|
2711 |
|
---|
2712 | Improved context switch mechanism used when performing a context
|
---|
2713 | switch from an ISR (both the tick ISR and the serial comms ISR's within
|
---|
2714 | the demo application). The new mechanism is faster and uses less stack.
|
---|
2715 |
|
---|
2716 | The assembler file portasm.asm has been replaced by a header file
|
---|
2717 | portasm.h. This includes a few assembler macro definitions.
|
---|
2718 |
|
---|
2719 | All saving and restoring of registers onto/off of the stack is now handled
|
---|
2720 | by the compiler. This means the initial stack setup for a task has to
|
---|
2721 | mimic the stack used by the compiler, which is different for debug and
|
---|
2722 | release builds.
|
---|
2723 |
|
---|
2724 | Slightly changed the operation of the demo application, details below.
|
---|
2725 |
|
---|
2726 | Details:
|
---|
2727 |
|
---|
2728 | + portSWITCH_CONTEXT() replaced by vPortFirstContext().
|
---|
2729 | + pxPortInitialiseStack() modified to replicate the stack used by the
|
---|
2730 | compiler.
|
---|
2731 | + portasm.asm file removed.
|
---|
2732 | + portasm.h introduced. This contains macro definitions for
|
---|
2733 | portSWITCH_CONTEXT() and portFIRST_CONTEXT().
|
---|
2734 | + Context switch from ISR now uses the compiler generated interrupt
|
---|
2735 | mechanism. This is done simply by calling portSWITCH_CONTEXT and leaving
|
---|
2736 | the save/restore to compiler generated code.
|
---|
2737 | + Calls to taskYIELD() during ISR's have been replaced by calling the
|
---|
2738 | simpler and faster portSWITCH_CONTEXT().
|
---|
2739 | + The Flashlite 186 port now uses 186 instruction set (used to use 80x86
|
---|
2740 | instructions only).
|
---|
2741 | + The blocking queue tasks within the demo application did not operate
|
---|
2742 | quite as described. This has been corrected.
|
---|
2743 | + The priority of the comtest Rx task within the demo application has been
|
---|
2744 | lowered. Received characters are now processed (read from the queue) at
|
---|
2745 | the idle priority, allowing low priority tasks to run evenly at times of
|
---|
2746 | a high communications overhead.
|
---|
2747 | + Prevent the call to kbhit() in main.c for debug builds as the debugger
|
---|
2748 | seems to have problems stepping over the call. This if for the PC port
|
---|
2749 | only.
|
---|
2750 |
|
---|
2751 |
|
---|
2752 |
|
---|