Embedded Software Engineer

100+ Embedded Software Engineer Interview Questions and Answers

Updated 26 Feb 2025

Q51. Write a program to implement linked list using dynamic memory allocation.

Ans.

Program to implement linked list using dynamic memory allocation

  • Allocate memory for each node using malloc() function

  • Use pointers to link nodes together

  • Free memory using free() function to avoid memory leaks

Q52. Why do you like to do embedded systems to develop?

Ans.

I enjoy developing embedded systems because of the challenge and the opportunity to work with hardware.

  • I like the challenge of working with limited resources and optimizing code for performance.

  • I enjoy the opportunity to work with hardware and see the direct impact of my software on the physical world.

  • Embedded systems are used in a wide range of industries, from automotive to aerospace, providing opportunities for diverse and interesting projects.

  • I appreciate the ability to w...read more

Q53. Different types of pointers, volatile variable, storage classes, Static and extern keywords, ISR,

Ans.

Different types of pointers, volatile variable, storage classes, Static and extern keywords, ISR

  • Pointers: Null pointer, void pointer, function pointer

  • Volatile variable: Used to indicate that a variable may be changed by external factors

  • Storage classes: auto, register, static, extern

  • Static keyword: Used to declare variables that are only accessible within the same file

  • Extern keyword: Used to declare variables that are defined in another file

  • ISR: Interrupt Service Routine, a fu...read more

Q54. How does a slave handles two masters in embedded system

Ans.

A slave in an embedded system can handle two masters by using a bus arbitration mechanism.

  • The slave device can prioritize requests from one master over the other based on a predefined protocol.

  • The slave can use a bus arbitration technique such as round-robin or priority-based arbitration to manage access from multiple masters.

  • The slave may have separate buffers or registers to store data from each master to prevent data corruption or loss.

  • The slave can communicate with both m...read more

Are these interview questions helpful?

Q55. 2.What are preprocessor directives?

Ans.

Preprocessor directives are commands used by the preprocessor to perform tasks before the actual compilation process begins.

  • Preprocessor directives start with a # symbol.

  • They are used to include header files, define constants, and perform conditional compilation.

  • Examples include #include, #define, #ifdef, #ifndef, #endif, #pragma, etc.

Q56. write a shell programm to list last 3 files recently opened

Ans.

A shell program to list the last 3 recently opened files.

  • Use the 'ls' command with the '-lt' option to list files in descending order of modification time.

  • Pipe the output of 'ls' to 'head' command to get the first 3 lines.

  • Use 'awk' command to extract only the file names from the 'ls' output.

Share interview questions and help millions of jobseekers 🌟

man-with-laptop

Q57. What is the property of diode?

Ans.

Diode is an electronic component that allows current to flow in one direction only.

  • Diode has two terminals - anode and cathode.

  • It has a forward voltage drop and a reverse breakdown voltage.

  • It is commonly used in rectifiers, voltage regulators, and signal demodulators.

Q58. Write a code for the Reverse Linked list

Ans.

Code to reverse a linked list

  • Create three pointers: prev, current, next

  • Iterate through the linked list, updating pointers accordingly

  • Set the next of current to prev, move prev and current pointers forward

  • Update the head of the linked list to the last node visited

Embedded Software Engineer Jobs

Embedded SW Engineer 4-7 years
Caterpillar Brazil
4.3
Chennai
Embedded SW Engineer 1-6 years
CATERPILLAR INDIA PRIVATE LTD
4.3
Chennai
Embedded SW Engineer 5-9 years
Apple India Pvt Ltd
4.3
Bangalore / Bengaluru

Q59. explain 8051 registers assembly

Ans.

8051 registers are used for I/O operations and control of the microcontroller.

  • 8051 has 4 register banks, each with 8 registers

  • Registers are used for arithmetic, logical, and bit manipulation operations

  • Special function registers (SFRs) control the microcontroller's peripherals

  • Examples of SFRs include P0 for I/O operations and TMOD for timer control

Q60. what are embedded boards that i worked on

Ans.

I have worked on various embedded boards including Raspberry Pi, Arduino, and BeagleBone.

  • Raspberry Pi

  • Arduino

  • BeagleBone

Q61. How do you copy files from and device to other

Ans.

You can copy files from one device to another by using file transfer protocols like FTP, SCP, or by physically transferring the files via USB or external storage devices.

  • Use FTP (File Transfer Protocol) to transfer files over a network

  • Use SCP (Secure Copy Protocol) for secure file transfers

  • Physically transfer files by connecting devices via USB or using external storage devices like USB drives or SD cards

Q62. Explain oops concept, pillars of c++, differences

Ans.

OOPs concept in C++ involves encapsulation, inheritance, polymorphism, and abstraction.

  • Encapsulation: Bundling data and methods that operate on the data into a single unit (class). Example: class Car { private: int speed; public: void accelerate() { speed += 10; } };

  • Inheritance: Allows a class to inherit properties and behavior from another class. Example: class ElectricCar : public Car { public: void chargeBattery() { batteryLevel = 100; } };

  • Polymorphism: Ability to present ...read more

Q63. Write a code for string reversal.

Ans.

Code to reverse a string in C++ using pointers.

  • Use two pointers, one pointing to the start of the string and the other pointing to the end.

  • Swap the characters at the two pointers and move them towards each other until they meet in the middle.

  • Repeat the process until the entire string is reversed.

Q64. Draw a flow chart for the project you have completed.

Ans.

Flow chart for a project on implementing a temperature control system

  • Start with initializing the system

  • Check the current temperature

  • If temperature is too high, activate cooling system

  • If temperature is too low, activate heating system

  • Continue monitoring temperature and adjusting as needed

  • End the system when temperature is within desired range

Q65. How CAN protocol works? (must remember)

Ans.

CAN protocol is a communication protocol used in embedded systems for reliable and efficient data transmission.

  • CAN protocol stands for Controller Area Network protocol.

  • It is a serial communication protocol used for real-time applications.

  • CAN protocol uses a differential signaling scheme to transmit data.

  • It supports multi-master and multi-slave communication.

  • CAN protocol uses message-based communication with a priority-based arbitration scheme.

  • It provides error detection and e...read more

Q66. How to make BLDC driver module?

Ans.

A BLDC driver module can be made by designing a circuit that controls the commutation of the BLDC motor based on sensor feedback.

  • Design a circuit that includes power transistors to drive the motor phases.

  • Implement a control algorithm to determine the commutation sequence based on sensor feedback.

  • Use Hall effect sensors or encoder feedback to detect the rotor position.

  • Apply PWM signals to the power transistors to control the motor speed and direction.

  • Consider safety features l...read more

Q67. Explain the critical differences between a Structure and a Union.

Ans.

Structures are used to store different data types under one name, while unions allow different data types to be stored in the same memory location.

  • Structures allocate memory for each member separately, while unions share the same memory location for all members.

  • Structures are used when all members need to be accessed independently, while unions are used when only one member needs to be accessed at a time.

  • Example: struct Person { char name[20]; int age; }; union Data { int num...read more

Q68. Puzzle: min no of ways to find heavier stone of 8 stones(7 weigh same).

Ans.

Use a balance scale to compare groups of stones to find the heavier one.

  • Divide the stones into 3 groups of 3, 3, and 2 stones.

  • Weigh the 3 groups of 3 stones against each other.

  • If one group is heavier, weigh 2 of those stones against each other to find the heaviest one.

  • If the groups of 3 stones weigh the same, weigh the remaining 2 stones to find the heaviest one.

Q69. Write a C program to add two elements without using third variable.

Ans.

Add two elements without using a third variable in C program.

  • Use bitwise XOR operation to add two elements without carry

  • Store the result in one of the variables

  • Example: int a = 5, b = 3; a = a ^ b; b = a ^ b; a = a ^ b; // a=3, b=5

Q70. Write a C program to arrange the elements in ascending order.

Ans.

C program to arrange elements in ascending order

  • Use bubble sort algorithm to compare adjacent elements and swap if necessary

  • Iterate through the array multiple times until no more swaps are needed

  • Ensure proper error handling for input validation

  • Example: int arr[] = {4, 2, 7, 1, 5};

Q71. Define software for embedded?

Ans.

Software designed to run on embedded systems with limited resources and specific functions.

  • Embedded software is tailored to the specific hardware it runs on.

  • It is often written in low-level languages like C or assembly.

  • It must be efficient and optimized for limited resources like memory and processing power.

  • Examples include firmware for a smart thermostat or a car's engine control unit.

Q72. puzzle: find heavier ball out of 8 (7 are identical) using min no of weighs on a scale

Ans.

Use 2 weighs to find the heavier ball out of 8 (7 identical) on a scale

  • Divide the 8 balls into 3 groups: 3 balls, 3 balls, and 2 balls

  • Weigh the 2 groups of 3 balls against each other

  • If one group is heavier, weigh 2 balls from that group to find the heavier ball

  • If both groups of 3 balls weigh the same, weigh the remaining 2 balls to find the heavier one

Q73. Contact dictionary- data structure used and time complexity

Ans.

Contact dictionary can be implemented using hash table for fast lookups with O(1) time complexity.

  • Use a hash table to store contacts with keys as names and values as contact information.

  • Example: { 'John Doe': '555-1234', 'Jane Smith': '555-5678' }

  • Time complexity for searching, inserting, and deleting contacts is O(1) with a hash table.

Q74. What is storage class in C?

Ans.

Storage class in C determines the scope, visibility, and lifetime of variables.

  • C has four storage classes: auto, register, static, and extern.

  • Auto storage class is the default and is used for local variables.

  • Register storage class is used for variables that should be stored in CPU registers for faster access.

  • Static storage class is used for variables that retain their values between function calls.

  • Extern storage class is used to declare variables that are defined in other fil...read more

Q75. Prime numbers program

Ans.

A program to find prime numbers

  • Start with a loop to iterate through numbers

  • Check if each number is divisible by any number less than itself

  • If not, add it to a list of prime numbers

Q76. What is the difference between structure and union

Ans.

Structure is a data type that allows storing different data types in a single variable, while union is a data type that allows storing only one value at a time.

  • Structure allows storing multiple data types in a single variable, while union allows storing only one value at a time

  • In structure, each member has its own memory location, while in union all members share the same memory location

  • Example: struct Person { char name[20]; int age; }; union Data { int num; float value; };

  • S...read more

Q77. What is the volatile keyword and it's purpose

Ans.

The volatile keyword is used in C/C++ to indicate that a variable may be changed unexpectedly by external factors.

  • Used to prevent compiler optimizations that assume the variable's value will not change.

  • Commonly used for variables shared between threads or accessed by interrupt service routines.

  • Example: volatile int sensorValue; // variable updated by hardware interrupts

Q78. Write a example program to single linked list with insertion and deletion of nodes

Ans.

Example program for single linked list with insertion and deletion of nodes

  • Create a struct for the node with data and a pointer to the next node

  • Implement functions for insertion at the beginning, end, and at a specific position

  • Implement functions for deletion of a node by value or position

Q79. Strengths and weakness with examples

Ans.

Strengths in problem-solving and teamwork, weakness in time management

  • Strength: Strong problem-solving skills - able to analyze complex issues and find effective solutions

  • Strength: Excellent teamwork - able to collaborate with others to achieve common goals

  • Weakness: Time management - sometimes struggle to prioritize tasks and meet deadlines

Q80. What is DeadLock in OS

Ans.

Deadlock is a situation in which two or more competing actions are each waiting for the other to finish, preventing any of them from completing.

  • Occurs in multitasking environments

  • Caused by resource contention

  • Can be resolved using techniques like deadlock prevention, deadlock avoidance, and deadlock detection

  • Example: Process A holds Resource X and waits for Resource Y, while Process B holds Resource Y and waits for Resource X

Q81. Difference between Call by reference and call by value

Ans.

Call by value passes a copy of the variable, while call by reference passes the actual variable itself.

  • Call by value passes a copy of the variable, so changes made to the parameter inside the function do not affect the original variable.

  • Call by reference passes the actual variable itself, so changes made to the parameter inside the function affect the original variable.

  • In call by value, the function receives a copy of the variable's value. In call by reference, the function r...read more

Q82. What is diode and where it is used?

Ans.

A diode is a semiconductor device that allows current to flow in one direction only.

  • Diodes are used in rectifiers to convert AC to DC.

  • They are used in voltage regulators to maintain a constant voltage.

  • Diodes are also used in signal processing, such as in radio frequency detectors.

  • Light-emitting diodes (LEDs) are used in displays, indicators, and lighting.

  • Zener diodes are used for voltage regulation and protection against voltage spikes.

Q83. 3.Write a macro code to set the bit.

Ans.

Macro code to set a bit in embedded software

  • Define a macro using bitwise OR operator to set a specific bit in a register

  • Example: #define SET_BIT(reg, bit) ((reg) |= (1 << (bit)))

  • Call the macro with the register and bit number as arguments

Q84. What is isr routine in c programming

Ans.

ISR routine is a function that is executed in response to an interrupt signal.

  • ISR stands for Interrupt Service Routine

  • It is used to handle hardware interrupts

  • ISR routines are written in C language

  • They are executed when an interrupt signal is received

  • ISR routines should be short and efficient

  • They should not block other interrupts

  • Examples of ISR routines include handling keyboard input or timer interrupts

Q85. What is embedded C and C differences? explain volatile keyword?

Ans.

Embedded C is a subset of the C programming language used for programming embedded systems. The volatile keyword is used to indicate that a variable may change unexpectedly.

  • Embedded C is a subset of the C programming language that is optimized for embedded systems.

  • It typically has limited resources and requires efficient code execution.

  • Embedded C may have specific syntax and libraries tailored for the target hardware.

  • The volatile keyword is used to indicate that a variable ma...read more

Q86. Difference between enum and Struct

Ans.

Enum is used to define a set of named constants while struct is used to define a collection of variables of different data types.

  • Enum is used to define a set of named constants, while struct is used to define a collection of variables of different data types.

  • Enum values are typically integers, while struct members can be of any data type.

  • Enums are used when you have a fixed set of values that won't change, while structs are used to group related variables together.

  • Example: en...read more

Q87. Different Function Call Methods

Ans.

Different function call methods include pass by value, pass by reference, and pass by pointer.

  • Pass by value: Copies the value of the actual parameter into the formal parameter of the function.

  • Pass by reference: Passes a reference to the memory location of the actual parameter.

  • Pass by pointer: Passes the memory address of the actual parameter.

Q88. Moral Motivation vs Monetary Motivation

Ans.

Moral motivation is driven by personal values and beliefs, while monetary motivation is driven by financial incentives.

  • Moral motivation is based on doing what is right or ethical, regardless of financial gain.

  • Monetary motivation involves being driven by financial rewards or incentives.

  • Some individuals may prioritize moral motivation over monetary motivation, while others may prioritize financial gain.

  • Examples: A person may choose to work for a non-profit organization out of a...read more

Q89. Program to find factorial of a number

Ans.

Program to find factorial of a number

  • Use a loop to multiply the number with all the numbers less than it

  • Handle the case when the number is 0 or 1 separately

  • Use recursion to find factorial of a number

Q90. Explain storage classes concept in depth?

Ans.

Storage classes in C define the scope and lifetime of variables.

  • Storage classes include auto, register, static, extern, and typedef.

  • Auto variables are local to the block and have automatic storage duration.

  • Register variables are stored in CPU registers for faster access.

  • Static variables retain their value between function calls.

  • Extern variables are declared outside any function and can be accessed by other files.

  • Typedef is used to create new data types.

Q91. what is pointer and it's type

Ans.

A pointer is a variable that stores the memory address of another variable.

  • Types of pointers include null pointers, void pointers, function pointers, and array pointers.

  • Example: int *ptr; // pointer to an integer variable

  • Example: char *str = 'hello'; // pointer to a character array

Q92. What do you know about watchdogs?

Ans.

Watchdogs are hardware or software timers that monitor the operation of a system and reset it if it fails to respond within a certain time.

  • Watchdogs are used to ensure the reliability and safety of embedded systems.

  • They can be implemented as hardware or software timers.

  • Watchdogs monitor the system by periodically checking for a response or heartbeat signal.

  • If the system fails to respond within a specified time, the watchdog timer triggers a system reset.

  • Examples of watchdogs ...read more

Q93. Find nth largest number in a jumbled array

Ans.

Use sorting to find the nth largest number in a jumbled array.

  • Sort the array in descending order.

  • Access the nth element in the sorted array to find the nth largest number.

Q94. Application of zener diode

Ans.

Zener diode is used as a voltage regulator and to protect circuits from overvoltage.

  • Zener diode maintains a constant voltage across its terminals when reverse biased

  • It is used in voltage regulator circuits to provide a stable output voltage

  • Zener diodes are also used to protect circuits from overvoltage by shunting excess voltage to ground

  • They are commonly used in power supplies, voltage regulators, and surge protectors

Q95. Explain about biasing

Ans.

Biasing is the process of providing a DC voltage or current to establish a desired operating point for electronic components.

  • Biasing is used to ensure that electronic components operate within their specified range.

  • It involves setting the appropriate voltage or current levels to achieve the desired performance.

  • Biasing is commonly used in transistors, amplifiers, and other electronic circuits.

  • There are different types of biasing techniques such as fixed bias, self-bias, and vo...read more

Q96. explain recursion with an example

Ans.

Recursion is a process where a function calls itself until a base condition is met.

  • Recursion involves breaking down a problem into smaller subproblems and solving them recursively

  • It requires a base case to stop the recursion and prevent infinite looping

  • Example: Factorial function - n! = n * (n-1)!, where the function calls itself with n-1 until n=1

Q97. How did you hear about ASML?

Ans.

I heard about ASML through a job search website.

  • Job search website

  • Online job board

  • Referral from a friend who works at ASML

Q98. How do you debug with gdb?

Ans.

Debugging with gdb involves setting breakpoints, stepping through code, inspecting variables, and analyzing memory.

  • Set breakpoints at specific lines of code using 'break' command

  • Step through code using 'next' or 'step' commands

  • Inspect variables using 'print' command

  • Analyze memory using 'x' command

  • Use 'continue' command to resume execution

Q99. What is static, global,local variables?

Ans.

Static, global, and local variables are different types of variables in programming with different scopes and lifetimes.

  • Static variables have a fixed memory location and retain their value between function calls.

  • Global variables are accessible throughout the entire program.

  • Local variables are only accessible within the block of code where they are declared.

Q100. What is your experience with telemetry?

Ans.

I have extensive experience working with telemetry systems in embedded software development.

  • Designed and implemented telemetry systems for monitoring and transmitting data in real-time

  • Utilized protocols like MQTT, CoAP, and HTTP for communication between embedded devices and servers

  • Integrated sensors and actuators to collect and transmit data for remote monitoring and control

  • Worked on optimizing telemetry data transmission for efficiency and reliability

  • Experience with telemet...read more

Previous
1
2
3
4
Next
Interview Tips & Stories
Ace your next interview with expert advice and inspiring stories

Interview experiences of popular companies

4.1
 • 5k Interviews
3.7
 • 4.8k Interviews
3.5
 • 3.8k Interviews
4.2
 • 331 Interviews
3.8
 • 296 Interviews
3.6
 • 284 Interviews
View all

Calculate your in-hand salary

Confused about how your in-hand salary is calculated? Enter your annual salary (CTC) and get your in-hand salary

Embedded Software Engineer Interview Questions
Share an Interview
Stay ahead in your career. Get AmbitionBox app
qr-code
Helping over 1 Crore job seekers every month in choosing their right fit company
65 L+

Reviews

4 L+

Interviews

4 Cr+

Salaries

1 Cr+

Users/Month

Contribute to help millions

Made with ❤️ in India. Trademarks belong to their respective owners. All rights reserved © 2024 Info Edge (India) Ltd.

Follow us
  • Youtube
  • Instagram
  • LinkedIn
  • Facebook
  • Twitter