Embedded Software Engineer

  Home  Engineering  Embedded Software Engineer


“Embedded Software Engineer Frequently Asked Questions in various Embedded Software Engineer job interviews by interviewer. The set of questions are here to ensures that you offer a perfect answer posed to you. So get preparation for your new job interview”



100 Embedded Software Engineer Questions And Answers

1⟩ 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.

 220 views

2⟩ 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.

 203 views

3⟩ 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.

 261 views

4⟩ 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.

 198 views

6⟩ 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.

 201 views

7⟩ 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

 201 views

8⟩ Tell me how does Input/Output bus functions?

Input and output devices or functions allow the user to interact with the external files. Input and output functions are used to transfer the load on the bus. It uses the multiplexes having the input and output signals that remain same. Input and output buses move at the slower rate or speed than the processor speed. This increases the problem of bottleneck or the deadlock due to poor performance. There is a possibility to send more transistors for a layout to be given. These different devices may have very different speeds of communication. When programming IO bus control, make sure to take this into account.

In some systems, memory mapped IO is used. In this scheme, the hardware reads its IO from predefined memory addresses instead of over a special bus. This means you'll have simpler software, but it also means main memory will get more access requests.

 189 views

13⟩ 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.

 224 views

15⟩ 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.

 214 views

17⟩ 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.

 204 views

18⟩ 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();

}

}

 205 views

19⟩ 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.

 211 views

20⟩ Tell me what is the function of DMA controlled in embedded system?

DMA stands for Direct Memory Access controller that handles the allocation of the memory dynamically to the components and allows the data to be transferred between the devices. It is used for the communication between different input/output devices. It automatically detects the devices that are present for the transfer of data between the input/output devices. The interrupt can be used to complete the data transfer between the devices. It is used to give the high quality performance as, the input/output device can perform the operations that are in parallel with the code that are in execution phase. It can’t be used in all the systems. It consists of 8-bit microcontrollers that are used to control the overall system in execution.

 219 views