Re: Free LPC2xxx RTOS for non-commercial use

Started by duci750 November 30, 2008
Dear Anders,

Is this RTOS still available for download?

Best Regards,

Peter Huszar
--- In l..., "kristianstad2001" wrote:
> Hello all,
> I've followed this group basically from the beginning and I've
> notices that a recurring question/subject is real-time operating
> systems.
> eCos is of course an interesting alternative, but as some of you have
> noted, the code size is rather large. This is true even if most of
> the functionality is removed in the configuration process.
> Then we have uCos-ii, which is a widely used RTOS in smaller 8/16-bit
> designs. This RTOS has been ported to many processors, and there is
> of course a documentation that is "more than what is common" :-)
> There are ARM7 ports for uCos-ii, but not specifically for LPC2xxx. A
> port has been promised in the near future, I believe.
> Now, let me present a third alternative. I've just completed an
> initial port of our RTOS to LPC2xxx. It's a configurable RTOS, just
> like eCos and uCos-ii. We have however taken the configuration
> possibilities a bit further. In uCos-ii, you can configure the RTOS
> by including/excluding functions. In our RTOS, you can also configure
> the internal implementation. Just as an example, the ready queue is
> implemented differently if you can have multiple processes with
> identical priorities or if you require each process to have a unique
> priority. Our philosophy is that each application designer/programmer
> makes this (and similar) trade-offs, as opposed to the RTOS designer.
> eCos has some configuration options for different internal
> implementation (the option above exist, or example), but slightly
> less details than we have.
> So what's the catch? Well, as many others, we work under commercial
> constraints... but at the same time we would like to make some form
> of contribution. We offer basically the same license as uCos-ii. This
> means that our RTOS is totally free for non-commercial use. Just like
> uCos-ii it is not allowed to distribute the source code, but it can
> be generated when you have the program "InfraBed" installed (see
> below). So, if any of you would like a RTOS for LPC2xxx to start
> experimenting with; You are very welcome to test ours.
> If you would like to use the RTOS in commercial situations, for
> example embed it into a product or ship a RTOS-library with LPC2xxx
> hardware (to for example increase the customer value for the offer)
> we require that you acquire a commercial license from us.
> If you are interested the licensing terms can be found on our home
> page. There are also special deals if you for example ship library
> code with hardware.
> If you are a hobbyist/teacher, don't bother about this - just use the
> Even though it may seem so, this is not a (spam) sales letter. We
> would just like to make a reasonable contribution (given our
> commercial constraints) that you all can benefit from.
> So, now the details. The port has just been completed and undergone
> initial testing. All processes must run in ARM-mode. A Thumb-port
> will be available in the near future. I guess that this is not a
> problem for most of you since the LPC2xxx processors have large FLASH
> memories.
> We ship all code within a graphical configuration tool called
> InfraBed. If you would like to test the RTOS, just download InfraBed
> (can be found on under the download
> section). Install the program and register as a demo-user (which is
> free and basically just requires you to supply a valid name and e-
> mail address). A key will then be mailed to you within 24 hours.
> Enter this key into the program and perform something we call an ESIC
> update. ESIC stands for Embedded System Infrastructure Component. The
> RTOS is one of these basic "building block components".
> You can now configure the RTOS after your specific needs. Semaphores,
> queues, and signals (OSE compatible) are supported as synchronization
> primitives. Other synchronization primitives will be added based on
> customer requirements (or your request). Event flags will for example
> be added in the near future. There is also some additional
> functionality, such as timer handling, memory management, and an idle
> process (with CPU utilization calculation).
> Code and documentation will be generated based on your configuration
> settings.
> (As a side note, there are some parts of the documentation that needs
> more details. We are working on updating missing parts. For example,
> specific documentation about the ARM7 port is not yet available. The
> code is however quite self-explanatory if you need to study it.)
> We also supply a complete build environment based on GCC for our
> ports. This environment is not yet complete, but the GCC compiler
> supplied from Keil ( works perfect. It's free to
> download. We will also add ports that compile under IAR and ADS. If
> you are in a hurry, you can do this port by yourself in a couple of
> hours.
> We normally include the hardware abstraction layer code (HAL) in the
> code that is automatically generated. Until this has been completely
> integrated I've put the HAL code in a zip-file.
> This zip-file also includes all startup-files needed to compile under
> Keils environment. Observe that you must create a project file
> yourself and include all source code files (if you are using
> uVision3). Ordinary make-files will be added in the near future.
> When you start an InfraBed project, define it as a "generic" project.
> Set the following project settings:
> * Unsigned 8-bit: unsigned char
> * Unsigned 16-bit: unsigned short
> * Unsigned 32-bit: unsigned int
> * Signed 8-bit: char
> * Signed 16-bit: short
> * Signed 32-bit: int
> * Boolean: unsigned char
> * Alignment: 4 bytes
> The zip-file contains a subdirectory named "hal". Copy this directory
> to the place where the RTOS code is generated.
> The two files in the subdirectory named "stub" shall be copied to the
> directory "pre_emptive_os/stub". The two files shall over-write the
> existing files.
> I'm very aware that there are a number of steps here that you must
> perform to get the RTOS to compile. When the HAL code has been fully
> integrated and the build environment is ready, all this will be
> performed automatically. If you cannot wait a couple of weeks you
> will however need to perform these steps. I will help and try to
> solve any problems you may encounter in getting the RTOS up-and-
> running.
> Sorry for this VERY long letter. In short - I hope that some of you
> will find this RTOS useful!
> Best Regards,
> Anders Rosvall
> Hobbyist and working for Embedded Artists AB
> I can be reached at: Anders.Rosvall@...
> or the address where this message is posted from.
> PS. If you are interested about code size:
> Minimum: about 3.4 kbyte in ARM mode
> Maximum: about 20 kbyte in ARM mode
> It's basically up to you how much functionality you need...
> DS.

An Engineer's Guide to the LPC2100 Series