Embedded Software Engineer Interview Questions And Answers

Download Embedded Software Engineer Interview Questions and Answers PDF

Strengthen your Embedded Software Engineer interview skills with our collection of 100 important questions. Our questions cover a wide range of topics in Embedded Software Engineer to ensure you're well-prepared. Whether you're new to the field or have years of experience, these questions are designed to help you succeed. Download the free PDF now to get all 100 questions and ensure you're well-prepared for your Embedded Software Engineer interview. This resource is perfect for in-depth preparation and boosting your confidence.

100 Embedded Software Engineer Questions and Answers:

Embedded Software Engineer Job Interview Questions Table of Contents:

Embedded Software Engineer Job Interview Questions and Answers
Embedded Software Engineer Job Interview Questions and Answers

1 :: Tell me what is the need for DMAC in ES?

Direct memory access is mainly used to overcome the disadvantages of interrupt and program controlled I/O.
DMA modules usually take the control over from the processor and perform the memory operations and this is mainly because to counteract the mismatch in the processing speeds of I/O units and the processor. This is comparatively faster.
It is an important part of any embedded systems,and the reason for their use is that they can be used for bursty data transfers instead of single byte approaches.
It has to wait for the systems resources such as the system bus in case it is already in control of it.
Read More

2 :: Tell me how to create a child process in linux?

☛ Prototype of the function used to create a child process is pid_t fork(void);
☛ Fork is the system call that is used to create a child process. It takes no arguments and returns a value of type pid_t.
☛ If the function succeeds it returns the pid of the child process created to its parent and child receives a zero value indicating its successful creation.
☛ On failure, a -1 will be returned in the parent's context, no child process will be created, and errno will be set.
☛ The child process normally performs all its operations in its parents context but each process independently of one nother and also inherits some of the important attributes from it such as UID, current directory, root directory and so on.
Read More

3 :: Tell me what are the commonly found errors in Embedded Systems?

☛ Damage of memory devices due to transient current and static discharges.
☛ Malfunctioning of address lines due to a short in the circuit.
☛ Malfunctioning of Data lines.
☛ Some memory locations being inaccessible in storage due to garbage or errors.
☛ Improper insertion of Memory devices into the memory slots.
☛ Faulty control signals.
Read More

4 :: Tell me what are the functional requirements that are used in the embedded systems?

Functional requirements specifies the discrete and the logic to provide the services, functionality, features and the implementation that is independent from the components that are getting used in it. These are used to represent the constraints that are in the form of physical and define the probability to specify the components discretely from each other. The functional requirements are given for the hardware as well that gives more performance and measures the physical resources that are present like clock frequency, latency, etc. Functional requirements allow the system and hardware machines to transfer the functions with the non-deterministic probability.
Read More

5 :: Explain me what is the main function of Multiplexed Address/Data Bus?

The memory bus is used to carry the address and the data from the processor to the memory so that it can be easily accessed by the devices. These buses carry the value of the data that has to be passed for the proper functioning. The use of the technique “Time division multiplexing” is used that allow the reading and writing of the data to be done from the same bus line. This requires lots of time to be given to the bus so that it can complete the read and write operation of the data in the memory. This is very expensive process due to the data transfer technique that is used in between the processor and the memory. This also gives the concept of cache and provides algorithms to solve the problems occurring in read and writes operations.
Read More

6 :: Tell me how does the interrupts handle by using the threads?

The interrupts that comes in between the input/output operations gets detected when the input/output devices are ready. The interrupt never gets handled directly rather, it sends the interrupt signal to the thread to the input/output device that is ready to allow the thread to take necessary actions. The thread uses the signaling concept that allows the initialization to be done using the semaphore that keeps the states updated and handle the interrupt in an easy way. The input/output device getting the request and it also passes the semaphore to handle. The input/output device takes the semaphore that is ready. The thread is having the minimum latency that uses the first level interrupt handler to handle the interrupts completely. It allows the priority of the thread to be set and it doesn’t allow the context to be change as well.
Read More

7 :: Please write a program to show the functionality of Power-save super loop?

To check the loop time of the program the power-save super loop is used. If the average loop time of the program is 1ms, and it requires only few instructions to be checked every second the program will save the state and build a delay that will be caused to read the input on every loop and it saves lot of energy or the power that needs to be used. The function that is required to be performed to show the functionality is:
Main_Function()
Function
{
Initialization();
Do_Forever
{
Check_Status();
Do_Calculations();
Output_Response();
Delay_For_Next_Loop();
}
}
Read More

8 :: Tell me what is interrupt latency? How can you reduce it?

It is the time taken to return from the interrupt service routine post handling a specific interrupt. Interrupt latency can be reduced by writing minor ISR routines.
Read More

9 :: Do you know what is the use of volatile keyword?

The C's volatile keyword is a qualifier that tells the compiler not to optimize when applied to a variable. By declaring a variable volatile, we can tell the compiler that the value of the variable may change any moment from outside of the scope of the program. A variable should be declared volatile whenever its value could change unexpectedly and beyond the comprehension of the compiler.

In those cases it is required not to optimize the code, doing so may lead to erroneous result and load the variable every time it is used in the program. Volatile keyword is useful for memory-mapped peripheral registers, global variables modified by an interrupt service routine, global variables accessed by multiple tasks within a multi-threaded application.
Read More

10 :: Explain how to reduce interrupt latency?

Interrupt latency can be minimized by writing short ISR routine and by not delaying interrupts for more time.
Read More

11 :: Tell me what are inline functions?

The ARM compilers support inline functions with the keyword __inline. These functions have a small definition and the function body is substituted in each call to the inline function. The argument passing and stack maintenance is skipped and it results in faster code execution, but it increases code size, particularly if the inline function is large or one inline function is used often.
Read More

12 :: Tell me what is embedded system in a computer system?

An embedded system is a computer system that is part of a larger system or machine. It is a system with a dedicated function within a larger electrical or mechanical system.
Read More

13 :: Tell me what is microcontroller?

The microcontroller is a self-contained system with peripherals, memory and a processor that can be used as embedded system.
Read More

14 :: Explain various uses of timers in embedded system?

Timers in embedded system are used in multiple ways

☛ Real Time Clock (RTC) for the system
☛ Initiating an event after a preset time delay
☛ Initiating an even after a comparison of preset times
☛ Capturing the count value in timer on an event
☛ Between two events finding the time interval
☛ Time slicing for various tasks
☛ Time division multiplexing
☛ Scheduling of various tasks in RTOS
Read More

15 :: Tell me whether we can use semaphore or mutex or spinlock in interrupt context in Linux Kernel?

Semaphore or Mutex cannot be used for interrupt context in Linux Kernel. While spinlocks can be used for locking in interrupt context.
Read More

16 :: Do you know what is priority inversion?

If two tasks share a resource, the one with higher priority will run first. However, if the lower-priority task is using the shared resource when the higher-priority task becomes ready, then the higher-priority task must wait for the lower-priority task to finish. In this scenario, even though the task has higher priority it needs to wait for the completion of the lower-priority task with the shared resource. This is called priority inversion.
Read More

17 :: Tell me which parameters decide the size of data type for a processor?

Actually, compiler is the one responsible for size of the data type. But it is true as long as OS allows that. If it is not allowable by OS, OS can force the size.
Read More

18 :: Explain me what is spin lock?

If a resource is locked, a thread that wants to access that resource may repetitively check whether the resource is available. During that time, the thread may loop and check the resource without doing any useful work. Suck a lock is termed as spin lock.
Read More

19 :: Tell me what type of scheduling is there in RTOS?

RTOS uses pre-emptive scheduling. In pre-emptive scheduling, the higher priority task can interrupt a running process and the interrupted process will be resumed later.
Read More

20 :: Explain me what is semaphore?

A semaphore is an abstract datatype or variable that is used for controlling access, by multiple processes to a common resource in a concurrent system such as multiprogramming operating system. Semaphores are commonly used for two purposes

☛ To share a common memory space
☛ To share access to files
Read More

21 :: Please explain what is interrupt latency? How can you reduce it?

Interrupt latency is a time taken to return from the interrupt service routine post handling a specific interrupt. By writing minor ISR routines, interrupt latency can be reduced.
Read More

22 :: Tell me can static variables be declared in a header file?

A static variable cannot be declared without defining it. A static variable can be defined in the header file. But doing so, the result will be having a private copy of that variable in each source file which includes the header file. So it will be wise not to declare a static variable in header file, unless you are dealing with a different scenario.
Read More

23 :: Tell me what is NULL pointer and what is its use?

The NULL is a macro defined in C. Null pointer actually means a pointer that does not point to any valid location. We define a pointer to be null when we want to make sure that the pointer does not point to any valid location and not to use that pointer to change anything. If we don't use null pointer, then we can't verify whether this pointer points to any valid location or not.
Read More

24 :: Tell me what are the different storage classes in C?

☛ Auto
☛ Register
☛ Static
☛ Extern or Global
Read More

25 :: Tell me can structures be passed to the functions by value?

Yes, it can be passed. However, it has several disadvantages.
Read More