Embedded Software Engineer
200+ Embedded Software Engineer Interview Questions and Answers

Asked in Sedemac Mechatronics

Q. Explain how the static keyword works when a variable is declared static within a function.
Static variables retain their value between function calls, allowing persistent state across invocations.
Static variables are initialized only once, at the start of the program.
They maintain their value between function calls, unlike local variables.
Example: If 'static int tmp = 0;' is in a function, 'tmp' will keep its value after the function exits.
If the function increments 'tmp', the next call will see the updated value.

Asked in VVDN Technologies

Q. What is conductor,insulator and semi conductor?
Conductor, insulator, and semiconductor are materials that conduct electricity in different ways.
Conductors allow electricity to flow through them easily, such as copper and aluminum wires.
Insulators do not allow electricity to flow through them easily, such as rubber and plastic.
Semiconductors have properties of both conductors and insulators, such as silicon and germanium.
The conductivity of a material can be determined by its band gap, which is the energy required for an e...read more
Asked in Iasys Technology Solutions

Q. What is semaphore and mutex, binary semaphore, thread and process
Semaphores and mutex are synchronization mechanisms in multithreading. Threads are lightweight processes, while processes are independent execution units.
Semaphore: used to control access to a shared resource by multiple threads. Example: controlling access to a printer in a networked system.
Mutex: similar to a semaphore but only allows one thread to access a resource at a time. Example: protecting a critical section of code.
Binary semaphore: a semaphore with only two states,...read more

Asked in Votary Softech Solutions

Q. What are the segments in stacks and heap?
Stack and heap are segments of memory used in programming. Stack is used for static memory allocation, while heap is used for dynamic memory allocation.
Stack is used for static memory allocation, where memory is allocated and deallocated in a last-in-first-out order.
Heap is used for dynamic memory allocation, where memory is allocated and deallocated in any order.
Examples: Stack is used for function call stack, local variables, while heap is used for dynamically allocated mem...read more

Asked in Intel

Q. What are the detailed steps and intermediate states in a compilation process?
Compilation involves multiple steps like preprocessing, compilation, assembly, and linking.
Preprocessing: Includes header file inclusion, macro expansion, and conditional compilation.
Compilation: Translates source code into assembly code specific to the target architecture.
Assembly: Converts assembly code into machine code.
Linking: Combines object files and libraries to generate an executable file.


Q. What happens when we use volatile and const at the same time?
When volatile and const are used together, the variable is treated as read-only and its value can change unexpectedly.
Using volatile and const together is rare but can be useful for memory-mapped hardware registers.
The volatile keyword tells the compiler that the variable can be changed unexpectedly, while const ensures the variable is read-only.
Example: const volatile int * const ptr = (int *)0x1234; // pointer to a read-only volatile integer at memory address 0x1234
Embedded Software Engineer Jobs




Asked in H&M

Q. Have you studied graphical designing?
NO
No, I did not study graphical designing.
My focus has been on embedded software engineering.
I have experience in developing software for embedded systems, such as microcontrollers and IoT devices.
I have worked on projects involving real-time operating systems, device drivers, and communication protocols.
While I may not have formal training in graphical designing, I have a strong understanding of software development principles and can work with graphical interfaces if requir...read more
Asked in Iasys Technology Solutions

Q. Introduction, in which programming language are you comfortable( 45 min)
I am comfortable with C, C++, and Python for embedded software development.
Proficient in C for low-level programming
Experienced in C++ for object-oriented design
Skilled in Python for scripting and automation tasks
Share interview questions and help millions of jobseekers 🌟

Asked in HCLTech

Q. 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

Asked in ACL Digital

Q. Number of Wires Required for SPI Communication and what re they?
SPI communication requires 4 wires: MOSI, MISO, SCK, and SS for full-duplex data transfer.
MOSI (Master Out Slave In): Line for data sent from master to slave.
MISO (Master In Slave Out): Line for data sent from slave to master.
SCK (Serial Clock): Clock signal generated by the master to synchronize data transfer.
SS (Slave Select): Line used by the master to select the active slave device.

Asked in Kloudrac Softwares

Q. What are the storage classes in C?
Storage classes in C define the scope and lifetime of variables.
Auto: Default storage class for local variables
Register: Requests a variable to be stored in a register for faster access
Static: Preserves the value of a variable between function calls
Extern: Allows access to a variable declared in another file
Thread Local Storage (TLS): Provides each thread with its own copy of a variable

Asked in M B Control Systems

Q. What are threads? How do you keep resources synchronised among all running threads?
Threads are lightweight processes that enable concurrent execution in software, requiring synchronization for shared resources.
Threads allow multiple tasks to run simultaneously, improving efficiency.
Synchronization mechanisms include mutexes, semaphores, and condition variables.
Example: A web server using threads to handle multiple client requests concurrently.
Mutexes prevent data races by allowing only one thread to access a resource at a time.
Semaphores can control access ...read more

Asked in M B Control Systems

Q. How do you read values from Adc? Calculate it sense value and demonstrate best ways to calibrate it.
Reading ADC values involves sampling, converting, and calibrating for accurate sensor measurements.
1. Configure ADC: Set the ADC resolution and reference voltage according to the application requirements.
2. Start Conversion: Trigger the ADC to start converting the analog signal to a digital value.
3. Read Value: Use the appropriate register or function to read the converted digital value from the ADC.
4. Calculate Sensor Value: Apply the formula based on the ADC resolution and ...read more

Asked in Continental

Q. Latest trends in the area of brake control systems development
The latest trends in brake control systems development include electrification, integration with ADAS, and use of AI/ML algorithms.
Electrification of brake systems to improve efficiency and reduce emissions
Integration with ADAS for enhanced safety features such as automatic emergency braking
Use of AI/ML algorithms for predictive maintenance and improved performance
Development of brake-by-wire systems for greater control and flexibility
Implementation of cybersecurity measures ...read more

Asked in VVDN Technologies

Q. Most used semiconductor in electronics
The most used semiconductor in electronics is silicon.
Silicon is abundant and has excellent semiconductor properties.
It is used in microprocessors, memory chips, and other electronic components.
Other semiconductors like germanium and gallium arsenide are also used in specialized applications.
Silicon is preferred due to its low cost, high reliability, and ease of manufacturing.
Advancements in silicon technology have led to the development of smaller and more powerful electroni...read more

Asked in ZF India Technology Center

Q. What is the difference between C and Embedded C?
Embedded C is a subset of C language used for programming embedded systems.
Embedded C has limited resources and memory compared to C
Embedded C has specific libraries and functions for hardware control
Embedded C has specific syntax for interrupt handling and low-level programming
C is a general-purpose language while Embedded C is specific to embedded systems
Example: C can be used for desktop applications while Embedded C is used for programming microcontrollers

Asked in Google

Q. Describe a time when you had a conflict with your team.
I resolved a conflict over design choices in a firmware project by facilitating open communication and finding a compromise.
Identified differing opinions on the choice of communication protocol for a device.
Organized a meeting to discuss the pros and cons of each option.
Encouraged team members to present their viewpoints and concerns.
Facilitated a brainstorming session to explore alternative solutions.
Reached a consensus by combining elements from both proposed protocols.

Asked in Navyug Infosolutions

Q. What is the cylinder-like structure found on laptop charging cables?
The cylinder-like structure in the charging wires of a laptop is a ferrite bead.
Ferrite beads are used to suppress high frequency noise in electronic circuits.
They are typically cylindrical or bead-shaped and made of ferrite material.
Ferrite beads are commonly found on charging cables to reduce electromagnetic interference.
They work by absorbing and dissipating high frequency noise signals.
Example: The cylinder-like structure on the charging wire of a laptop is a ferrite bead...read more
Asked in Smartfill Solutions

Q. What do you do when someone gives you new technology?
I research and learn about the technology to understand its capabilities and limitations.
Research the technology to understand its capabilities and limitations
Learn how to use the technology effectively
Experiment with the technology to gain hands-on experience
Collaborate with others to share knowledge and insights
Provide feedback to the person who gave me the technology

Asked in Tata Elxsi

Q. Basic IPC concepts used in operating system
IPC stands for Inter-Process Communication and is used for communication between processes in an operating system.
Shared memory
Message passing
Pipes
Sockets
Remote Procedure Calls (RPC)
Semaphores
Mutexes

Asked in Innominds Software

Q. Write C++ code to find an element in an array using a binary search tree.
C++ code for binary search in an array of strings
Sort the array of strings in lexicographical order
Set the lower and upper bounds of the search range
Calculate the middle index and compare the search string with the middle element
If the search string is less than the middle element, update the upper bound
If the search string is greater than the middle element, update the lower bound
Repeat until the search string is found or the search range is exhausted

Asked in VVDN Technologies

Q. Write a program to implement a 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

Asked in VVDN Technologies

Q. Explain storage classes with respect to the memory layout of a C binary.
Storage classes in C determine the scope, lifetime, and visibility of variables.
Storage classes include auto, register, static, extern, and typedef.
Auto variables are stored on the stack and have local scope.
Register variables are stored in CPU registers for faster access.
Static variables have global scope but limited visibility.
Extern variables are declared in one file and can be used in another.
Typedef is used to create new data types for better code readability.

Asked in ACL Digital

Q. Under which standard library header do malloc() and free() fall?
malloc() and free() are functions for dynamic memory allocation in C, found in the stdlib.h header file.
malloc() allocates a specified number of bytes and returns a pointer to the allocated memory.
free() deallocates memory that was previously allocated by malloc(), preventing memory leaks.
Example of malloc: int *arr = (int *)malloc(10 * sizeof(int)); // allocates memory for an array of 10 integers.
Example of free: free(arr); // deallocates the memory allocated for arr.

Asked in VVDN Technologies

Q. What are header files?
Header files contain declarations of functions, variables, and data structures used in a program.
Header files are included at the beginning of a source code file using #include directive
They provide information about the functions and variables used in the program
They help in avoiding redefinition of functions and variables
Examples of header files are stdio.h, math.h, string.h, etc.

Asked in Knorr-Bremse

Q. 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.

Asked in UNO Minda

Q. What do you know about embedded systems?
Embedded systems are computer systems designed to perform specific tasks within a larger system.
Embedded systems are found in a wide range of devices, from simple household appliances to complex medical equipment.
They typically have limited processing power, memory, and storage compared to general-purpose computers.
They often run on real-time operating systems and require specialized programming languages and tools.
Examples of embedded systems include pacemakers, automotive c...read more

Asked in Valeo

Q. What is the difference between a structure and a union?
Structure is a collection of variables of different data types while union is a collection of variables of same data type.
Structure allocates memory for all its variables while union allocates memory for only one variable at a time.
Structure is used when we want to store different types of data while union is used when we want to store only one type of data at a time.
Structure is accessed using dot (.) operator while union is accessed using arrow (->) operator.
Example of stru...read more

Asked in Tata Advanced Systems

Q. Program on Queue, difference between structure and class
A queue is a data structure that follows the FIFO (First In First Out) principle. Structure and class are similar in C++, but classes have additional features like data hiding and inheritance.
In C++, a structure is a user-defined data type that can hold different types of data. It is used to group related data together. Example: struct Queue { int front, rear; int capacity; int* array; };
A class in C++ is similar to a structure but with additional features like data hiding an...read more

Asked in VVDN Technologies

Q. Write a program that reverses a string without using any of the string library functions.
Program to reverse a string without using string library functions.
Create a function that takes an input string as an array of characters.
Use two pointers, one at the beginning and one at the end of the array, swap the characters and move the pointers towards each other until they meet.
Handle edge cases like empty string or strings with odd number of characters.
Interview Questions of Similar Designations
Interview Experiences of Popular Companies





Top Interview Questions for Embedded Software Engineer Related Skills



Reviews
Interviews
Salaries
Users

