Embedded Software Engineer
100+ Embedded Software Engineer Interview Questions and Answers
Q51. Write a program to implement linked list using dynamic memory allocation.
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?
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,
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
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
Q55. 2.What are preprocessor directives?
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
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 🌟
Q57. What is the property of diode?
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
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
Q59. explain 8051 registers assembly
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
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
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
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.
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.
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)
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?
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.
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).
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.
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.
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?
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
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
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?
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
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
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
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
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
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
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
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?
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.
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
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?
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
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
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
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
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?
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
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?
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
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
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
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
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?
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?
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?
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?
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
Interview Questions of Similar Designations
Top Interview Questions for Embedded Software Engineer Related Skills
Interview experiences of popular companies
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
Reviews
Interviews
Salaries
Users/Month