Message Board
C,C++, OR both In Embedded Systems
Ahmed Galal2/9/2011 8:21 AM EST
Hi,
I am new to Embedded System field and i started to study it's concepts and i want to be Embedded System Developer to develop Automobile embedded system applications. Can anybody tell me which way is better and what to study and what to not study ?
I have followed some discussions about C++ deployment in embedded
systems and I learned there are several criticism on C++ itself and
its deployment in such systems. Someone mentioned he designs using OOD
but implements in C and Assembly, which would be my approach as well
So I'd like to get the best possible from
C++ advantages and avoid its drawbacks. I would appreciate if you could comment on this and give hints on what to avoid when programming for embedded systems in C++ or C. Suggestions of books and links will be
very much appreciated as well.
Thank you in advance for your help.
Ahmed


Jagdish Bisawa
2/16/2011 12:00 PM EST
Dear Ahmed,
Whether one has to use C or C++ (or any other) as a programming language for embedded applications depends on a lot of situations.
Whereas C has predominantly been used to program embedded systems, C++ is also gaining popularity. So, most of the time, it'd be C/assembly combination & (typically) C/C++ combination in cases when an embedded OS is being used.
So, my advice to you would be to first get good hands-on on C programming language & then explore C++ also. Please remember that there are no thumb rules/do's & dont's that anybody can list down here :)
The best way is to get hold of an embedded board & relevant software tools & start coding.
For e.g. check www.mbed.org which is a kind of a new development in the embedded world - that of cloud compiling.
There are some very good books that talk on using C/C++ in embedded applications. A Google search will result in their names. Some, that immediately come to my mind are :
1) Programming Embedded Systems in C/C++ by Michael Barr;
2) Programming 32-bit Microcontrollers in C;
Also keep yourself updated with sites like www.eetimes.com & www.embedded.com
Sign in to Reply
AhmedGalal
2/20/2011 9:34 AM EST
Dear Jagdish,
Thank you very much for you kind response it means a lot for me. I promise to keep your advices in my consideration. Can i have your mail sir ? It is a pleasure to be in touch with you. Thanks
Ahmed.galal86@hotmail.com
+20 19 314 96 92
Sign in to Reply
Jagdish Bisawa
2/26/2011 6:57 AM EST
Dear Ahmed,
You may contact me on jbisawa@yahoo.com, at my personal e-mail address.
Do not hesitate to ask me questions on embedded systems. I'd love to try & clarify your doubts.
Sign in to Reply
seo service india
2/23/2011 4:32 AM EST
Thanks for showing up such fabulous information. I like this post, keep writing and give informative post...!
http://www.seobaba.com/seo-services-india/seo-services-india.html
Sign in to Reply
Robotics Developer
2/23/2011 4:10 PM EST
Good question, nice responses! I was looking at the www.mbed.org site earlier and it seems like an interesting way to go. My experience has been limited from the startup perspective but normally engineers/designers use what they know, instead of looking for the "best" solution as that is oftentimes faster. I would suggest using what works for you and is available.
Sign in to Reply
Silicon_Smith
2/27/2011 4:31 PM EST
Embedded C is always recommended. Light and more fundamental and you get to be closer the machine too, helping you understand the assembly differences between platforms. I still remember the combo of Dennis Ritchie for C basics and Mazidi to get started with Embedded development. Bliss!
Sign in to Reply
Test_engineer
3/11/2011 9:28 AM EST
Read Jack Gnassle's excellent article: "Is assembly language obsolete?" Knowing assembly will give you a better understanding of how a computer works under the hood especially memory and I/O interfacing.
Sign in to Reply
t.alex
3/11/2011 10:59 AM EST
Typically, for most systems C is sufficient. For bigger systems, e.g. running Embedded Linux, you can try C++ for better OOP.
Sign in to Reply