I'm trying to find a free/cheap RTOS that others have found works well with the NXP LPC1788 microcontroller. I was originally planning on using FreeRTOS, but it doesn't seem to support that particular processor; the closest supported core is the LPC1768. ThreadX works with the LPC1788, but a license for it will cost several thousand pounds. Suggestions?
EDIT 1: I forgot to mention, I'm working with IAR Embedded Workbench.
EDIT 2: I guess I should also point out that I'm fairly new to embedded programming, let alone using RTOS's. FreeRTOS and ThreadX both seem to be pretty similar, and both have fairly intuitive API's. The more that the API of another RTOS matches with these kinds of API's, the better I suppose.
EDIT 3: I've been looking into one RTOS called embOS. It looks professional, the API looks nice, they support a decent number of processor/IDE combinations (including mine), and I've already got an example project working fine. It's not free, and a license for it will cost around 2500 euros, but that's still around 3 times cheaper than the threadX license. Thanks for the suggestions, I feel kind of bad that I can't choose an accepted answer.
I have specifically evaluated FreeRTOS, embOS and Keil RTX on Cortex-M3. Of the three FreeRTOS certainly had the slowest context switch times, while RTX had the fastest, but the range was 5us to 15us so probably not critical for all but the most hard real-time applications (it made a difference in my case however).
RTX is of course Keil specific and you are using IAR, it's API is less sophisticated than embOS, and at the time it had a few bugs on CM3 and did not fully support the NVIC interrupt priority scheme. I believe these issues are resolved. FreeRTOS is perhaps the most unconventional of the three in terms of API and architecture, having extensively used embOS and VxWorks and similar "traditional" RTOS systems I was not entirely comfortable with it.
embOS works well with IAR and its debugger, with a level of RTOS aware debug that is useful. The licensing is per-developer/per-processor/per-toolchain, but otherwise royalty free and can be used over many projects using the same architecture and toolchain. The support from Segger is excellent, as is the documentation, and I would suggest that for a commercial product with sufficient volumes and margin it would be well worth it.
You might also consider eCos - this is a more comprehensive solution offering support for USB, netwoking, filesystems and more as well as scheduling and IPC. There is a port for LPC1766 that could probably be ported relatively easy. Most likely however you would have to use the GNU toolchain for development which may have a bearing on your use of existing tools such as JTAG debuggers.