Embedded Systems Interview Questions & Answers

Searching for another job can be so tedious that it can turn into a job itself. If you are expertise in with embedded development tools, debuggers and protocol analyzers then prepare well for the job interviews with to get your dream job. Here's our recommendation to prepare well for the job interview to achieve your career goals in an easy way. Get ready for the embedded interview questions on different topics like Networking and exposure to Wi-Fi Direct (P2P), WPA Supplicant / Hostapd / CAPWAP and Wi-Fi Display / Miracast / any Wi-Fi Application to win in your job search.Wisdom jobs job interview questions page publishes important information for your job search. Follow our embedded systems job interview questions and answers site to get through your job interview in first attempt.

Embedded Systems Interview questions

Embedded Systems Interview Questions

  1. Question1. What Is The Difference Between Embedded Systems And The System In Which Rtos Is Running?

    Answer :

    Embedded system is just combination of s/w and h/w that is some embedded system may have os some may not and rtos is an os.

                                                                      OR

    Embedded system can include RTOS and cannot include also. it depends on the requirement. if the system needs to serve only event sequentially, there is no need of RTOS. If the system demands the parallel execution of events then we need RTOS.

  2. Question2. What Is Pass By Value And Pass By Reference? How Are Structure Passed As Arguments?

    Answer :

    The parameter to a function can be a copy of a value that is represented by variable or can be a reference to a memory space that stores value of variable. The former is referred to as pass by value and the latter is referred to as pass by reference. The difference is that when parameters are passed by value the changes made to the variable value within the function is not reflected in the caller function, but when passed as reference changes are reflected outside the called function. The structures are always passed by reference.

  3. Question3. What Is Difference Between Using A Macro And Inline Function?

    Answer :

    The macro are just symbolic representations and cannot contain data type differentiations within the parameters that we give. The inline functions can have the data types too defined as a part of them. The disadvantage in using both is that the inclusion of condition checks may lead to increase in code space if the function is called many times.

  4. Question4. What Is The Volatile Keyword Used For?

    Answer :

    The volatile keyword is used to represent variables that point to memory in other mapped devices. In such a case the value of the variable can be changed outside of a program. The compiler does not do additional optimizations to the code if there is volatile keyword.

  5. Question5. What Are Hard And Soft Real Time Systems?

    Answer :

    The hard real time systems are the one that depend on the output very strictly on time. Any late response or delay cannot be tolerated and will always be considered a failure. The soft real time systems on the other are not very rigid as the hard real time systems. The performance of the system degrades with the lateness of response, but it is bearable and can be optimized to a certain level for reuse of the result.

  6. Question6. What Is A Semaphore? What Are The Different Types Of Semaphore?

    Answer :

    The semaphore is an abstract data store that is used to control resource accesses across the various threads of execution or across different processes. There are two types of semaphores:
    • The binary semaphore which can take only 0,1 values. (used when there is contention for a single resource entity). 
    • The counting semaphore which can take incremental values to certain limit (used when number of resources is limited).

  7. Question7. Write A Constant Time Consuming Statement Lot Finding Out If A Given Number Is A Power Of 2?

    Answer :

    If n is the given number, then the expression (n & (n-1)) = 0 gives the logical output depicting if it is a power of 2 or not, if (n & (n-1) == 0) printf (“The given number is a power of 2”);

  8. Question8. What Are Recursive Functions? Can We Make Them Inline?

    Answer :

    The recursive functions refer to the functions which make calls to itself before giving out the final result. These can be declared as in-line functions and the compiler will allocate the memory space intended for the first call of the function.

  9. Question9. What Is The Size Of The Int, Char And Float Data Types?

    Answer :

    The size of the char and int are always dependent on the underlying operating system or firmware. This is limited to the number of address lines in the address bus. The int usually takes up a value of 2 bytes or 4 bytes. The char can take up a space of 1 or 2 bytes. The float data type takes up a value of 4 bytes.

  10. Question10. What Does Malloc Do? What Will Happen If We Have A Statement Like Malloc(sizeof(0));

    Answer :

    Malloc is the function that is used for dynamically allocating memory to the different variables. The malloc returns a memory pointer of void type (void *). The statement malloc(sizeof(0)) returns a valid integer pointer because sizeof(0) represents the size of memory taken up by the integer value of 0. The memory allocated by memory is not automatically cleaned up by the compiler after execution of the functions and should be cleaned up by the programmer using the free() function.

  11. Question11. What Is Meant By A Forward Reference In C?

    Answer :

    The forward reference refers to the case when we point an address space of a smaller data type with a pointer of a bigger data type. This can be pictured as allocating memory in single bytes and accessing it with integer pointer as chunks of 4.

  12. Question12. What Is The Order Of Calling For The Constructors And Destructors In Case Of Objects Of Inherited Classes?

    Answer :

    The constructors are called with base class first order and the destructors are called in the child first order. That is, the if we have 2 levels of inheritance A (base)-> B (inherit 1)-> C (inherit 2) then the constructor A is called first followed by B and C. The C destructor is called first followed by B and A.

  13. Question13. Explain The Properties Of A Object Oriented Programming Language.

    Answer :

    • Encapsulation: The data that are related to the specific object are contained inside the object structure and hidden from the other entities of the environment.  
    • Polymorphism: The mechanism by which the same pointer can refer to different types of objects, which are basically linked by some generic commonality.
    •  Abstraction: Hiding the data and implementation details from the real objects. The framework of reference is still present to be used by the other objects.
    •  Inheritance: The way to take out the common features and have them as separate object entities only to be reused by the other objects in a modular fashion.

  14. Question14. What Do You Mean By Interrupt Latency?

    Answer :

    Interrupt latency refers to the time taken for the system to start the handler for the specific interrupt. The time from the time of arrival of interrupt to the time it is being handled.

  15. Question15. What Typecast Is Applied When We Have A Signed And An Unsigned Int In An Expression?

    Answer :

    The unsigned int is typecast into the signed value.

  16. Question16. How Are Variables Mapped Across To The Various Memories By The C Compiler?

    Answer :

    The compiler maintains the symbol table which has the related information of all the variable names along with the length of the allocated space, the access unit length for the pointer (type of pointer) and the starting address of the memory space.

  17. Question17. What Is A Memory Leak? What Is A Segmentation Fault?

    Answer :

    The memory leak refers to the uncleared memory may builds up across lifetime of the process. When it comes to a huge value system stalls its execution due to unavailability of the memory. The segmentation fault on the other hand refers to condition when our program tries to access a memory space that has already been freed up.

  18. Question18. What Is Isr? Can They Be Passed Any Parameter And Can They Return A Value?

    Answer :

    ISR refers to the Interrupt Service Routines. These are procedures stored at specific memory addresses which are called when certain type of interrupt occurs. The ISRs cannot return a value and they cannot be passed any parameters.

  19. Question19. A=7; B=8; X=a++-b; Printf("%d", X ); What Does This Code Give As Output?

    Answer :

    The compiler understands the statement expression a--b by taking off as much operators as it makes sense to a variable. So (a++) is taken as a parameter and then the expression becomes 8-8 which in turn gives the x value as 0. Thus the output value is 0.

  20. Question20. What Are Little Endian And Big Endian Types Of Storage? How Can You Identify Which Type Of Allocation A System Follows?

    Answer :

    The little endian memory representation allocates the least address to the least significant bit and the big endian is where the highest significant bit takes up the least addressed memory space. We can identify the system’s usage by defining an integer value and accessing it as a character.

    int p=0x2; 
    if(* (char *) &p == 0x2) printf (“little endiann”); 
    else printf (“big endiann”);

About Embedded Linux Embedded Linux Introduction Why Use Embedded Linux? Technical Reasons To Use Embedded Linux Standards Based Process Isolation And Control Peripheral Support Security-linux Commercial Reasons To Use Embedded Linux 10,000-foot Embedded Linux Development Flyover Anatomy Of An Embedded Linux System The Gnu Compiler Collection Where To Get Help Etiquette Irc Configuring The Software Environment Configuring The Software Environment Introduction Host Environment Virtual Linux Machines On Windows Cabling Avoiding An Angry Visit From It Target Emulation And Virtual Machines Target Emulation And Virtual Machines Introduction Why Target Emulation? Emulation Via Qemu Virtualization Software For X86 Hosts Starting Your Project Starting Your Project Introduction Most Boards Include A Linux Distribution What To Do After Unpacking The Board Locate The Configuration Suitability For Your Project Linux System Builder–type Projects Getting Linux For Your Board Getting Linux For Your Board Introduction Obtaining Linux From The Board Vendor Open Source Embedded Distributions Ltib Buildroot Openembedded Getting Linux From Commercial Vendors And Consultants Creating A Linux Distribution From Scratch Creating A Linux Distribution From Scratch Introduction Cross-compiler Basics Overview Of Building A Gcc Cross-compiler Getting Via Source Archives The Build Environment Binutils Kernel Headers Bootstrap (stage 1) Gcc Creating Glibc Headers Building Glibc Building The Next Gcc Building Gmp And Mpfr Building The Final Gcc Building Toolchains With Crosstool-ng Creating The Root File System Improperly Configured Board Distributing The Distribution Booting The Board Booting A Linux System Is A Three-act Play Boot Loaders In Linux Yamon Lilo Grub Kernel Startup Sysfs And Device Management Finding A Root File System Configuring The Application Development Environment Configuring The Application Development Environment Pick The Right Tool For The Job Know Your Application Software Constraints What To Use For Development Non-traditional Embedded Languages Performance And Profiling Tools Ide Application Development Getting Started On Your Application Desktop Vs. Target Hello World Getting Ready For Debugging Debugging Applications How To Start Your Application Types Of Debugging Remote Debugging Overview Debugging C And C++ Remote Debugging With Ddd Remote Debugging With Gnu Emacs Remote Debugging With Eclipse Debugging Java Instrumentation Java Instrumentation Instrumentation In Scripting Languages Kernel Configuration And Development Kernel Configuration And Development Introduction Kernel Project Layout Building The Kernel Open Source Community Real Time Real Time Introduction Real-time Implementation In Linux Real-time Programming Practices Common Hardware Pitfalls Using Open Source Software Projects Using Open Source Software Projects Introduction Using Open Source Packages Using Subversion Using Git Using Mercurial Creating The Script Gaming The Cache How To Install Linux Embedded Systems Setting Other Configure Options Configuration Process For Non-automake Projects Commonly Used Projects Busybox Busybox Introduction How A Busybox-based System Is Structured Building A Busybox-based System Build Install Copy Libraries Default Init Scripts What Makes Busybox Small? Creating Your Own Applet Add The Applet To The Make File Register Applet With Busybox Build And Verify Getting Help System Design System Design Introduction The Big Picture Configuring The Boot Loader And Kernel Selecting A Root File System Assembling A Root File System Linux Embedded Systems Security System Tuning System Tuning Introduction Reducing The Size Of The Root File System Mounting Small File Systems Reducing The Size Of The Kernel Measuring Using The Bloat-o-meter Minimizing Boot Time No Kernel Modules Replacing Initialization Scripts Inittab Abuse Deploying Applications Deploying Applications Introduction Deployment For Embedded Devices Deployment Strategies And Tactics What Does A Boot Loader? Deployment Root File Systems Handling Field Updates Handling Field Updates Introduction Root File System Updates Rpm Dpkg Ipkg Kernel Updates Update Kernel Modules Forklift Upgrade Field Update Failures Embedded Systems Interview Questions Embedded Systems Practice Tests