# How to be an Embedded Systems Engineer?



## سارة المهدى (15 يونيو 2014)

From time to time, I am asked by young enthusiastic engineers the same question: “How can I an embedded engineer?” 
I will summarize the needed skills for a freshman to enter the embedded engineering field.



*What is an Embedded System?*
Before plotting a learning track, let’s define an embedded system. An embedded system is an electronic printed Circuit board that has a Central processing unit (Processor) or Microcontroller, and also a software that is designed and implemented specifically to do certain functionality on this certain hardware.



**On average, a person meets around 100 embedded devices daily.
**Like any computer system, the architecture of an embedded system is:
• Hardware
• Firmware/Drivers
• Operating System
• Middleware
• Application



**Basic Learning Track
The prerequisites for any embedded engineer are to understand what is meant by computer architecture. This 1 topic is covered in most Egyptian universities, so we will not go deep in it. In addition, to cover all layers, I suggest the following track:



*C Programming*
By C programming I neither mean embedded C nor do I mean C for embedded. We have to discriminate between the language and where it is used. 
C itself is environment independent. Adding some extensions does not make it a new language. The problem with C is its flexibility and that it is poorly tutored both in universities and in training centers. You should focus on C language, data structures and algorithms as well as on how to write elite and bug free code. 2 good references we always point out are:
• C Programming by Example
• Writing Bug Free C Code



*Real-Time Operating System*
An operating system is a piece of software that manages HW and SW in the system. The real-time adds the sense of correct timing as well as correct functionality. The goal is to learn how to do multitasking programming over RTOS. Multitasking programming is a very common programming method used heavily in embedded systems.



*Microcontrollers*
A microcontroller (sometimes abbreviated µC, uC or MCU) is a small computer on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory is also often included on chip, as well as a typically small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications.
Microcontrollers are used in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems
*SW Engineering*
Embedded SW development is like any SW development, it needs to follow a disciplined process. An Embedded
SW engineer should be familiar with:
• Customer Requirements 
• Design
• Implementation
• Testing
• Configuration Management



Finally I recommended to who want to learn embedded systems to visit this site
htttp://amit-learning.com 
they have diploma prepare attendees to be almost fully aware of this specialization main items and how to make an Embedded System Design.


----------



## amirengineer (18 يونيو 2014)

I Don't Recommend AMIT's Diploma....However the Explaination of What is Embedded System is very nice...Thank You


----------



## أ بـو بـد ر (26 يونيو 2014)

شكرا لكاتب الموضوع و لناقله


----------



## alyzakarya (1 سبتمبر 2019)

السلام عليكم و رحمة الله و براكاته انا عندي مشكلة في كود و محتاج مساعدة انا بشغل Altrasonic sensor و servo motor بس في سطرين كود في كود ال altrasonic مش بيخلو ال servo يشتغل ارجو ان حد يشرحلي هوا ليه مش بيشتغل و دا ايمال للتواصل [email protected] ودا سطرين الكود while(BIT_CLEARED(ULTRASONIC_ECHO_PORT,ULTRASONIC_ECHO_PIN));

Timer2_start();


while( ( BIT_SET(ULTRASONIC_ECHO_PORT,ULTRASONIC_ECHO_PIN))&&(Timer2_reading() <250) );


Timer2_stop();


----------

