Latest Embedded Systems Interview Questions
1) Explain 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.
2) Mention what are the essential components of embedded system?
Essential components of embedded system includes
Hardware
Processor
Memory
Timers
I/O circuits
System application specific circuits
Software
It ensures the availability of System Memory
It checks the Processor Speed availability
The need to limit power lost when running the system continuously
Real Time Operating System
It runs a process as per scheduling and do the switching from one process to another
4) Why embedded system is useful?
With embedded system, it is possible to replace dozens or even more of hardware logic gates, input buffers, timing circuits, output drivers, etc. with a relatively cheap microprocessor.
5) Explain what are real-time embedded systems?
Real-time embedded systems are computer systems that monitor, respond or control an external environment. This environment is connected to the computer system through actuators, sensors, and other input-output interfaces.
6) Explain what is microcontroller?
The microcontroller is a self-contained system with peripherals, memory and a processor that can be used as embedded system.
7) Mention what is the difference between microprocessor and microcontroller?
Microprocessor is managers of the resources (I/O, memory) which lie outside of its architecture
Microcontroller have I/O, memory, etc. built into it and specifically designed for control
8) What does DMA address will deal with?
DMA address deals with physical addresses. It is a device which directly drives the data and address bus during data transfer. So, it is purely physical address.
9) 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.
10) Mention what are buses used for communication in embedded system?
For embedded system, the buses used for communication includes
I2C: It is used for communication between multiple ICs
CAN: It is used in automobiles with centrally controlled network
USB: It is used for communication between CPU and devices like mouse, etc.
While ISA, EISA, PCI are standard buses for parallel communication used in PCs, computer network devices, etc.
11) List out 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
12) Explain what is a Watchdog Timer?
A watchdog timer is an electronic device or electronic card that execute specific operation after certain time period if something goes wrong with an electronic system.
13) Explain what is the need for an infinite loop in embedded systems?
Embedded systems require infinite loops for repeatedly processing or monitoring the state of the program. For instance, the case of a program state continuously being verified for any exceptional errors that might just happen during run-time such as memory outage or divide by zero, etc.
14) List out some of the commonly found errors in Embedded Systems?
Some of the commonly found errors in embedded systems are
Damage of memory devices static discharges and transient current
Address line malfunctioning due to a short in circuit
Data lines malfunctioning
Due to garbage or errors some memory locations being inaccessible in storage
Inappropriate insertion of memory devices into the memory slots
Wrong control signals
15) Explain 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
16) Explain what is the difference between mutexes and semaphores?
Mutexes
A mutex object enables one thread into a controlled section, forcing other threads which tries to gain access to that section to wait until the first thread has moved out from that section
Mutex can only be released by thread which had acquired it
Mutex will always have a known owner
Mutex is also a tool that is used to provide deadlock-free mutual exclusion (either consumer or producer can have the key and proceed with their work)
Mutexes by definition are binary semaphores, so there are two states locked or unlocked
Semaphores
A semaphore can be signaled from any other thread or process.
Semaphore allows multiple access to shared resources
Semaphore is a synchronization tool to overcome the critical section problem
While for semaphore you won’t know which thread we are blocking on
Semaphores are usually referred to counted locks
17) When one must use recursion function? Mention what happens when recursion functions are declared inline?
Recursion function can be used when you are aware of the number of recursive calls is not excessive. Inline functions property says whenever it will called, it will copy the complete definition of that function. Recursive function declared as inline creates the burden on the compilers execution.
18) Explain 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.