Career Guide in Embedded Systems - Part I


Dear Freshers,


Based on our experience in dealing with numerous number of students, we felt that there is a less amount of awareness existing about Embedded Systems.


In order to provide guidance to freshers, we are starting this 'Career guide in Embedded systems' as a multiple part series. This is the first part mainly dealing with the technical aspects.


Pfeel free to write to us at: career_coach@emertxe.com for any queries/clarifications.


Looking forward to hearing from you.



Career coach @ Emertxe



Career Guide in Embedded Systems : Part I (Technical aspects)



Question: What is Embedded Systems?


Answer: An embedded system is a special-purpose system which performs a specific task with its own hardware. The embedded system is different from a general purpose computing devices (Like PC) because of its size, functionality and resources. Since the system is dedicated to specific tasks, design engineers can optimize it by reducing the size and cost of the product to a larger extent which requires good designing skills. Embedded systems are often mass-produced; in order to have cost savings multiplied by millions of items.

Physically, embedded systems range from portable consumer devices (such as MP3 players, PDA's, Mobile phones, gaming devices) to large Enterprise products (such as Enterprise routers, Networking switches and Industrial automation systems). From an engineering point of view embedded systems development is very different from an application development.


Question: What are the building blocks of Embedded Systems from a programmer's perspective?


Answer: From a programmer's perspective there are four building blocks for any system namely Boot-loader, Operating system, Device drivers and Networking subsystem apart from the device's main functionality. When the system gets powered up, the boot-loader is the first program that gets activated from the non-volatile memory or NVM. This boot loader will vary from one system to another, because it mainly depends on the way system is configured. This boot loader will in turn revoke the operating system by calling its entry point, which in-turn initializes various operating system services (memory, tasks, scheduler etc...).


Once the operating system services are initialized, all the low level device drivers followed by other subsystems (like networking) are brought up. At this point we can say that the platform is built for the system. After this initialization is complete, the system would be in a position to perform its expected functionality. This functionality will vary from device to device as each system is built for a different purpose. Say for example a router's main functionality would be to route the packets but a microcontroller's functionality may be measuring the temperature using a sensor. Finally functionality programming is the main core of embedded system which requires a powerful programming skill.


Question: How Embedded Systems programming is different from normal programming? What are the technical challenges involved?


Answer: Even though embedded systems vary in various functionalities, the programming fundamentals remain almost the same. The challenges in embedded systems programming is because of the following reasons.

Embedded systems have very limited resources (in terms of memory, storage, processing power) compared to a general purpose computing device like PC.


Because of the less memory availability and requirement of faster response, embedded systems have Real Time Operating Systems (RTOS). These RTOS have flat memory model where all processes in the system run under the same memory space. This will lead to lot of memory corruption and inter process communication errors. Debugging these errors are really challenging.


Embedded systems have a pre-defined performance requirements and response time.


Since the embedded software will be running in a dedicated hardware, troubleshooting them requires strong system level understanding and debugging skills.


Question: Why Linux is the choice for Embedded Systems?


Answer: There are multiple reasons for choosing Linux for the Embedded Systems. Some of the reasons are given below.

Linux is based on Open source concept and it is going to be the future of embedded software. Most of the embedded systems are built using Linux as they significantly bring down the product cost simply because it is open.


There are ample amount of tools and debugging mechanisms provided by Linux for an embedded systems developer right from the editor to memory analyzer. These tools play a major role in embedded system development as they reduce the development time.


Linux is customizable for almost all processor architectures and it is scalable at all levels.


Question: What kind of boards and hardware experience one should learn to get experience in Embedded Systems?


Answer: To start with, Micro controller based boards are good ones to learn the board level programming. After that one need to get hands on experience in boards like : PIC, Mechatronic and ARM board. If an engineer get an opportunity to work on customized boards, which are used in live projects it would be really useful to get a good knowledge.



Have career related questions? Please write to: career_coach@emertxe.com

For more details: http://www.emertxe.com



Share this post

Link to post
Share on other sites

Dear Freshers,Here is the link to 'Career Guide in Embedded Systems - Part II':http://www.chetanasforum.com/index.php?showtopic=17540Thanks,Career Coach @ Emertxe

respected sir/madam, i am very much interested in the embedded course.i want to know how much it costs.are there good job opportunities for students who do such courses?as far as i know there is not much scope for hadware field.what are the companies which provide openings for btech students with embedded sys as a specialization?...and how to approach them....THANK YOU...

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now