Quality RTOS & Embedded Software

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




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) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd.. See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.

Latest News:

FreeRTOS V9.0.0 is now available for download.


Free TCP/IP and file system demos for the RTOS


Sponsored Links

⇓ Now With No Code Size Limit! ⇓
⇑ Free Download Without Registering ⇑


FreeRTOS Partners

ARM Connected RTOS partner for all ARM microcontroller cores

Renesas Electronics Gold Alliance RTOS Partner.jpg

Microchip Premier RTOS Partner

RTOS partner of NXP for all NXP ARM microcontrollers

Atmel RTOS partner supporting ARM Cortex-M3 and AVR32 microcontrollers

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

Xilinx Microblaze and Zynq partner

Silicon Labs low power RTOS partner

Altera RTOS partner for Nios II and Cortex-A9 SoC

Freescale Alliance RTOS Member supporting ARM and ColdFire microcontrollers

Infineon ARM Cortex-M microcontrollers

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

Cypress RTOS partner supporting ARM Cortex-M3

Fujitsu RTOS partner supporting ARM Cortex-M3 and FM3

Microsemi (previously Actel) RTOS partner supporting ARM Cortex-M3

Atollic Partner

IAR Partner

Keil ARM Partner

Embedded Artists