EmbLogic's Blog

DTMF decoder circiut

In DTMF we use 8770 ic which decode the dual-tone, multi-frequency send through u’r phone. After this u can program u’r IC to do specified works


Posted in Uncategorized | Leave a comment

IRQ’S

Each hardware device controller capable of issuing interrupt requests has an output line
designated as an IRQ (Interrupt ReQuest). All existing IRQ lines are connected to the input
pins of a hardware circuit called the Interrupt Controller, which performs the following
actions:
1. Monitors the IRQ lines, checking for raised signals.
2. If a raised signal occurs on an IRQ line:
a. Converts the raised signal received into a corresponding vector.
b. Stores the vector in an Interrupt Controller I/O port, thus allowing the CPU to
read it via the data bus.
c. Sends a raised signal to the processor INTR pin—that is, issues an interrupt.
d. Waits until the CPU acknowledges the interrupt signal by writing into one of
the Programmable Interrupt Controllers (PIC) I/O ports; when this occurs,
clears the INTR line.
3. Goes back to step 1.

Posted in Uncategorized | Leave a comment

Extended Paging

Starting with the Pentium model, Intel 80×86 microprocessors introduce extended paging ,
which allows page frames to be either 4 KB or 4 MB in size.Extended paging is enabled by setting the Page Size flag of a Page Directory entry.The paging unit divides the 32 bits of a linear address into two fields:
1.Directory
The most significant 10 bits
2.Offset
The remaining 22 bits

Posted in Uncategorized | Leave a comment

vmalloc

vmalloc allocates a contiguous memory region in the virtual address space. Although the pages are not con-secutive in physical memory (each page is retrieved with a separate call to alloc_page),the kernel sees them as a contiguous range of addresses. vmalloc returns 0 (the NULL address) if an error occurs, otherwise, it returns a pointer to a linear memory area of size at least size.

Memory obtained from vmalloc is slightly less efficient to work with,
and, on some architectures, the amount of address space set aside for vmalloc is rela-
tively small. Code that uses vmalloc is likely to get a chilly reception if submitted for
inclusion in the kernel. If possible, you should work directly with individual pages
rather than trying to smooth things over with vmalloc.

Posted in Uncategorized | 1 Comment

The Processor Buses

The CPU is connected to memory and various other I/O devices through strips of wires called buses. These buses just take the data, address and control signals from one place to another.

There are three types of buses :-

#1 Data Bus. (Bidirectional)

# 2 Address Bus. (Unidirectional)

#3 Control Bus. (Unidirectional)

The data bus is used for carrying data in and out from the CPU. The data bus determines the performance of the CPU, more the data lines in a data bus better is the CPU. The average size of data bus varies from 8 bit to 64 bit.

The address bus is used to identify the device and memory connected to CPU. If CPU wants to communicate with device or a memory, it just loads its address on the address bus and device or location having that add becomes active.

The control bus is used for sending control signal to the addressed device or memory for performing read and write operations at that location.

Posted in Uncategorized | Leave a comment

Tone Generator

with the help of UM3561 we can create 3 different tone.

pin 1 and pin 6 are selecting pins to create different tones

Posted in Uncategorized | Leave a comment

Translation Lookaside Buffers (TLB)

Besides general-purpose hardware caches, Intel 80×86 processors include other caches called translation lookaside buffers or TLB to speed up linear address translation. When a linear address is used for the first time, the corresponding physical address is computed through slow accesses to the page tables in RAM. The physical address is then stored in a TLB entry, so that further references to the same linear address can be quickly translated.
The invlpg instruction can be used to invalidate (that is, to free) a single entry of a TLB. In
order to invalidate all TLB entries, the processor can simply write into the cr3 register that
points to the currently used Page Directory.

Posted in Uncategorized | Leave a comment

Smoke sensor

in smoke sensor we need mq2 sensor and lm324 ic .

with the help of variable register we can vary the resistivity of the sensor

Posted in Uncategorized | Leave a comment

Process Descriptor

In order to manage processes, the kernel must have a clear picture of what each process is
doing. It must know, for instance, the process’s priority, whether it is running on the CPU or
blocked on some event, what address space has been assigned to it, which files it is allowed to address, and so on. This is the role of the process descriptor , that is, of a task_struct type
structure whose fields contain all the information related to a single process. As the repository of so much information, the process descriptor is rather complex. Not only does it contain many fields itself, but some contain pointers to other data structures that, in turn, contain pointers to other structures.

Posted in Uncategorized | Leave a comment

Program to just insert element & display in 2d pointer.

#include<stdio.h>
#include<malloc.h>

int main()
{
int r,c,i,j,**p;

printf(“How many rows,you want to insert: “);
scanf(“%d”,&r);

printf(“How many columns,you want to insert: “);
scanf(“%d”,&c);

p=malloc(r*c*sizeof(int));

printf(“Enter your %d*%d matrix elements: “,r,c);
for(i=0;i<r;i++)

{
for(j=0;j<c;j++)

scanf(“%d\n”,&(*(*(p+i)+j)));
}

for(i=0;i<r;i++)
{
for(j=0;j<c;j++)
printf(“%d”,*(*(p+i)+j));
}
}

Posted in Uncategorized | Leave a comment

Paging.

For the sake of efficiency, linear addresses are grouped in fixed-length intervals called pages;
contiguous linear addresses within a page are mapped into contiguous physical addresses. In
this way, the kernel can specify the physical address and the access rights of a page instead of
those of all the linear addresses included in it. Following the usual convention, we shall use
the term “page” to refer both to a set of linear addresses and to the data contained in this group of addresses.
The paging unit thinks of all RAM as partitioned into fixed-length page frames (they are
sometimes referred to as physical pages). Each page frame contains a page, that is, the length
of a page frame coincides with that of a page. A page frame is a constituent of main memory,
and hence it is a storage area. It is important to distinguish a page from a page frame: the
former is just a block of data, which may be stored in any page frame or on disk.

Posted in Uncategorized | Leave a comment

Paging in Hardware

The paging unit thinks of all RAM as partitioned into fixed-length page frames (they are
sometimes referred to as physical pages). Each page frame contains a page, that is, the length
of a page frame coincides with that of a page. A page frame is a constituent of main memory,
and hence it is a storage area. It is important to distinguish a page from a page frame. the
former is just a block of data, which may be stored in any page frame or on disk.
The data structures that map linear to physical addresses are called page tables. they are
stored in main memory and must be properly initialized by the kernel before enabling the
paging unit.

Posted in Uncategorized | Leave a comment

The process list

To allow an efficient search through processes of a given type (for instance, all processes in
a runnable state) the kernel creates several lists of processes. Each list consists of pointers to
process descriptors. A list pointer (that is, the field that each process uses to point to the next
process) is embedded right in the process descriptor’s data structure. When you look at
the C-language declaration of the task_struct structure, the descriptors may seem to turn in
on themselves in a complicated recursive manner. However, the concept is no more
complicated than any list, which is a data structure containing a pointer to the next instance of itself.

Posted in Uncategorized | Leave a comment

Segmentation in Hardware(for 80386)

A logical address consists of two parts: a segment identifier and an offset that specifies the
relative address within the segment. The segment identifier is a 16-bit field called Segment
Selector, while the offset is a 32-bit field.
To make it easy to retrieve segment selectors quickly, the processor provides segmentation
registers whose only purpose is to hold Segment Selectors; these registers are called cs, ss,
ds, es, fs, and gs.

Posted in Uncategorized | Leave a comment

NAND and NOR

Flash devices, including NOR flash devices such as CFI flash chips and NAND flash
devices such as the DOC, are not like disk storage devices. They cannot be written to
and read from arbitrarily. To understand how to operate flash chips properly, we must
first look at how they operate internally. Flash devices are generally divided into erase
blocks. Initially, an empty block will have all its bits set to 1. Writing to this block
amounts to clearing bits to 0. Once all the bits in a block are cleared (set to 0), the only
possible way to erase this block is to set all of its bits to 1 simultaneously. With NOR
flash devices, bits can be set to 0 individually in an erase block until the entire block is
full of 0s. NAND flash devices, on the other hand, have their erase blocks divided further
into pages, of 512 bytes typically, which can only be written to a certain number of times
—typically less than 10 times—before their content becomes undefined. Pages can then
only be reused once the blocks they are part of are erased in their entirety

Posted in Uncategorized | 1 Comment