Interview Questions Embedded Systems for Engineering freshers Basics Guide
http://ingenuitydias.blogspot.com/2015/06/interview-questions-embedded-systems.html
What is the need for an infinite loop in Embedded systems?
Infinite Loops are those program constructs where in there is no break statement so as to get out of the loop, it just keeps looping over the statements within the block defined.
Example:
While(Boolean True) OR for(;;);
{/
/Code
}
Embedded systems need infinite loops for repeatedly processing/monitoring the state of the program. One example could be the case of a program state continuously being checked for any exceptional errors that might just occur during run time such as memory outage or divide by zero etc.,
For e.g. Customer care Telephone systems where in a prerecorded audio file is played in case the dialer is put on hold.
Infinite Loops are those program constructs where in there is no break statement so as to get out of the loop, it just keeps looping over the statements within the block defined.
Example:
While(Boolean True) OR for(;;);
{/
/Code
}
Embedded systems need infinite loops for repeatedly processing/monitoring the state of the program. One example could be the case of a program state continuously being checked for any exceptional errors that might just occur during run time such as memory outage or divide by zero etc.,
For e.g. Customer care Telephone systems where in a prerecorded audio file is played in case the dialer is put on hold.
Also circuits being responsible for indicating that a particular component is active/alive during its operation by means of LED's.
Watchdog Timer Interview Questions
Model transformations And Interaction Semantics
Mutexes Vs Semaphores
Macros And In-line Functions Comparison
How does combination of functions reduce memory requirements in embedded systems?
The amount of code that has to be dealt with is reduced thus easing the overhead and redundancy is eliminated in case if there is anything common among the functions.
Memory allocation is another aspect that is optimized and it also makes sense to group a set of functions related in some way as one single unit rather than having them to be dispersed in the whole program.In case of interactive systems display of menu list and reading in the choices of user's could be encapsulated as a single unit.
Watchdog Timer Interview Questions
Model transformations And Interaction Semantics
Mutexes Vs Semaphores
Macros And In-line Functions Comparison
How does combination of functions reduce memory requirements in embedded systems?
The amount of code that has to be dealt with is reduced thus easing the overhead and redundancy is eliminated in case if there is anything common among the functions.
Memory allocation is another aspect that is optimized and it also makes sense to group a set of functions related in some way as one single unit rather than having them to be dispersed in the whole program.In case of interactive systems display of menu list and reading in the choices of user's could be encapsulated as a single unit.
A vast majority of High Performance Embedded systems today use RISC architecture why?
According to the instruction sets used, computers are normally classified into RISC and CISC.RISC stands for 'Reduced Instruction Set Computing' .The design philosophy of RISC architecture is such that only one instruction is performed on each machine cycle thus taking very less time and speeding up when compared to their CISC counterparts. Here the use of registers is optimized as most of the memory access operations are limited to store and load operations.
Fewer and simple addressing modes, and simple instruction formats leads to greater efficiency, optimization of compilers, reorganization of code for better throughput in terms of space and time complexities. All these features make it the choice of architecture in majority of the Embedded systems. CISC again have their own advantages and they are preferred whenever the performance and compiler simplification are the issues to be taken care of.
Why do we need virtual device drivers when we have physical device drivers?
Device drivers are basically a set of modules/routines so as to handle a device for which a direct way of communication is not possible through the user's application program and these can be thought of as an interface thus keeping the system small providing for minimalistic of additions of code, if any.Physical device drivers can’t perform all the logical operations needed in a system in cases like IPC,Signals and so on...
The main reason for having virtual device drivers is to mimic the behaviour of certain hardware devices without it actually being present and these could be attributed to the high cost of the devices or the unavailability of such devices.
These basically create an illusion for the users as if they are using the actual hardware and enable them to carryout their simulation results.Examples could be the use of virtual drivers in case of Network simulators,also the support of virtual device drivers in case a user runs an additional OS in a virtual box kind of a software.
What is the need for DMAC in Embedded Systems?
Endianness basically refers to the ordering of the bytes within words or larger bytes of data treated as a single entity.
When we consider a several bytes of data say for instance 4 bytes of data,XYZQ the lower byte if stored in a Higher address and others in successively decreasing addresses ,then it refers to the Big Endian and the vice versa of this refers to Little Endian architecture.
Intel 80x86 usually follows Little Endian and others like IBM systems follow Big Endian formats.If the data is being transmitted care has to be taken so as to know as to which byte,whether the higher or the lower byte is being transmitted.Hence a common format prior to communication has to be agreed upon to avoid wrong interpretation/calculations.Usually layer modules are written so as to automate these conversion in Operating systems.
According to the instruction sets used, computers are normally classified into RISC and CISC.RISC stands for 'Reduced Instruction Set Computing' .The design philosophy of RISC architecture is such that only one instruction is performed on each machine cycle thus taking very less time and speeding up when compared to their CISC counterparts. Here the use of registers is optimized as most of the memory access operations are limited to store and load operations.
Fewer and simple addressing modes, and simple instruction formats leads to greater efficiency, optimization of compilers, reorganization of code for better throughput in terms of space and time complexities. All these features make it the choice of architecture in majority of the Embedded systems. CISC again have their own advantages and they are preferred whenever the performance and compiler simplification are the issues to be taken care of.
Why do we need virtual device drivers when we have physical device drivers?
Device drivers are basically a set of modules/routines so as to handle a device for which a direct way of communication is not possible through the user's application program and these can be thought of as an interface thus keeping the system small providing for minimalistic of additions of code, if any.Physical device drivers can’t perform all the logical operations needed in a system in cases like IPC,Signals and so on...
The main reason for having virtual device drivers is to mimic the behaviour of certain hardware devices without it actually being present and these could be attributed to the high cost of the devices or the unavailability of such devices.
These basically create an illusion for the users as if they are using the actual hardware and enable them to carryout their simulation results.Examples could be the use of virtual drivers in case of Network simulators,also the support of virtual device drivers in case a user runs an additional OS in a virtual box kind of a software.
What is the need for DMAC in Embedded Systems?
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.
What is Endianness of a system and how do different systems communicate with each other?
Endianness basically refers to the ordering of the bytes within words or larger bytes of data treated as a single entity.
When we consider a several bytes of data say for instance 4 bytes of data,XYZQ the lower byte if stored in a Higher address and others in successively decreasing addresses ,then it refers to the Big Endian and the vice versa of this refers to Little Endian architecture.
Intel 80x86 usually follows Little Endian and others like IBM systems follow Big Endian formats.If the data is being transmitted care has to be taken so as to know as to which byte,whether the higher or the lower byte is being transmitted.Hence a common format prior to communication has to be agreed upon to avoid wrong interpretation/calculations.Usually layer modules are written so as to automate these conversion in Operating systems.