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.org V4.8.0 uploaded to SourceForge

Posted by Richard on March 26, 2008
V4.8.0 is now available for download as a release .zip file. This will not get announced on the FreeRTOS.org site until I have written documentation for the new features. The change history is available here: http://www.freertos.org/History.txt.

Regards.

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Borut on March 26, 2008
Richard,

you probably get this all the time but I wanted again to say thank you for your excellent work. I use your RTOS on my home projects for some time now and I think it is just great.

Thank you again.

Regards,

Borut

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Richard on March 26, 2008
Thanks :o) Its always nice to hear.

Regards.

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Piero B on March 27, 2008
Hi Richard!

Nice work!!!!

I'm happy to see in this release some features we discussed in forum!
I appreciated trace macros in the core api!!

Just some questions:

1. I saw in task.c this code for stack highwatermark:

#if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )

unsigned portBASE_TYPE uxTaskGetStackHighWaterMark( xTaskHandle xTask )
{
tskTCB *pxTCB;

pxTCB = prvGetTCBFromHandle( xTask );
return usTaskCheckFreeStackSpace( ( unsigned portCHAR * ) pxTCB->pxStack );
}

#endif

This code can give information about the worst level reached by the stack.
If you want only the current stack size, can we do something like: (pxTCB->pxTopOfStack - pxTCB->pxStack) to obtain the current used stack?

2. I didn't use in the past ricursive mutex... so i hope we'' find some explanation in api documentation in website
3. what's the purpose of portCriticalNestingInTCB ????

bye,
Piero

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Richard on March 27, 2008
> Nice work!!!!

Thanks.

> I'm happy to see in this release some features we discussed in forum!

Not everything yet, but we are getting there.


> I appreciated trace macros in the core api!!

I'm just writing the documentation for those now and realise that some are not placed in optimal positions to get out the best information. I will make some minor adjustments for the next release but these will only be tiny.


> Just some questions:
>
> 1. I saw in task.c this code for stack highwatermark:
>
> #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 )
>
> unsigned portBASE_TYPE uxTaskGetStackHighWaterMark(
> xTaskHandle xTask )
> {
> tskTCB *pxTCB;
>
> pxTCB = prvGetTCBFromHandle( xTask );
> return usTaskCheckFreeStackSpace( ( unsigned
> portCHAR * ) pxTCB->pxStack );
> }
>
> #endif
>
> This code can give information about the worst level reached
> by the stack.
> If you want only the current stack size, can we do something like:
> (pxTCB->pxTopOfStack - pxTCB->pxStack) to obtain the current
> used stack?


On the assumption that the stack is growing down (correct for nearly all architectures), pxStack will be the lowest address toward which the stack is growing, so I think it would be more like ( total stack size - ( pxTCB->pxTopOfStack - pxTCB->pxStack ) ) to give the actual current stack usage rather than the high water mark.

>
> 2. I didn't use in the past ricursive mutex... so i hope we''
> find some explanation
> in api documentation in website


That was there already. See http://www.freertos.org/xSemaphoreCreateRecursiveMutex.html and FreeRTOS/demo/common/recmutex.c.

> 3. what's the purpose of portCriticalNestingInTCB ????

Ports that use a critical nesting count have to save and restore the critical nesting count as part of the task context. This means the save/restore asm code has to access the critical nesting variable and push/pop to/from the stack. As this is done in asm code it is different for each port. As an alternative I decided that the critical nesting count could actually be stored in the TCB, this way the saving and restoring of the critical nesting can be done in a portable way from C code rather than from asm code. The PowerPC port (being the newest) is the only port that uses this mechanism so far. It is RAM neutral in that you save a word of stack space, but loose a word in the TCB.

Regards.

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Piero B on March 27, 2008
> On the assumption that the stack is growing down
> correct for nearly all architectures), pxStack will
> be the lowest address toward which the stack > is growing,
> so I think it would be more like
> ( total stack size - ( pxTCB->pxTopOfStack - pxTCB->pxStack ) )
> to give the actual current stack usage rather than the high water mark

Richard, ... yes, i think this is a good solution.
Do you think is it possible to add a function for this (with different implementation depending on stack grow define), in the next release?


And, OUT OF THREAD, a question asked to me by our legal office:

If i use freertos for our commercial embedded device (so, firmaware is distributed INSIDE the microcontroller, no binary file is provided),
and we want to be compliance with freertos license (without distribution of our application source code),
have i to add in OUR WEBSITE link to freertos website and link to freertos download page?
OR other actions are NECESSARY?

Thanks,
Piero

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Richard on March 27, 2008
With respect to the license. The GPL states you have to document that the product uses FreeRTOS.org, and give a written offer to provide the source code to anybody that requests it.

These days of coarse getting the source code is simply a matter of going to the WEB site and downloading it so it makes no sense for you to be posting it to people on a CD. Therefore I am satisfied that the criteria is being met if you tell people where they can obtain the source code, which is basically just a link to the FreeRTOS.org site. "This product uses the FreeRTOS.org real time kernel - the FreeRTOS.org source code can be obtained by visiting http://www.FreeRTOS.org" would seem to suffice. Tiny print in the back of the manual, or on the product page of your WEB site.

You can of course remove this requirement by buying a commercial license, very reasonably priced :o) See http://www.OpenRTOS.com for details.

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by JMR on April 1, 2008
Thank you Richard. FreeRTOS is really a great "little" RTOS. It fits neatly in the tiniest of spaces and does exactly what it says on the tin.
I just integrated the latest version (v4.80) into my project and got two compile errors when compiling for an AVR ATMega platform using winavr (20071221 i.e. gcc 4.2.2)

In queue.c there is a slight little type inconsistency of the return value of the following two functions:
portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue );
portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue );

should be
signed portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue );
signed portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue );

to be consistent with the definition further down in the file or change the return type of the definitions.

Otherwise all is working as before, just better response times for queue operations.

Great work as usual.

RE: FreeRTOS.org V4.8.0 uploaded to SourceFor

Posted by Richard on April 1, 2008
Thanks for pointing that out - I have added the 'signed' but not yet checked the files in. Trying to compile with a dozen different compilers that don't all agree!

Regards.


[ 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