Vous êtes sur la page 1sur 10

1.What is watchdog timer?

A watchdog timer (or computer operating properly timer) is a computer

hardware timing device that triggers a system reset if the main program,

due to some fault condition, such as a hang, neglects to regularly

service the watchdog. The intention is to bring the system back from

the hung state into normal operation.

2.What is semaphore?

Ans : In computer science, a semaphore is a protected variable or

abstract data type which constitutes the classic method for

restricting access to shared resources such as shared memory in

a parallel programming environment. A counting semaphore is a counter

for a set of available resources, rather than a locked/unlocked flag

of a single resource.

3.What is mutex?

Mutual exclusion (often abbreviated to mutex) algorithms are used in

concurrent programming to avoid the simultaneous use of a common

resource, such as a global variable, by pieces of computer code

called critical sections.

4.Can structures be passed to the functions by value?

yes structures can be passed by value. But unnecessary memory wastage.

5.Why cannot arrays be passed by values to functions?


Ans : When a array is passed to a function, the array is internally

changed to a ‘pointer’. And pointers are always passed by reference.

6.Advantages and disadvantages of using macro and inline functions?

Ans : Advantage: Macros and Inline functions are efficient than

calling a normal function. The times spend in calling the function

is saved in case of macros and inline functions as these are included

directly into the code.

Disadvantage: Macros and inline functions increased the size of

executable code.

Difference in inline functions and macro

1) Macro is expanded by preprocessor and inline function are expanded

by compiler.

2) Expressions passed as arguments to inline functions are evaluated

only once while _expression passed as argument to inline functions are

evaluated more than once.

More over inline functions are used to overcome the overhead of

function calls. Macros are used to maintain the readability and easy

maintenance of the code.

7.What happens when recursion functions are declared inline?

It is illegal to declare a recursive function as inline. Even a

function is declared as inline compiler judges it to be inline or not.

Many compilers can also inline expand some recursive functions;

recursive macros are typically illegal.


8.Scope of static variables?

Ans:Scope of static variable is within the file if it is static global.

Scope of static variable is within the function if variable is

declared local to a function. But the life time is throughout the program

9. What is the difference between a ‘thread’ and a ‘process’?

Ans: process :In computing, a process is an instance of a computer

program that is being sequentially executed by a computer system that

has the ability to run several computer programs concurrently.

Thread :A single process may contain several executable programs

(threads) that work together as a coherent whole. One thread might,

for example, handle error signals, another might send a message about

the error to the user, while a third thread is executing the actual

task of the..

10. What is a Inode?

Ans:In computing, an inode is a data structure on a traditional

Unix-style file system such as UFS. An inode stores basic information

about a regular file, directory, or other file system object.

11. What is pass by value and pass by reference? How are structure

passed as arguments?

The parameter to a function can be a copy of a value that is


represented by variable or can be a reference to a memory space that

stores value of variable. The former is referred to as pass by value

and the latter is referred to as pass by reference. The difference is

that when parameters are passed by value the changes made to the

variable value within the function is not reflected in the caller

function, but when passed as reference changes are reflected outside

the called function. The structures are always passed by reference.

12. What is difference between using a macro and a in line function?

The macro are just symbolic representations and cannot contain data

type differentiations within the parameters that we give. The in line

functions can have the data types too defined as a part of them. The

disadvantage in using both is that the inclusion of condition checks

may lead to increase in code space if the function is called many

times.

13. What is the volatile keyword used for?

The volatile keyword is used to represent variables that point to

memory in other mapped devices. In such a case the value of the

variable can be changed outside of a program. The compiler does not

do additional optimizations to the code if there is volatile keyword.

14. What are hard and soft Real time systems?

The hard real time systems are the once that depend on the output

very strictly on time. Any late response or delay cannot be tolerated

and will always be considered a failure. The soft real time systems
on the other are not very rigid as the hard real time systems. The

performance of the system degrades with the lateness of response, but

it is bearable and can be optimized to a certain level for reuse of

the result.

15. What is a semaphore? what are the different types of semaphore?

The semaphore is an abstract data store that is used to control

resource accesses across the various threads of execution or across

different processes. There are two types of semaphores:

• The binary semaphore which can take only 0,1 values.

(used when there is contention for a single resource entity)

• The counting semaphore which can take incremental values to certain

limit (used when number of resources is limited).

16. Write a constant time consuming statement lot finding out If a

given number Is a power of 2?

If n is the given number, then the expression (n & (n-1)) = 0 gives

the logical output depicting if it is a power of 2 or not,

if (n & (n-1) == 0)

printf (“The given number is a power of 2”);

17. What are recursive functions? Can we make them in line?

The recursive functions refer to the functions which make calls to

itself before giving out the final result. These can be declared as

in-line functions and the compiler will allocate the memory space

intended for the first call of the function.


18. What is the size of the int, char and float data types?

The size of the char and int are always dependent on the underlying

operating system or firmware. This is limited to the number of address

lines in the address bus.The int usually takes up a value of 2 bytes

or 4 bytes. The char can take up a space of 1 or 2 bytes. The float

data type takes up a value of 4 bytes.

19. What does malloc do? What will happen if we have a statement like

malloc(sizeof(0));

Malloc is the function that is used for dynamically allocating memory

to the different variables. The malloc returns a memory pointer of

void type (void *). The statement malloc(sizeof(0)) returns a valid

integer pointer because sizeof(0) represents the size of memory taken

up by the integer value of 0. The memory allocated by memory is not

automatically cleaned up by the compiler after execution of the

functions and should be cleaned up by the programmer using the free()

function.

20. What is meant by a forward reference in C?

The forward reference refers to the case when we point an address

space of a smaller data type with a pointer of a bigger data type

This can be pictured as allocating memory in single bytes and

accessing it with integer pointer as chunks of 4.

21. What is the order of calling for the constructors and destructors
in case of objects of inherited classes?

The constructors are called with base class first order and the

destructors are called in the child first order. That is, the if we

have 2 levels of inheritance A (base)-> B (inherit 1)-> C (inherit 2)

then the constructor A is called first followed by B and C. The C

destructor is called first followed by B and A

22. Explain the properties of a Object oriented programming language.

• Encapsulation: The data that are related to the specific object are

contained inside the object structure and hidden from the other

entities of the environment

• Polymorphism: The mechanism by which the same pointer can refer to

different types of objects, which are basically linked by some

generic commonality.

• Abstraction: Hiding the data and implementation details from the

real objects. The framework of reference is still present to be used

by the other objects.

• Inheritance: The way to take out the common features and have them

as separate object entities only to be reused by the other objects in

a modular fashion.

23. What do you mean by interrupt latency?

Interrupt latency refers to the time taken for the system to start

the handler for the specific interrupt. The time from the time of

arrival of interrupt to the time it is being handled.


24. What typecast is applied when we have a signed and an unsigned

int in an expression?

The unsigned int is typecast into the signed value.

25. How are variables mapped across to the various memories by the

C compiler?

The compiler maintains the symbol table which has the related

information of all the variable names along with the length of the

allocated space, the access unit length for the pointer (type of

pointer) and the starting address of the memory space.

26. What is a memory leak? What is a segmentation fault?

The memory leak refers to the uncleared memory mat builds up across

me lifetime of the process. When it comes to a huge value me system

stalls its execution due to me unavailability of the memory. The

segmentation fault on the other hand refers to me condition when our

program tries to access a memory space that has already been freed up.

27. What is ISR? Can they be passed any parameter and can they return

a value?

ISR refers to the Interrupt Service Routines. These are procedures

stored at specific memory addresses which are called when certain

type of interrupt occurs. The ISRs cannot return a value and they

cannot be passed any parameters.


28.

a=7;

b=8;

x=a++-b;

printf(“%d”, x );

What does this code give as output?

The compiler understands the statement expression a–b by taking off

as much operators as it makes sense to a variable. So (a++) is taken

as a parameter and then the expression becomes 8-8 which in turn

gives the x value as 0. Thus the output value is 0.

29. What are little endian and big endian types of storage?

How can you identify which type of allocation a system follows?

The little endian memory representation allocates the least address to

the least significant bit and the big endian is where the highest

significant bit takes up the least addressed memory space. We can

Identify the system’s usage by defining an integer value and accessing

it as a character.

int p=0x2;

if(* (char *) &p == 0x2)

printf (“little endian\n”);

else

printf (“big endian\n”);

30. What is the scope of a function that is declared as static?

The static function when declared within a specific module is scoped


only in that module and can only be accessed from it.

31.What is the use of having the const qualifier?

The const qualifier identifies a specific parameter or variable as

read-only attribute to the function or to the entire program. This

can come in handy when we are dealing with static data inside function

and in a program.

32. Why do we need a infinite loop in embedded systems development?

What are the different ways by which you can code in a infinite loop?

The infinite loops are coded in to give a delay or sleep to the

program execution for a specific amount of clock ticks. They can be

implemented as:

while(;;);

for();

(or)

Loop:

goto Loop;

33. What is the difference between embedded systems and the system

in which rtos is running?

Embedded system is just combination of s/w and h/w that is some

embedded sys may have os some may not and rtos is an os.

Vous aimerez peut-être aussi