Forums

RTOS - any recommendations, good experiences?

Started by Mike Silva July 15, 2007
I've got an Olimex E2294 board (LPC2294, not surprisingly)
and I'd like to play around with an RTOS on it. For no
particular reason I'm thinking maybe eCos or FreeRTOS. Does
anybody have any recommendations regarding those, and any
others? Ease of getting up and running is probably my main
criteria, since I'm assuming that any RTOS will be about the
same as any other for my needs. I will also want an IP
stack from somewhere, so that's my _other_ main criteria.

My toolset is Rowley CrossWorks, BTW.

Thanks,
Mike

An Engineer's Guide to the LPC2100 Series

eCos is great and not that hard to launch & use, but you'll need to use the
Gnu toolchain to make it work (don't know if you can use it under keil). I'm
using it (with eclipse as ide & the whole gnu arm toolchain) on an
IARLPC210x dev board and it works really fine.

I don't know about FreeRTOS though :(
> I've got an Olimex E2294 board (LPC2294, not surprisingly)
> and I'd like to play around with an RTOS on it. For no
> particular reason I'm thinking maybe eCos or FreeRTOS. Does
> anybody have any recommendations regarding those, and any
> others? Ease of getting up and running is probably my main
> criteria, since I'm assuming that any RTOS will be about the
> same as any other for my needs. I will also want an IP
> stack from somewhere, so that's my _other_ main criteria.
>
> My toolset is Rowley CrossWorks, BTW.

It is one of the aims of FreeRTOS.org that it is easy to use (I will let
others be the judge of the success of that). To this end, each official
port comes with a pre-configured demo application that demonstrates most of
the kernel features, and tests the port operation. The demo application
will have all the compiler configuration required for a successful build.
The theory is that you have a working application 'out of the box' - you can
then delete the demo tasks and replace them with your own application tasks.

To use an LPC variant or prototyping board that is not already directly
targeted should be a simple case of changing the linker script to be correct
for the memory map of your chosen hardware.

In addition, things to consider are:

+ When running the demo application you may need to change the GPIO pins
used to flash the LED's.
+ The LPC has two port variants that have slightly different timer setup.
Make sure the correct version for your device is used (see the LPC2106 and
LPC2368 variants).
+ If you are converting a demo application to run on a device that has less
RAM than the original target then it is likely that you will have to reduce
the number of demo tasks that are created, and reduce the
configTOTAL_HEAP_SPACE configuration parameter (see the memory management
section of the FreeRTOS.org documentation).
+ Some demo applications use all the heap space, so you may need to remove
some of the demo tasks to free up RAM if you want to add in any new tasks.
+ Read the documentation!
+ Use the support forum!

There are numerous uIP demos that you can use for reference. lwIP might be
a bit too meaty for the 16K of RAM available.

Regards,
Richard.

+ http://www.FreeRTOS.org
A free real time kernel for 8, 16 and 32bit systems.

+ http://www.SafeRTOS.com
An IEC 61508 compliant real time kernel for safety related systems.
--- In l..., "FreeRTOS.org Info" wrote:
>
> There are numerous uIP demos that you can use for reference. lwIP
might be
> a bit too meaty for the 16K of RAM available.
>
> Regards,
> Richard.

The E2294 board has 1Mb of 10ns RAM, so that won't be an issue. Can
you list some of the IP stacks that you'd consider a good fit to
FreeRTOS and the LPC2294? Thanks.

Mike
> The E2294 board has 1Mb of 10ns RAM, so that won't be an issue. Can
> you list some of the IP stacks that you'd consider a good fit to
> FreeRTOS and the LPC2294? Thanks.
>

I just use uIP and lwIP myself. If you have 1MB at your disposal then lwIP
could well be your best bet if you need the extra throughput. If throughput
is not an issue then personally I would stick with the much simpler/easier
uIP.

I believe Interniche provide a light weight version of their stack for free
use on the LPC2000, but I have no experience of it myself. I would be
interested to know if anybody has used this with FreeRTOS.org.

Regards,
Richard.

+ http://www.FreeRTOS.org
A free real time kernel for 8, 16 and 32bit systems.

+ http://www.SafeRTOS.com
An IEC 61508 compliant real time kernel for safety related systems.