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


Increase Queue size limit on 8-bit micros

Posted by dcraw on December 10, 2007
Currently 8-bit micros are limited to a queue size of 255. To increase the limit I was thinking about modifying the QueueDefinition structure. I would change uxMessagesWaiting and uxLength to be unsigned portSHORT instead of unsiged portBASE_TYPE. Can anyone think of potential pitfalls with this? Are there certain atomic operations which depend on uxMessagesWaiting being only 1 byte?

RE: Increase Queue size limit on 8-bit micros

Posted by Richard on December 11, 2007
There should be no problem with having the larger data size. As I recall the very old versions of FreeRTOS.org, prior to the introduction or portBASE_TYPE, had this member as a 16bit type.


RE: Increase Queue size limit on 8-bit micros

Posted by dcraw on December 11, 2007
For some reason the queues don't work after making this change. I only changed the type of uxMessagesWaiting and uxLength in the QueueDefinition structure to unsigned portSHORT. I left all of the function prototypes untouched (still passing portBASE_TYPE). After makeing these 2 small changes the code still compiles cleanly without warnings, but for some reason queue receive calls are never returning? Using an Atmega128

RE: Increase Queue size limit on 8-bit micros

Posted by dcraw on December 11, 2007
My fault. I was passing in an uninitialized queue to xQueueSend(). Changing the QueueDefinition structure was just enough to cause my prgram to really crash. But once I fixed my initialization problem everything was working fine with the larger queues.

RE: Increase Queue size limit on 8-bit micros

Posted by FordP on December 12, 2007
Why not make the type automatically switch to 16 bit when the queue gets bigger than 255 ?

[ 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