Advanced Embedded Systems Interview Questions And Answers
Download Advanced Embedded Systems Interview Questions and Answers PDF
Sharpen your Advanced Embedded Systems interview expertise with our handpicked 76 questions. These questions are specifically selected to challenge and enhance your knowledge in Advanced Embedded Systems. Perfect for all proficiency levels, they are key to your interview success. Don't miss out on our free PDF download, containing all 76 questions to help you succeed in your Advanced Embedded Systems interview. It's an invaluable tool for reinforcing your knowledge and building confidence.
76 Advanced Embedded Systems Questions and Answers:
Advanced Embedded Systems Job Interview Questions Table of Contents:
1 :: Explain me in which addressing mode is the DPTR register used?
☛ Data pointer register is used in the indexed addressing mode.
☛ It is used in accessing data from tne look-up table entries stored in ROM.
☛ SYNTAX: MOVC A, @A+DPTR
☛ Here c means the code (shows data elements are stored in code space of ROM).
☛ The contents of A are added to 16 bit DPTR to form the 16 bit address of the needed data.
Read More☛ It is used in accessing data from tne look-up table entries stored in ROM.
☛ SYNTAX: MOVC A, @A+DPTR
☛ Here c means the code (shows data elements are stored in code space of ROM).
☛ The contents of A are added to 16 bit DPTR to form the 16 bit address of the needed data.
2 :: What is high-end embedded processor?
☛ The microcontroller & processor can be interchangeably used here.
☛ It forms a general purpose processor .
☛ High-end stands for system of greatest power.
☛ Here when a microcontroller cannot do a specific task the processor does the same with higher power
☛ Example: ADM 64
Read More☛ It forms a general purpose processor .
☛ High-end stands for system of greatest power.
☛ Here when a microcontroller cannot do a specific task the processor does the same with higher power
☛ Example: ADM 64
3 :: Tell me in which registers the immediate values cannot be directly loaded?
☛ The general purpose registers named A,B, R0-R7 can not accept the immediate data.
☛ To indicate immediate value pound sign is used before it.
☛ These register accept 8 bit data preceding a pound sign.
☛ There are registers present in 8051 used to store data temporarily.
Read More☛ To indicate immediate value pound sign is used before it.
☛ These register accept 8 bit data preceding a pound sign.
☛ There are registers present in 8051 used to store data temporarily.
4 :: Which register is considered as the destination register for any arithmetic operation?
The ‘A’ register called the accumulator is used as the destination register.
Example:
ADD R2, # 12H
This is invalid as 12 is to be added to value present in R2 and data is also stored in R2.
ADD A,# 12H
This is valid as 12 is to be added to the value present in accumulator. Foregoing discussion explains why register A is used as accumulator.
Explain LCALL.
☛ It is called long call and is a 3 byte instruction.
☛ Here 1st byte is used for opcode &2nd & 3rd bytes are used for address of target subroutine.
☛ Call subroutine can be used anywhere within 64 K- byte address space.
☛ Processor automatically saves on stack the address of instruction immediately below LCALL.
☛ After execution instruction return (RET) transfers control back to next instruction.
Read MoreExample:
ADD R2, # 12H
This is invalid as 12 is to be added to value present in R2 and data is also stored in R2.
ADD A,# 12H
This is valid as 12 is to be added to the value present in accumulator. Foregoing discussion explains why register A is used as accumulator.
Explain LCALL.
☛ It is called long call and is a 3 byte instruction.
☛ Here 1st byte is used for opcode &2nd & 3rd bytes are used for address of target subroutine.
☛ Call subroutine can be used anywhere within 64 K- byte address space.
☛ Processor automatically saves on stack the address of instruction immediately below LCALL.
☛ After execution instruction return (RET) transfers control back to next instruction.
5 :: Tell me 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.
Read More☛ 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.
6 :: Tell me what are the differences between analytical and computational modeling?
☛ Analytical model allows the components to deal with the concurrency that are given during the process and the quantitative constraints that might come in between the components. Whereas, computational model deal with the non-deterministic abstraction hierarchy that has computational complexity to deal with the concurrency and allow it put also the physical constraints.
☛ Analytical models can’t deal with the partial and incremental specifications that are non-deterministic. It is also not good in controlling the computation complexity that is used in the hardware design. Whereas, Computational model can, deal with constraints easily and it provides an upgradeable solution.
☛ Analytical model is the equation based model that doesn’t have the time-sharing and parallelism concepts. Whereas, time-sharing and parallelism is used, in the abstract method that provides the theories of complexity and the real time evaluation.
Read More☛ Analytical models can’t deal with the partial and incremental specifications that are non-deterministic. It is also not good in controlling the computation complexity that is used in the hardware design. Whereas, Computational model can, deal with constraints easily and it provides an upgradeable solution.
☛ Analytical model is the equation based model that doesn’t have the time-sharing and parallelism concepts. Whereas, time-sharing and parallelism is used, in the abstract method that provides the theories of complexity and the real time evaluation.
7 :: Tell 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 More8 :: Explain 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.
Read More9 :: Explain me what is the purpose of using critical sections?
Critical section allows the process to run in an area that is defined by that process only. It is a sequence of instructions that can be corrupted if any other process tries to interrupt it. This process allow the operating system to give the synchronization objects that are used to monitor the processes that are up and running so that no other process will get executed till the critical region consists of a process that is already running. The example includes removal of the data from a queue running in a critical section and if not protected then it can be interrupted and the data have chances of getting corrupted. The processes exit from the critical section as soon as they finish the execution so that the chances can be given to other processes that are waiting for their chance to come.
Read More10 :: Please explain DB?
☛ DB is called as define byte used as a directive in the assembler.
☛ It is used to define the 8 bit data in binary ,hexadecimal or decimal formats.
☛ It is the only directive that can be used to define ASCII strings larger than two characters.
☛ DB is also used to allocate memory in byte sized chunks.
☛ The assembler always converts the numbers lnto hexadecimal.
Read More☛ It is used to define the 8 bit data in binary ,hexadecimal or decimal formats.
☛ It is the only directive that can be used to define ASCII strings larger than two characters.
☛ DB is also used to allocate memory in byte sized chunks.
☛ The assembler always converts the numbers lnto hexadecimal.
11 :: Explain me can single bit of a port be accessed in 8051?
☛ Yes, 8051 has the capability of accessing only single bit of a port.
☛ Here only single bit is accessed and rest are unaltered.
Syntax: “SETB X. Y”.
☛ Here X is the port number and y is the desired bit.
Example: SETB P1.2
Here the second bit of port 1 is set to 1.
Read More☛ Here only single bit is accessed and rest are unaltered.
Syntax: “SETB X. Y”.
☛ Here X is the port number and y is the desired bit.
Example: SETB P1.2
Here the second bit of port 1 is set to 1.
12 :: 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
Read More☛ 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
13 :: Tell me what is read modify write technique?
☛ Read modify write is a technique used to access the ports.
☛ Here in a single instruction all the three actions are combined.
☛ Here initially the data is read from the port then modified .
☛ At last the value is written back on the port.
☛ This feature saves many lines of code and makes the process easier.
Read More☛ Here in a single instruction all the three actions are combined.
☛ Here initially the data is read from the port then modified .
☛ At last the value is written back on the port.
☛ This feature saves many lines of code and makes the process easier.
14 :: What is parallel address space?
☛ The two physically separate memories using the same addresses form the parallel address space.
☛ Here the two memories are accessed using different access modes.
☛ This parallel addressing is generally used in 8052(enhanced version of 8051) having extra 128 bytes of RAM with addresses 80 to FFH and memory is called as upper memory.
☛ This distinguishes it from lower 128 bytes 00to 7FH.
☛ To access lower bytes direct addressing mode is used and for higher bytes indirect addressing mode is used.
Read More☛ Here the two memories are accessed using different access modes.
☛ This parallel addressing is generally used in 8052(enhanced version of 8051) having extra 128 bytes of RAM with addresses 80 to FFH and memory is called as upper memory.
☛ This distinguishes it from lower 128 bytes 00to 7FH.
☛ To access lower bytes direct addressing mode is used and for higher bytes indirect addressing mode is used.
15 :: Explain me how are macros different from inline functions?
☛ Macros are normally used whenever a set of instructions/tasks have to be repeatedly performed. They are small programs to carryout some predefined actions.
☛ We normally use the #define directive in case we need to define the values of some constants so in case a change is needed only the value can be changed and is reflected throughout.
#define mul(a,b) (a*b)
☛ The major disadvantage of macros is that they are not really functions and the usual error checking and stepping through of the code does not occur.
☛ Inline functions are expanded whenever it is invoked rather than the control going to the place where the function is defined and avoids all the activities such as saving the return address when a jump is performed. Saves time in case of short codes.
inline float add(float a,float b)
{
return a+b;
}
☛ Inline is just a request to the compiler and it is upto to the compiler whether to substitute the code at the place of invocation or perform a jump based on its performance algorithms.
Read More☛ We normally use the #define directive in case we need to define the values of some constants so in case a change is needed only the value can be changed and is reflected throughout.
#define mul(a,b) (a*b)
☛ The major disadvantage of macros is that they are not really functions and the usual error checking and stepping through of the code does not occur.
☛ Inline functions are expanded whenever it is invoked rather than the control going to the place where the function is defined and avoids all the activities such as saving the return address when a jump is performed. Saves time in case of short codes.
inline float add(float a,float b)
{
return a+b;
}
☛ Inline is just a request to the compiler and it is upto to the compiler whether to substitute the code at the place of invocation or perform a jump based on its performance algorithms.
16 :: Explain significance of watchdog timer in Embedded Systems?
☛ Watchdog timer is basically a timing device that is set for predefined time interval and some event should occur during that time interval else the device generates a time out signal.
☛ One application where it is most widely used is when the mobile phone hangs and no activity takes place, in those cases watchdog timer performs a restart of the system and comes to the rescue of the users.
☛ It is used to reset to the original state whenever some inappropriate events take place such as too many commands being given at the same time or other activities that result in malfunctioning of the GUI. It is usually operated by counter devices.
Read More☛ One application where it is most widely used is when the mobile phone hangs and no activity takes place, in those cases watchdog timer performs a restart of the system and comes to the rescue of the users.
☛ It is used to reset to the original state whenever some inappropriate events take place such as too many commands being given at the same time or other activities that result in malfunctioning of the GUI. It is usually operated by counter devices.
17 :: Explain 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 More18 :: Explain me what is interaction semantics used in embedded systems?
Interaction semantics allow the actions to be performed by the system components to allow it to get the global behavior. The interaction can be atomic or non-atomic dependent on the interaction between the components. These components can’t be modified using the interference having the other interactions. Languages that are used, having buffered communication, and other languages, that include multi-threaded languages that use non-atomic interactions. There are two types of interactions that are used:
☛ Strong synchronization: allow the components to participate together and have strong bonding in between.
☛ Weakly synchronizing: are asymmetric that required the communication from both the objects.
Read More☛ Strong synchronization: allow the components to participate together and have strong bonding in between.
☛ Weakly synchronizing: are asymmetric that required the communication from both the objects.
19 :: Explain me what is the function of simple thread poll in embedded system?
Simple thread poll allow the ready output to be passed for checking by giving it to the bus that is free and then the output is sent along the thread. The bus can send the output depending on the time that has been given and during the transfer the user won’t be able to perform any other operation. The input is given after finding out the bus is free or not and if it free then a check is made to see that the input exists or not. This thread poll is easy to understand but it is not efficient method to allow the data to be put over the bus manually. The problem of not doing multi-tasking can occur due to doing one task at a time. The method is only be used when input/output occurs at interval that are infrequent.
Read More20 :: 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.
Read More21 :: 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 MoreMain_Function()
Function
{
Initialization();
Do_Forever
{
Check_Status();
Do_Calculations();
Output_Response();
Delay_For_Next_Loop();
}
}
22 :: Tell me which register bank is used if we use the following instructions.
SETB PSW.3 A
SETB PSW.4 B?
☛ Statement A sets 3rd bit of flag register.
☛ Statement B sets 4th bit of flag register.
☛ Therefore register bank 3 is initiated .
☛ It uses memory location 18H to 1FH.
☛ The register bank is also called as R3.
Read More☛ Statement B sets 4th bit of flag register.
☛ Therefore register bank 3 is initiated .
☛ It uses memory location 18H to 1FH.
☛ The register bank is also called as R3.
23 :: Please 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.
Read More24 :: 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.
Read More☛ 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.
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.
Read More☛ # 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.