This week, Collin Walls from Mentor Graphics, published an article from guest columnist Meador Inge in his blog. The blog post is called “C is great, but…“, and it goes on to highlight how embedded software programmers should get into languages other than C, the premise is that doing only C will make you a bad programmer. I agree and I have a lot to learn. I’ve played with Python in the past (not with embedded software purposes) and it’s been fun and educative.
On a similar note as Meador’s post, I believe developers should not limit themselves to a single software architecture. so I’ve also been learning the pleasures of RTOS. Coming from the low-end embedded world and having worked with 8 and 16-bit microcontrollers for most of the last 6 years, I’ve become used to forcing myself to do resource constrained software, with bare-schedulers at most. While this has been fun, I think I really need to get going with bigger systems. So I started playing around with MQX by Embedded Access, which is currently being offered by Freescale on several MCU and MPU. I believe MQX is a really nice step towards bigger and more complex RTOS, it has all the basic functionalities an RTOS is supposed to have as well as integrated communications stacks (ethernet, USB) that make suitable for a lot of projects. Freescale is putting a lot of effort into releasing a lot of enablement material.
Even with such a nice option, many of us are less than beginners in the world of RTOS. If you are one such case you should take a look a the Friendly Little Interrupt Tasker (or FLIRT), it’s a very small and simple RTOS ported to Freescale’s S08 architecture. The author, Dave Armour, published an article on Embedded.com about it, the article explains the operation of this great little RTOS in clear and simple language so that even the least knowledgeable of us can understand. A recommended read.
How about you? What’s your experience with changing your development paradigms? Leave a comment and let me know your experience with new languages, software architectures, RTOS, etc.