Select operating system for embedded system
Here I will cover basically 3 operating systems and that is all you want to know…
This is the most widely used operating system in the world of embedded designs.There are lots of advantages associated in using linux in your embedded designs.
First: It is free
This is the primary reason for the wide popularity of linux in the field of embedded design.You just need to download source from the git repository and can start building linux kernel from scratch.
Second :Open source
In the field of embedded design we always use custom hardware,that may cluster system or a hand held system ,so many a times custom hardware needs some modifications in the kernel itself or the drivers.It can be easily done here. Device driver devepoment is relatively easy.
Yocto is most widely used build tool for linux and you can get a lot of documentation for configuring it online.In addition there are lots of recepies(packages) available for it freely.It supports multiple architectures like x86 ,OMAP, ARM.
You cannot do anything just by yourself,you need a lot of help.This is freely available in case of linux.There are lots of communities out there like Freescale community and lots of blogs who will help you in setup and problem redressal .
If your customer wants everything according to some standard then its hard to fit linux in that demand, being open source no one can be held responsible.Still some companies like Redhat and Windriver provies standardization to some degree.
Linux is not considered as reliable as other operating systems like RTOS(Real time operating systems)
This is the second choice of embedded developers. WinCE come in versions like 5.0 ,6.0 ,7.0 & 2013.Only 7,2013 are still relevant.It is only available to OEM`s ie original equipment manufacturers. So if one fine day you decide to make hardware of your own , you simply can`t port it.
It is considered very reliable. If a program runs once, its very unlikely that it will fail in future.
Second: Standardization & Support
If you buying hardware from OEM then its very easy to standardize, in addition Microsoft provides support for it on its msdn site.
Tools (Microsoft visual studio, Platform Builder) come very handy for building images and compiling and cross compiling programs. They need far less technical know how as compared to for example yocto in linux.
First: Licensing Policy
Though cheap Microsoft`s WinCE is licensed ,so it you need to ship 60 boards ,you need to purchase 60 licences and it will definitely add to your BOM
Second: Closed source & no community help
So you can use the API`s but can`t modify or even view the source, this can prove hurdle sometimes but as documentation is good this is rare scene.Unlike Linux windows lacks a strong community to help you out.
Third: Programming languages
Win32 API language is official language of WinCE & you need a good time to learn it, though its C++ but you need to even know new datatypes like TCHAR for simple char etc. Frameworks like direct show(windows substitute to OpenCV) are really time taking to start with and lacks proper tutorials. Device driver programing is relatively difficult(may be not for you,if you have first hand experience).
Developed by company windriver, this OS falls in category of hard real time operating system. It is used in systems which have hard time constraints and need very mission critical. It has different consumer base of its own.
First: Vendor Neutral
So there is no concept of OEM, if your architecture supports it then you can port it.
Second: Truly RTOS
It is exclusively used for mission critical in the fields like aerospace and defense as is truly multiprocessing and with preemptive scheduling.
Workbench (IDE) is one stop solution for your development with support.
There are as such no cons apart from the fact that it comes with a price tag of nearly 8 lack rupees for a year for one system
There are other RTOS out there like QNX and Free RTOS but I do not have first hand working experience with them so cannot comment, if you have you can share here in comments.If you have addition info about other OS ,you can share them below.
Latest posts by Piyush Ashtikar (see all)
- Common topics for Embedded Software Developers job interview-India - June 7, 2017
- c: command not found Qt Creator Yocto Oe-core - January 14, 2016