Quality RTOS & Embedded Software

 Real time embedded FreeRTOS RSS feed 
Quick Start Supported MCUs PDF Books Trace Tools Ecosystem TCP & FAT




Loading

FreeRTOS 8.0.0 RC2

Posted by thomask on January 6, 2014

Hi!

Just two quick comments on 8.0.0rc2:

1) It would be nice if the "backward compatibility" defines in FreeRTOS.h would have an "#ifndef configNOBACKWARDCOMPATIBILITY" block. This would make it easier to spot old code.

2) I'm using Tracealyzer 2.5.1 and noticed that ucQueueGetQueueNumber was changed to uxQueueGetQueueNumber Queue_t.ucQueueNumber was changed to uxQueueNumber.

I assume this will only get me into trouble if I'm using >255 queues, right?

best regards, Thomas


FreeRTOS 8.0.0 RC2

Posted by rtel on January 6, 2014

Thanks for your feedback. My comments below.

1) It would be nice if the "backward compatibility" defines in FreeRTOS.h would have an "#ifndef configNOBACKWARDCOMPATIBILITY" block. This would make it easier to spot old code.


Like this? (I prefer the 'enable' rather than 'disable' otherwise its negative negative):


/* Definitions to allow backward compatibility with FreeRTOS versions 
prior to V8 if desired. */

ifndef configENABLEBACKWARDCOMPATIBILITY
#define configENABLE_BACKWARD_COMPATIBILITY 1
endif
if configENABLEBACKWARDCOMPATIBILITY == 1
#define eTaskStateGet eTaskGetState
#define portTickType TickType_t
#define xTaskHandle TaskHandle_t
#define xQueueHandle QueueHandle_t
#define xSemaphoreHandle SemaphoreHandle_t
#define xQueueSetHandle QueueSetHandle_t
#define xQueueSetMemberHandle QueueSetMemberHandle_t
#define xTimeOutType TimeOut_t
#define xMemoryRegion MemoryRegion_t
#define xTaskParameters TaskParameters_t
#define xTaskStatusType	TaskStatus_t
#define xTimerHandle TimerHandle_t
#define xCoRoutineHandle CoRoutineHandle_t
#define pdTASK_HOOK_CODE TaskHookFunction_t
#define portTICK_RATE_MS portTICK_PERIOD_MS

/* Backward compatibility within the scheduler code only - these 
    definitions are not really required but are included for 
    completeness. */
#define tmrTIMER_CALLBACK TimerCallbackFunction_t
#define pdTASK_CODE TaskFunction_t
#define xListItem ListItem_t
#define xList List_t
endif /* configENABLEBACKWARDCOMPATIBILITY */


2) I'm using Tracealyzer 2.5.1 and noticed that


Yes, the data type is changing to allow more objects. As mentioned on the 'upgrading to V8' page, the trace recorder code will be updated in the final release so everything uses the same data type, in the release candidate you currently get a type mismatch as it still contains the old recorder code, which is 8 bits for that variable.

[Quoting text and including code in this forum is really hard! It has taken me several edits just to get it this good]

Regards.


FreeRTOS 8.0.0 RC2

Posted by thomask on January 6, 2014

seems fine!


FreeRTOS 8.0.0 RC2

Posted by dragonflight1 on January 6, 2014

I'm glad I'm not the only one that thinks it sucks! (the formatting that is)


FreeRTOS 8.0.0 RC2

Posted by thomask on January 21, 2014

I just saw that FreeRTOS includes xSemaphoreCreateBinary to replace the old vSemaphoreCreateBinary function.

Maybe the old function should also be disabled by configENABLEBACKWARDCOMPATIBILITY. It was already deprecated in 7.6.0, and should therefore be disabled in 8.0.0 (IMHO).

And what about vTaskList, vTaskGetRunTimeStats?

best regards!


FreeRTOS 8.0.0 RC2

Posted by rtel on January 21, 2014

vSemaphoreCreateBinary() does not add any code because it is a macro, so I think it can stay to ensure the easiest possible upgrade for end users. However its actual use within demo code will be removed by replacing all calls with the function version.

Regards.


FreeRTOS 8.0.0 RC2

Posted by thomask on January 21, 2014

I would drop the old function anyways, because they differ in semantics (taken vs. not taken after initialization, parameters) but have a very similar name. v vs. x can be overlooked easily, and may be a great source of typo-bugs!


[ Back to the top ]    [ About FreeRTOS ]    [ Sitemap ]    [ ]




Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.

Latest News

FreeRTOS kernel V10 is available for immediate download. Now MIT licensed.


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

IAR Partner

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

STMicro RTOS partner supporting ARM7, ARM Cortex-M3, ARM Cortex-M4 and ARM Cortex-M0

Texas Instruments MCU Developer Network RTOS partner for ARM and MSP430 microcontrollers

OpenRTOS and SafeRTOS