I have been working as an embedded software engineer on mostly 8 bit micro-controller firmware and desktop/mobile applications development for the past five years.
My work on a WinCE project (in which I got introduced to .NET CF) was short lived. I did use core APIs for interrupt processing, peripheral communication, etc...but again, not exactly a pure RTOS environment. In order to get together more solid experience for growing more in the embedded field, I want to work more with RTOSes.
Will buying an evaluation board with an RTOS and putting together a project at home be regarded as a good experience or will an online course be more useful? I am just not clear as to what will be regarded as good experience. Any suggestions or directions will greatly help me. I have a passion for the field but just a need a point in the right direction.
Thanks for any help in advance.
Regards,
Subbu
I would suggest looking at either:
FreeRTOS - an increasingly widely used open source RTOS with plenty of documentation on its own website. There are commercially supported versions (SafeRTOS and OpenRTOS) too.
Micro C/OS-II, either via Jean Labrosse's book, or the evaluation (or both of course). The book's second chapter is a good general overview of a typical RTOS, the bulk of it describes the kernel in detail, and is less important if RTOS usage rather than implementation is your goal.
eCos; an extensive and scalable RTOS including capabilities extending beyond mere kernel scheduling and IPC. The one book on the subject does little more than collect information that is available elsewhere, such as that provided in the previous link.
For simple projects that just need a kernel, I would suggest FreeRTOS for cost, functionality, and support. For more sophisticated boards with networking, filesystems, USB, etc., where perhaps a heavyweight OS such as Linux does not meet resource or real-time constraints, I would suggest eCos. Micro C/OS-II is good if you want to investigate how an RTOS kernel works under the hood in great detail.
Before you buy a board, I suggest that you experiment with the x86 ports of some of the above in a VM on your PC perhaps, or use an old PC you are not otherwise using.