Interrupt Processing in ARM

An interrupt is the automatic transfer of software execution in response to a hardware event that is asynchronous with the current software execution. This hardware event is called a trigger. The hardware event can either be a busy to ready transition in an external I/O device (like the UART input/output) or an internal event (like bus fault, memory fault, or a periodic timer). When the hardware needs service, signified by a busy to ready state transition, it will request an interrupt by setting its trigger flag. A thread is defined as the path of action of software as it executes. The execution of the interrupt … Continue reading Interrupt Processing in ARM

Introduction to RTOS Part-1

What is an RTOS? An Operating System (OS) is in charge of managing the resources of your computer. It will put tasks on the CPU and take tasks off the CPU, giving each task the illusion that it owns the entire processor. It will implement some kind of scheduling policy, which dictates when a task should be given time to run on the CPU and for how long. It will also manage the memory in the system and the various bits of hardware attached. A general OS, such as Windows or Linux, is normally designed for throughput and fairness, with … Continue reading Introduction to RTOS Part-1

Linux vim Editor command

About vim : vim, which stands for “Vi Improved“, is a Text Editor. It can be used for editing any kind of text and is especially suited for editing computer program. Description vim is a text editor that is upwards compatible with Vi. There are a lot of enhancements above Vi: multi-level undo, multiple windows and buffers, syntax highlighting,  command line editing, filename completion, a complete help system, visual selection, and others. Vim has a particular working method, there are two main modes: the command mode and the other modes. The command mode lets you select the working mode that you want to … Continue reading Linux vim Editor command

All About Thread’S

What is a Thread? A thread is a path of execution within a process. Also, a process can contain multiple threads. Why Multithreading? Thread is also known as a lightweight process. The idea is to achieve parallelism by dividing a process into multiple threads. For example, in a browser, multiple tabs can be different threads. MS word uses multiple threads, one thread to format the text, other thread to process inputs etc. Process vs Thread? The typical difference is that threads within the same process run in a shared memory space, while processes run in separate memory spaces. Threads are … Continue reading All About Thread’S

Pointer’s basic

What is a Pointer? “A pointer is a variable which contains the address in memory of another variable“. The unary or monadic operator & gives the “address of a variable”. The indirection or dereference operator  *  gives the “contents of an object pointed to by a pointer”. int var; //  declaration of “Integer type” variable name var which will have some                               // address  in memory int *ptr; // To declare a pointer to a variable do ptr = &var;   // copying address of variable “var” into new variable “ptr” as I have shown in below example, // C program … Continue reading Pointer’s basic

Computer Memory and It’s Type?

Memory is internal storage areas in the computer system. just like Our Human Body store “our day to day incidents” inside Our brain. Computer/Mobile phone store information inside Memory. The term memory identifies data storage that comes in the form of Silicon-chip’s ( pen-drives, SD cards), and the word storage is used for memory that exists on tapes or Hard- disks. Moreover, the term memory is usually used as a shorthand for physical memory, which refers to the actual silicon-chips capable of holding data. Some computers also use virtual memory, which expands physical memory onto a hard disk. Every computer comes with a certain amount of physical memory, usually referred to … Continue reading Computer Memory and It’s Type?

von Neumann architecture and Harvard architecture

Harvard architecture has separate data and instruction busses, allowing transfers to be performed simultaneously on both busses. A von Neumann architecture has only one bus which is used for both data transfers and instruction fetches. therefore data transfers and instruction fetches must be scheduled – they can not be performed at the same time. but It is possible to have two separate memory systems for a Harvard architecture.  Following are the difference between harvard architecture and von-neumann architecture Harward Architecture     Von Neumann Architecture      The name is originated from “Harvard Mark I” a relay based old computer. It is named after the … Continue reading von Neumann architecture and Harvard architecture

RISC and CISC Architecture

What is RISC? A reduced instruction set computer is a computer which only uses simple commands that can be divided into several instructions which achieve low-level operation within a single CLOCK cycle, as its name proposes “Reduced Instruction Set”. Example: Apple iPod and Nintendo DS etc. What is CISC? A complex instruction set computer is a computer where single instructions can perform numerous low-level operations like a load from memory, an arithmetic operation, and a memory store or are accomplished by multi-step processes or addressing modes in single instructions, as its name proposes “Complex Instruction Set ”. Example:IBM 370/168, VAX … Continue reading RISC and CISC Architecture

Interrupt and Polling

What is Polling ? Polling the device usually means reading its status register every so often until the device’s status changes to indicate that it has completed the request. Polling means you won’t know when the data is ready, but you can get it when you are ready. You’ll have to tell your program how to wait for the data. Example : below mentioned code, also is similar example of Transmit data by using polling. In above code, This line : while( ! (USCSA & (1 << UDRE))  simply waits for the transmit buffer to be empty by checking the UDRE flag, before … Continue reading Interrupt and Polling

Little Endian vs Big Endian

Endianness refers to the sequential order in which bytes are arranged into larger numerical values when stored in memory. Simple way to remember is “little endian, the least significant byte will go to lowest address index. and Vice versa. Little endian and big endian are two ways of storing multi byte/nibble data-types ( i.e. int, float, etc).    in big endian machines, first byte of binary representation of the multi byte data-type is stored first. On the other hand, In little endian machines, last byte of binary representation of the multi  byte data-type is stored first. Current architectures The Intel x86 and also … Continue reading Little Endian vs Big Endian