Embedded Systems Interview Questions

In general the question would be of two type

1) Questions concentrating more on general skills as a software engineer
On C lang, algorithms, design skills, Tools used etc

2) Questions concentrating more on specific skills in real-time system design
On RTOS,multi-tasking issues (synchronization,exclusion, scheduling),device driver skills (interrupt handling, device addressing)

Typical questions (assuming VxWorks Experience):

1) What is an Interrupt Service Routine? What are the typical requirements for an ISR?
2) What are the advantages and disadvantages of cache memory in a real-time system that uses DMA?
3) What are the different types of timing requirements that real-time systems have?
4) What is priority inversion and how is it typically addressed?
5) How many levels of task priority are there in VxWorks? Explain the task priority settings in your system?
6) You finished writing a real-time system but find that the system performs much worse than expected. What should you do? (Answers shouldinclude: hardware verification [cache, SDRAM and device timing], compiler
settings, task priority settings, profiling, bad coding, etc.)

eg:
Soving issues in signaling to devices (ie being able to look at a logic analyser and find the problem with interdevice communication), Solving issues with data throught put(ie minimizing bus activity and processor useage to move data through a system), Service times for various threads/processes and activities ...

7) Discuss issues with dynamic memory allocation in real-time systems.
(If they don't mention the words "memory leak" or "thread-safe", they should
probably be excused.)

8) "What is the difference between the three types of semaphores in vxWorks'mutual-exclusion','binary', and 'counting'?"

9) About usage of tools like osciloscopes, logic analysers, and spectrun analysers
It is this fair to assume that knowledge of these tools are essential to exhibit ones experience in the field.