Advanced Embedded Systems

  Home  Artificial intelligence (AI)  Advanced Embedded Systems


“Advanced Embedded Systems related Frequently Asked Questions by expert members with job experience as Advanced Embedded Systems. These questions and answers will help you strengthen your technical skills, prepare for the new job interview and quickly revise your concepts”



76 Advanced Embedded Systems Questions And Answers

21⟩ Do you know how does the interrupt architecture works?

Interrupt architecture allows the use of interrupt by the processor whenever an Input/output is ready for the processing. The processor in this case calls a special function to handle the request that comes and leave all the work that is getting performed at that time. The special function that is known as interrupt handler or the interrupt service routine consists of all the input, and output queries, or the interrupts handled by it. It is an efficient and simple way to handle the interrupts. It uses only one function to deal with the interrupts. There are properties of starvation that can creep in when handling the input/output requests. The data can be lost if the interrupt doesn’t get handled before the time runs out. This is a technique that is use to deal with the short processes that involve input and output.

 164 views

24⟩ Tell me which registers are used for register indirect addressing mode if data is on-chip?

☛ R0 and R1 are the only registers used for register indirect addressing mode.

☛ These registers are 8 bit wide.

☛ Their use is limited to accessing only internal RAM.

☛ When these registers hold addresses of RAM, they must be preceded by a @ sign.

☛ In absence of this sign it will use the contents of register than the contents of memory location pointed by the same register.

 171 views

25⟩ What is the difference between statements. MOV A, #17H -a MOV A, 17H -b?

☛ Statement a indicates immediate data is copied into the register A.

☛ # in statement a indicates 17 is an immediate data which is moved to the destination.

☛ Here one copies the immediate data and other copies the data present at the specified address.

☛ In statement b the value present in 17H memory location is copied into A register.

☛ Absence of pound sign does not cause any error but required operation fails.

 158 views

26⟩ Tell me as you know 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 optimised 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, optimisation of compilers, re-organisation 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.

 165 views

27⟩ Explain what could be the reasons for a System to have gone blank and how would you Debug it?

Possible reasons could be:

☛ PC being overheated.

☛ Dust having being accumulated all around.

☛ CPU fans not working properly .

☛ Faulty power connections.

☛ Faulty circuit board from where the power is being drawn.

☛ Support Drivers not having being installed.

Debugging steps which can be taken are:

☛ Cleaning the system thoroughly and maintaining it in a dust-free environment. Environment that is cool enough and facilitates for easy passage of air should be ideal enough.

☛ By locating the appropriate support drivers for the system in consideration and having them installed.

 176 views

28⟩ Please explain what is the need for having multibyte data input and output buffers in case of device ports?

☛ It’s normally the case that some devices transfer the output either in a bursty or a sequential manner and also during input entry. If we take the example of keyboards, all the data entered is stored in a buffer and given at a time or one character at a time.

☛ In case of networking there may be several requests to access the same resource and all these are queued in a buffer and serviced in the order they are received. Hence to avoid the input/output units from getting overloaded with requests, we use multibyte buffers.

 163 views

29⟩ Please explain why is it better to use multi-threading polling then single threading model?

Multi-threading allows a simple thread to be stored and polled. There is no Input/output function that is applied when it is having the poll. When there is no poll available to spawn it makes the system to sleep for an amount of time till the request for another poll reaches. If there is one process that is running then it divides that process into multiple threads and processes it accordingly. It allows the main thread to process all the request and produce the output by combining all other. Multi-threading allows the main thread not to put off the result or the output that will be generated. It also allow the priority of the thread to be changed by allowing to set the priority of the input/output process. It also has some problems with the polling interval that can make a thread starve for some time if the request isn’t handled properly.

 210 views

30⟩ Explain me why does pre-emptive multi-threading used to solve the central controller problem?

Multi-threading provide lot of functionality to the system to allow more than one task can be run at a time. It allows a process to execute faster with less difficulty. But, if there any problem comes in any program or the process than the entire system comes to a halt and slows down the whole system. To control the behavior of this the preemptive multi-threading is used. The control in this case is being shifted from one process to another at any time according to the requirement provided. It allows the program to give the control to another program that is having the higher priority. It includes of many problems like giving of a control by a process half way through in execution and the preemption of the process takes place then the data will be entered as corrupted in the memory location, multi-threading keeps the synchronization that is to be performed between different components of the system and the program and try to avoid the problem mentioned above.

 168 views

31⟩ Explain me which bit of the flag register is set when output overflows to the sign bit?

☛ The 2nd bit of the flag register is set when output flows to the sign bit.

☛ This flag is also called as the overflow flag.

☛ Here the output of the signed number operation is too large to be accomodated in 7 bits.

☛ For signed numbers the MSB is used to indicate the whether the number is positive or negative.

☛ It is only used to detect errors in signed number operations.

 151 views

32⟩ Explain me 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.

 157 views

34⟩ Do you know 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.

 174 views

35⟩ Explain me what are the different types of customizations that is used with the “volatile” keyword?

Volatile keyword is used to show that the value can be changed anytime in the program. It is used for the compiler purpose and for the customization that works with the normal variables that are stored in the memory. There are three types of optimizations associated with the “volatile” keyword:

☛ "Read" optimizations: allow the variable to be read once and put it in the register. If it is done then there is no re-reading of the variable during each and every time the program is compiled. The value can be used from the cache that is present in the register.

☛ "Write" optimizations: allow the variable to be written such that the last write of the variable will be considered and it will be processed on. This takes the normal values that are stored in the memory.

☛ Instruction reordering: allow to reorder the instructions that are used by the compiler and if any modification are required after being written once. The registers are used to perform the task and keep everything together.

 152 views

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

 157 views

39⟩ Explain how is a program executed’ bit by bit’ or’ byte by byte’?

EXAMPLE:

ADDRESS OPCODE PROGRAM

1 0000 ORG 0H

2 0000 7D25 MOV R5,#25H

3 0002 7F34 MOV R7,#34H

4 0004 2D ADD A, R5

5 0005 END

☛ A program is always executed byte by byte.

☛ Firstly,1st opcode 7D is fetched from location 0000 and then the value 25 is fetched from 0001 .

☛ 25 is then placed in the register R5 and program counter is incremented to point 0002.

☛ On execution of opcode 7F, value 34 is copied to register R7.

☛ Then addition of contents of R5 and accumulater takes place.

☛ Here all the opcodes are 8 bit forming a byte.

 184 views

40⟩ Do you know what are the rules followed by Mutexes?

Mutex is also called as Mutual Exclusion is a mechanism that is used to show the preemptive environment and allow providing security methods like preventing an unauthorized access to the resources that are getting used in the system. There are several rules that has to be followed to ensure the security policies:

☛ Mutex are directly managed by the system kernel that provides a secure environment to allow only the applications that passes the security rules and regulations. The mutex consists of objects that are allowed to be called by the kernel.

☛ Mutex can have only one process at a time in its area that is owned by the process using it. This allows less conflict between the different applications or processes that wait for their turn to execute it in the kernel area.

☛ Mutex can be allocated to another mutex that is running some task at a particular time and allow the kernel to have synchronization in between them.

☛ If Mutex is allocated to some other process then the area will consist of the process till the area is having the process in it.

 145 views