EE8691 Embedded Systems Notes
EE8691 Embedded Systems Notes
in
UNIT I
INTRODUCTION TO EMBEDDED SYSTEMS
―It is any device that includes aprogrammable computer but isnot itself intended to be
ageneral purpose computer.‖ –Wayne Wolf, Ref: 61
Program Flow and data path ControlUnit (CU) —includes a fetch unit forfetching
instructions from thememory
Execution Unit (EU) —includescircuits for arithmetic and logical unit
(ALU), and for instructions for aprogram control task, say, datatransfer instructions, halt,
interrupt,or jump to another set of instructionsor call to another routine or sleep orreset
(b) DSP orTypically a Texas Instruments- C28xSeries, C54xx or C64xx orAnalog Devices
SHARC orTigerSHARC, Motorola 5600xx
Interrupt Handling element for the externalport interrupts, IO interrupts, timer and
RTC interrupts, software interrupts andExceptions
(vi)Linking Embedded System Hardware
3. IO Communication Unit
1. ROM Image
• Final stage software also called ROMimage
(Just as an image is a unique sequence andarrangement of pixels, embedded softwareis also a
unique placement and arrangementat each ROM address of bytes forinstructions and data.)
C++ or Java
Program Models
Sequential Programming Model
Object Oriented Programming Model
Control and Data flow graphs or
Synchronous Data Flow (SDF) Graph or Multi Thread Graph (MTG) Model
Finite State Machine for data path
Multithreaded Model
Concurrent Processing of processes orthread or tasks
Software for embedding in System- Part 2
system (OS) and Real time operating system (RTOS), Concurrent Processes, tasks
or threads
A System is composed of twoor more concurrent processes that execute Operating
System
Multitasking (multiprocessing ormultithreaded) software Scheduling multiple tasks,
Processes, memory, device, ports,network, file system, timers, eventfunctions, inter
processorcommunication, shared memory,security, GUIs, ... management
Real Time Operating System (RTOS)
Embedded software is most often designedfor deterministic performance and task and ISR
latencies in addition to the OSfunctions
www.Vidyarthiplus.in
Performing multiple actions andcontrolling multiple devices and their ISRswith defined
real time constraints and with deadlines for these Task and ISRs priority allocations, their
preemptive scheduling, OS for providing deterministic performance during concurrent processing
and execution with hard(stringent) or soft timing requirements with priority allocation and pre-
emption. RTOS is needed when the tasks for thesystem have real time constraints anddeadlines for
finishing the tasks
Important RTOSes
OS μCOS-II
VxWorks
Windows CE
OSEK
Linux 2.6.24 or RTLinux
QNX
1. Editor,
2. Interpreter,
3. Compiler,
4. Assembler and Cross Assembler, IDE,
5. Prototyper
Project Manager
To manage the files that associateswith a design stage project and keepseveral versions of
the source file(s) inan orderly fashion.
Signal Tracking Systems - for examples, anautomatic signal tracker and a target tracker.
Thin Client to provide the disk-less nodeswith the remote boot capability.[Application of
thin- clients is accesses to adata center from a number of nodes; or in an Internet Laboratory
accesses to the Internetleased line through a remote Server]. Embedded Firewall / Router using
www.Vidyarthiplus.in
ARM7/multi-processor with twoEthernet interfaces and interfacessupport to for PPP, TCP/IP and
UDPprotocols.
Sophisticated Applications
Mobile Smart Phones and Computingsystems
Mobile computer
Embedded systems for wireless LAN andconvergent technology devices
Embedded systems for Video, Interactivevideo, broadband IPv6 (Internet Protocolversion
6) Internet and other products, realtime video and speech or multimediaprocessing systems
Embedded Interface and Networking systems using high speed (400 MHz plus), and
ultra high speed (10 Gbps) and largebandwidth: Routers, LANs, switches andgateways,
SANs (Storage Area Networks), WANs (Wide Area Networks),Security products and
High-speed Networksecurity, Gigabit rate encryption rateproducts
VLSI chip
SoC is a system on a VLSI chip that has all needed analog as well as digitalcircuits,
processors and software, forexample, single-chip mobile phone.
www.Vidyarthiplus.in
SYSTEM-ON-CHIP
Embeds:
• Multiple processors,
• memories,
• multiple standard source solutions (IPCores),
• Logic and analog units
Embedding a Microprocessor
General Purpose Processor (GPP)microprocessor can be embedded on aVSLI chip.
Embedding an ASIP
Processor with instruction set designedfor specific application on a VLSI chipfor example,
microcontroller, DSP, IO,media, network or other domainspecific processorEmbedding a
Microcontroller core
68HC11xx,
HC12xx,
HC16xx8051,
80251 PIC 16F84 or
16C76, 16F876 and PIC18Microcontroller
Enhancements of ARM9/ARM7 ARM
Cortex M3 from Philips, Samsung and ST Microelectronics
www.Vidyarthiplus.in
Programmable logic device and FPGA (Field Programmable Gate Array) cores
Other logic and analog units.
www.Vidyarthiplus.in
IPs in SoC
IP –a standard source solution forsynthesizing a higher-level component byconfiguring a
core of VLSI circuit orFPGA core available as an IntellectualProperty, called (IP).
High Level Components with gate levelsophistication circuit much above level ofcounters
and registers.
IPs
Designer or designing company holdsthe copyright for the synthesizeddesign of a higher-
level component forgate-level implementation of an IP.
One might have to pay royalty forevery chip shipped. An embeddedsystem may
incorporate several IPs.
An IP may provide a design for adaptive filtering of a signal.
full design for implementing HypertextTransfer Protocol (HTTP) or File Transfer
Protocol (FTP) to transmit a web page orfile on Internet.
USB port controller, Bluetooth, GPSinterface, Wireless 802.11or 802.16interfaces
An FPGA consists of a large numberof programmable gates on a VLSIchip. There is a set
of gates in eachFPGA cell, called 'macro cell'.
Embedded system designed with aview of offering enhancingfunctionalities in future, then
FPGAcore can be used in the circuits.Each cell has several inputs andoutputs. All cells
interconnect like anarray (matrix).Each interconnection is programmablethrough the
associated memory RAMin a FPGA programming tool.
A concept is using FPGA (FieldProgrammable Gate Arrays) core alongwith single or
multiple processors.
Use of Xilinx Spartan-3 90 nm based FPGAs with Power PCs(2003 )
Use of FPGAs cum ProcessorCores
FPGA 125136 Logic Cells along withthe Four IBM PowerPC processors[Exemplary
Application: System witha Data Encryption Engine at 1.5 Gbps]
FPGA
An SIMD instruction, Fourier transform andits inverse, DFT or Laplace transform andits
inverse, compression or decompression,encrypting or deciphering, a specificpattern-
recognition (for recognizing asignature or finger print or DNA sequence).
Configure an algorithm into the logic gatesof the FPGA.
www.Vidyarthiplus.in
UNIT II
A port is a device to receive the bytes from external peripheral(s) [or device(s) or
processor(s) or controllers] for reading them later using instructions executed on the processor to
send the bytes to external peripheral or device or processor using instructions executed on
processor.
A Port connects to the processor using address decoder and system buses. The processor
uses the addresses of the port-registers for programming the port functions or modes, reading port
status and for writing or reading bytes.
Example
SI serial interface in 8051
SPI serial peripheral interface in 68HC11
PPI parallel peripheral interface 8255
Ports P0, P1, P2 and P3 in 8051 or PA, PB,PC and PD in 68HC11
COM1 and COM2 ports in an IBM PC
IO Port Types
Types of Serial ports
Synchronous Serial Input
Synchronous Serial Output
Asynchronous Serial UART input
Asynchronous Serial UART output (both as input and as output, for example,modem.)
Types of parallel ports
Parallel port one bit Input
Parallel one bit output
Parallel Port multi-bit Input
Parallel Port multi-bit Output
www.Vidyarthiplus.in
Inter-processor data transfer, reading from CD or hard disk, audio input, video input, dial
tone, network input, transceiver input, scanner input, remote controller input, serial I/O bus input,
writing to flash memory using SDIO (Secure Data Association IO based card).
saves the bits in an 8-bit shift register. The processing element at the port (peripheral) saves
the byte at a port register from where the microprocessor reads the byte.
Master output slave input (MOSI) and Master input slave output (MISO)
MOSI when the SCLK is sent from the sender to the receiver and slave is forced to
synchronize sent inputs from the master as per the inputs from master clock.
MISO when the SCLK is sent to the sender (slave)from the receiver (master) and slave is
forced to synchronize for sending the inputs to master as per the master clock outputs.
Synchronous serial input is used for interprocessor transfers, audio inputs and streaming
data inputs.
Each bit in each byte is in synchronization at input and each bit in each byte is in
synchronization at output with the master clock output.
The bytes are sent or received at constant rates. The I/Os can also be on same I/O line
when input/output clock pulses either suitably modulate or encode the serial input/output,
respectively. If clock period = T, then data transfer rate is (1/T)bps.
The processing element at the port (peripheral)sends and receives the byte at a port register
to or from where the microprocessor writes or reads the byte
www.Vidyarthiplus.in
Does not receive the clock pulses or clock information along with the bits.
Each bit is received in each byte at fixed intervals but each received byte is not in
synchronization.
Bytes separate by the variable intervals or phase differences.
Asynchronous serial input also called UART input if serial input is according to UART
protocol
Asynchronous serial input is used for keypad inputs and modem inputs in computers
Keypad controller serial data-in, mice, keyboard controller, modem input, character send
inputs on serial line [also called UART (universal receiver and transmitter) input when
according to UART mode]
www.Vidyarthiplus.in
Synchronous serial output is also called UART output if serial output is according to
UART protocol
Example Serial Asynchronous Output
_ Output from modem, output for printer, the output on a serial line [also called UART output
when according to UART]
Half Duplex
Half duplex means as follows: at an instant communication can only be one way (input or
output) on a bi-directional line.
An example of half-duplex mode─ telephone communication. On one telephone line, the
talk can only in the half duplex way mode.
Full Duplex
Full duplex means that at an instant,the communication can be both ways.
An example of the full duplexasynchronous mode of communicationis the communication between
themodem and the computer though TxDand RxD lines or communication using
SI in modes 1, 2 and 3 in 8051
Parallel Port single bit input
Completion of a revolution of a wheel,
Achievingpreset pressure in a boiler,
Exceeding the upper limit of permittedweight over the pan of an electronicbalance,
Presence of a magnetic piece in the vicinityof or within reach of a robot arm to its endpoint
and Filling of a liquid up to a fixed level.
Parallel Port Output- single bit
PWM output for a DAC, which controlsliquid level, or temperature, or pressure, orspeed or
angular position of a rotating shaftor a linear displacement of an object or ad.c. motor
control
Pulses to an external circuit
Control signal to an external circuit
Parallel Port Input- multi-bit
ADC input from liquid level measuringsensor or temperature sensor or pressuresensor or
speed sensor or d.c. motor rpmsensor
Encoder inputs for bits for angular positionof a rotating shaft or a linear displacementof an
object.
www.Vidyarthiplus.in
1. Bytes (or frames) need not maintain a constantphase difference and are asynchronous,
i.e., notin synchronization. There is permission to sendeither bytes or frames at variable
timeintervals─ Thisfacilitates in-betweenhandshaking between the serial transmitter portand serial
receiver port
2. Though the clock must ticking at a certain ratealways has to be there to transmit the bits
of asingle byte (or frame) serially, it is alwaysimplicit to the asynchronous data receiver and
isindependent of the transmitter
Clock Features
_ The transmitter does not transmit (neitherseparately nor by encoding using
modulation)along with the serial stream of bits any clockrate information in the
asynchronouscommunication and receiver clock thus is notable to maintain identical frequency
andconstant phase difference with transmitter clock
Example: IBM personal computer has two COMports (communication ports)
_ COM1 and COM2 at IO addresses 0x2F8-0xFFand 0xx38-0x3FF
_ Handshaking signals─ RI, DCD, DSR, DTR,RTS, CTS, DTR
_ Data Bits─ RxD and TxDExample: COM port and Modem Handshakingsignals
_ When a modem connects, modem sendsdata carrier detect DCD signal at
aninstance t0.
_ Communicates data set ready (DSR)signal at an instance t1 when it receives
thebytes on the line.
_ Receiving computer (terminal) responds atan instance t2 by data terminal
ready(DTR) signal.
After DTR, request to send (RTS) signal is sent at aninstance t3
_ Receiving end responds by clear to send (CTS) signalat an instance t4. After the
response CTS, the data bitsare transmitted by modem from an instance t5 to
thereceiver terminal.
_ Between two sets of bytes sent in asynchronous mode,the handshaking signals
RTS and CTS can again beexchanged. This explains why the bytes do not
remainsynchronized during asynchronous transmission.
www.Vidyarthiplus.in
3. Communication Protocols
1. Protocol
A protocol is a standard adopted,which tells the way in which the bits ofa frame must be
sent from a device (orcontroller or port or processor) toanother device or system
[Even in personal communication wefollow a protocol – we say Hello! Thentalk and then say good
bye!]
A protocol defines how are the framebits:
1) sent− synchronously or Isosynchronouslyor asynchronously and at what rate(s)?
2) preceded by the header bits?How the receiving device addresscommunicated so
that only destineddevice activates and receives the bits?
[Needed when several devicesaddressed though a common line(bus)]
3) How can the transmitting deviceaddress defined so that receivingdevice comes to
know the sourcewhen receiving data from severalsources?
4) How the frame-length defined so thatreceiving device know the frame-sizein advance?
5) Frame-content specifications –Arethe sent frame bits specify the controlor device
configuring or commend ordata?
6) Are there succeeding to frame thetrailing bits so that receiving devicecan check the
errors, if any inreception before it detects end of theframe ?
A protocol may also define:
7) Frame bits minimum and maximumlength permitted per frame
www.Vidyarthiplus.in
System clock
• In a system an hardware-timing device isprogrammed to tick at constant intervals.
• At each tick there is an interrupt
• A chain of interrupts thus occur at periodicintervals.
• The interval is as per a presetcount value
• The interrupts are called system clockinterrupts, when used to control the schedulesand
timings of the system
• Actions are analogous to that of ahardware timer. While there is physicallimit (1, 2 or 3 or
4) for the number ofhardware timers in a system, SWTscan be limited by the number
ofinterrupt vectors provided by the user.
• Certain processors (microcontrollers)also defines the interrupt vectoraddresses of 2 or 4
SWTs
SERIAL BUSCOMMUNICATION PROTOCOLS– I2C
Interconnecting number of device circuits, Assume flash memory, touch screen,ICs for
measuring temperatures andICs for measuring pressures at anumber of processes in a plant.
_ ICs mutually network through acommon synchronous serial bus I2C An 'Inter Integrated Circuit'
(I2C) bus,a popular bus for these circuits.
_Synchronous Serial Bus Communication fornetworking
_ Each specific I/O synchronous serial devicemay be connected to other using specificinterfaces,
for example, with I/O deviceusing I2C controller
_ I2C Bus communication− use of onlysimplifies the number of connections andprovides a
common way (protocol) ofconnecting different or same type of I/Odevices using synchronous
serialcommunication
IO I2C Bus
_ Any device that is compatible with a I2Cbus can be added to the system(assuming an appropriate
device driverprogram is available), and a I2C devicecan be integrated into any system thatuses that
I2C bus.
www.Vidyarthiplus.in
_ However, at an instance, master is one,which initiates a data transfer on SDA(serial data) line
and which transmits theSCL (serial clock) pulses. From master, adata frame has fields beginning
from startbit
Three standards:
1. 33 kbps CAN,
2. 110 kbps Fault Tolerant CAN,
3. 1 Mbps High Speed CAN
CAN protocol
There is a CAN controller between the CANline and the host node.
_ CAN controller ─BIU (Bus Interface Unit)consisting of a buffer and driver
_ Method for arbitration─ CSMA/AMP(Carrier Sense Multiple Access withArbitration on
Message Priority basis)
Each Distributed Node Uses:
www.Vidyarthiplus.in
_ Destination device address specified in an11-bit sub-field and whether the data bytebeing sent is
a data for the device or arequest to the device in 1-bit sub-field.
_ Maximum 211 devices can connect a CANcontroller in case of 11-bit address fieldstandard11-bit
address standard CAN
_ Identifies the device to which data isbeing sent or request is being made.
_ When RTR bit is at '1', it means thispacket is for the device at destinationaddress. If this bit is at
'0' (dominantstate) it means, this packet is a requestfor the data from the device.
Protocol defined frame bits Second field
_ Second field of 6 bits─ control field.
The first bit is for the identifier‘sextension.
_ The second bit is always '1'.
_ The last 4 bits specify code for dataLength
_ Third field of 0 to 64 bits─ Its lengthdepends on the data length code in thecontrol field.
• Fourth field (third if data field has nobit present) of 16 bits─ CRC (CyclicRedundancy Check)
bits.
• The receiver node uses it to detect theerrors, if any, during the transmission
• Fifth field of 2 bits─ First bit 'ACK slot'
• ACK = '1' and receiver sends back '0' in this slotwhen the receiver detects an error in the
reception.
• Sender after sensing '0' in the ACK slot, generallyretransmits the data frame.
• Second bit 'ACK delimiter' bit. It signals the endof ACK field.
• If the transmitting node does not receive anyacknowledgement of data frame within a
specifiedtime slot, it should retransmit.
Sixth field of 7-bits ─ end- of- theframespecification and has seven '0's
SERIAL BUSCOMMUNICATION PROTOCOLS– USB
USB Host ApplicationsConnecting
• flash memory cards,
• pen-like memory devices,
• digital camera,
• printer,
• mouse-device,
• PocketPC,
• video games,
• Scanner
www.Vidyarthiplus.in
_ network subsystems,
_ video card,
_ modem card,
_ hard disk controller,
PCI busconnects
_ thin client,
_ digital video capture card,
_ streaming displays,
_ 10/100 Base T card,
_ Card with 16 MB Flash ROM with a routergateway for a LAN and
_ Card using DEC 21040 PCI Ethernet LANcontroller.
• When the I/O devices in the distributedembedded subsystems are networked, allcan communicate
through a commonparallel bus.
• PCI connects at high speed to othersubsystems having a range of I/O devicesat very short
distances (<25 cm) using aparallel bus without having to implementa specific interface for each
I/O device.
PCI Bus Feature
_ 32- bit data bus extendible to 64 bits.
_ PCI protocol specifies the ways ofinteraction between the differentcomponents of a computer.
_ A specification version 2.1─synchronous/asynchronous throughputis up to 132/ 528 MB/s [33M
× 4/ 66M× 8 Byte/s], operates on 3.3V to 5Vsignals.
_ PCI driver can access the hardwareautomatically as well as by theprogrammer assigned
addresses.
_ Automatically detects the interfacingsystems and assigns new addresses
_ Thus, simplified addition and deletion(attachment and detachment) of thesystem peripherals.
FIFO in PCI device/card
_ Each device may use a FIFO controllerwith a FIFO buffer for maximumthroughput.
Identification Numbers
_ A device identifies its address space bythree identification numbers, (i) I/Oport (ii) Memory
locations and (iii)Configuration registers of total 256Bwith a four 4-byte unique ID. Each
PCIdevice has address space allocation of256 bytes to access it by the host
Computer
PCI device identification
_ A sixteen16-bit register in a PCI deviceidentifies this number to let that deviceauto- detect it.
www.Vidyarthiplus.in
_ Another sixteen16-bit registeridentifies a device ID number. Thesetwo numbers let allow the
device tocarry out its auto-detection by its hostcomputer.
Peripheral Component Interconnect (PCI) Bus
_ Independent from the IBMarchitecture.
_ Number of embedded devices in acomputer system use PCI
_ Three standards for the devicesinterfacing with the PC
_ PCI 32bit/33 MHz, and 64bit/66 MHz
_ PCI Extended (PCI/X) 64 bit/100 MHz ,
_ Compact PCI (cPCI) Bus
Two super speed versions
_ PCI Super V2.3 264/528 MBps 3.3V (on64- bit bus), and 132/264 (on 32-bit bus)and
_ PCI-X Super V1.01a for 800MBps 64- bitbus 3.3Volt.
PCI bridge
_ PCI bus interface switches a processorcommunication with the memory bus to PCIbus.
_ In most systems, the processor has a singledata bus that connects to a switch module
_ Some processors integrate the switchmodule onto the same integrated circuit asthe processor to
reduce the number of chipsrequired to build a system and thus the system cost.
_ Communicates with the memorythrough a memory bus (a set ofaddress, control and data buses),
adedicated set of wires that transfer databetween these two systems.
_ A separate I/O bus connects the PCIswitch to the I/O devices.
Advantage of Separate memory and I/Obuses
_ I/O system generally designed formaximum flexibility, to allow as manydifferent I/O devices as
possible tointerface to the computer
_ Memory bus is designed to provide themaximum-possible bandwidth betweenthe processor and
the memory system.
PCI-X (PCI extended)
• 133 MBps to as much as 1 GBps
• Backward compatible with existing
PCI cards
• Used in high bandwidth devices(Fiber Channel, and processors thatare part of a cluster and
GigabitEthernet)
• Maximum 264 MBpsthroughput, uses 8,16, 32, or 64 bit transfers
• 6U cards contain additional pins for userdefined I/Os
• Live insertion support (Hot-Swap),
www.Vidyarthiplus.in
C Program Elements
Preprocessor include Directive
_ Header, configuration and otheravailable source files are madethe part of an embedded
systemprogram source file by thisdirective
Examples of Preprocessor includeDirectives
# include "VxWorks.h" /* IncludeVxWorks functions*/
# include "semLib.h" /* IncludeSemaphore functions Library */
# include "taskLib.h" /* Includemultitasking functions Library */
# include "sysLib.c" /* Include system libraryfor system functions */
# include "netDrvConfig.txt" /* Include a textfile that provides the 'Network DriverConfiguration'.
*/
# include "prctlHandlers.c" /* Include file forthe codes for handling and actions as perthe
protocols used for driving streams tothe network. */
Preprocessor Macros
• Macro - A named collection of codes that isdefined in a program as preprocessor directive.
• Differs from a function in the sense that oncea macro is defined by a name, the compilerputs the
corresponding codes at the macro atevery place where that macro-name appears.re used for short
codesonly.
Difference between Macro and Function
• The codes for a function compiledonce only
• On calling that function, theprocessor has to save the context,and on return restore the context.
• Macros are used for short codesonly.
• When a function call is used instead ofmacro, the overheads (context savingand return) will take
a time, Toverheads that is the same order of magnitude asthe time, Texec for execution of
shortcodes within a function.
• Use the function when the Toverheads<<Texec and macro when Toverheads ~= or >
Texec.
Use of Modifiers
auto
unsigned
static
const
register
interrupt
extern
volatile
volatile static
Use of typedef
_ Example─ A compiler version may notprocess the declaration as an unsigned byte
_ The 'unsigned character' can then be used asa data type.
_ Declared as follows: typedef unsignedcharacter portAdata
_ Used as follows: #define PbyteportAdata0xF1
Use of Pointers
Pointers are powerful tools whenused correctly and according tocertain basic principles.
# define COM ((structsio near*) 0x2F8);
This statement with a single masterstroke assigns the addresses to all 8variables
Byte at the sio Addresses
0x2F8: Byte at RBR/THR /DLATCH-LByte
0x2F9: Byte at DLATCH-HByte
0x2FA: Byte at IER; 0x2FB: Byte at LCR;
0x2FC: Byte at MCR;
0x2FD: Byte at LSR; 0x2FE: Byte at MSR
0x2FF: Byte Dummy Character
Example
Free the memory spaces allotted to a datastructure.
#define NULL (void*) 0x0000
• Now statement & COM ((structsionear*) = NULL;assigns the COM to Null and make freethe
memory between 0x2F8 and 0x2FFfor other uses.
Data structure
• Example─ structure sio
• Eight characters─ Seven for thebytes in BR/THR/DLATCHLByte,IER, IIR, LCR, MCR, LSR,
MSRregisters of serial line device andone dummy variablere consisting of 8 charactervariables
structure for the COM port 2 inthe UART serial line device at an IBMPC.
Example of Data structure declaration
• Assume structured variable COM at theaddresses beginning 0x2F8.
# define COM ((structsio near*) 0x2F8)
• COM is at 8 addresses 0x2F8-0x2FF andis a structure consisting of 8 charactervariables
structure for the COM port 2 inthe UART serial line device at an IBMPC.
# define COM1 ((structsio near*) 0x3F8);
It will give another structured variableCOM1 at addresses beginning 0x3F8using the data
structure declared earlieras sio
Use of functions
(i) Passing the Values (elements):
The values are copied into thearguments of the functions. Whenthe function is executed in
thisway, it does not change a variable'svalue at the function, which callsnew function.
(ii) Passing the References
When an argument value to afunction passes through a pointer,the called function can change
thisvalue. On returning from thisfunction, the new value may beavailable in the calling program
oranother function called by thisfunction.
Use of Reentrant Function
• Reentrant function- A functionusable by the several tasks androutines synchronously (at thesame
time). This is because all thevalues of its argument areretrievable from the stack.
Three conditions for a function calledas reentrant function
1. All the arguments pass the valuesand none of the argument is apointer (address) whenever
acalling function calls that function.
2. When an operation is not atomic, thatfunction should not operate on anyvariable, which is
declared outside thefunction or which an interrupt serviceroutine uses or which is a globalvariable
www.Vidyarthiplus.in
but passed by reference andnot passed by value as an argumentinto the function. [The value of
such avariable or variables, which is notlocal, does not save on the stack whenthere is call to
another program.]
3. That function does not call any otherfunction that is not itself Reentrant.
Multi-dimensional array
Example 4:
charpixel [143,175, 23];
pixel [0, 2, 5] – 1st horizontal line index x,3rd vertical line index y, 6th color c.pixel assigned
144*176*24 = 608256bytes address space in a coloredpicture of resolution 144x 176 and 24colors.
Task2 ( )
void task2 (....) {
/* Declarations */
.
while (true) {
/* Codes that repeatedly execute */
.
/* Codes that execute on an event */
if (flag2) {....;}; flag2 =0;
/* Codes that execute for message to the kernel */
message2 ( );
}}
/*********************************************/
TaskN_1 ( )
void taskN_1 (....) {
/* Declarations */
.
while (true) {
/* Codes that repeatedly execute */
.
/* Codes that execute on an event */
if (flagN_1) {....;}; flagN_1 =0;
/* Codes that execute for message to the kernel */
www.Vidyarthiplus.in
messageN_1 ( );
}}
/*********************************************/
TaskN
voidtaskN (....) {
/* Declarations */
.
while (true) {
/* Codes that repeatedly execute */
.
/* Codes that execute on an event */
if (flagN) {....;}; flagN =0;
/* Codes that execute for message to the kernel */
messageN ( );
}}
/*********************************************/
2. Polling for events and messages
_ A Programming method is to facilitate execution of one of the multiple possible function calls
and the function executes after polling
_ Polling example is polling for a screen state (or Window menu) j and for a message m from an
_ defining of the object or set of objects,which are common to similar objectswithin a program and
between the manyprograms,
_ defining the methods that manipulate theobjects without modifying theirdefinitions, and
_ Creation of multiple instances of thedefined object or set of objects or newobjects
Object-oriented language
_ Inheritance
_ overloading of functions
_ overriding of functions
www.Vidyarthiplus.in
C++
_ structthat binds all the member functionstogether in C. But a C++ class has objectfeatures. It can
be extended and childclasses can be derived from it. A number ofchild classes can be derived from
a commonclass. This feature is called polymorphism.
A class can be declared as public or private.The data and methods access is restrictedwhen a class
is declared private. Structdoesnot have these features.
_ A class binds all the member functions togetherfor creating objects. The objects will have
memoryallocation as well as default assignments to itsvariables that are not declared static.
_ A class can derive (inherit) from another classalso. Creating a child class from RTCSWT as
aparent class creates a new application of theRTCSWT.
_ Methods (C functions) can have same name in theinherited class. This is called method
overloading
_ Methods can have the same name as well asthe same number and type of arguments in
the inherited class. This is called methodoverriding. These are the two significantfeatures that are
extremely useful in a largeprogram.
_ Operators in C++ can be overloaded like inmethod overloading.
_ For example, operators ++ and! areoverloaded to perform a set of operations.
www.Vidyarthiplus.in
Some disadvantages
• Lengthier Code when using Template,Multiple Inheritance (Deriving a class frommany parents),
Exceptional handling, Virtualbase classes and classes for IO Streams.
Process Concepts
A process consists of executable program (codes), state of which is controlled by OS,
the state during running of a process represented by process-status (running, blocked,
or finished), process structure—its data, objects and resources, and process control
block (PCB).
Runs when it is scheduled to run by the OS (kernel)
OS gives the control of the CPU on a process‘s request (system call).
Runs by executing the instructions and the continuous changes of its state takes
Place as the program counter (PC) changes.
• Process is that executing unit of computation, which is controlled by some process (of
the OS) for a scheduling mechanism that lets it execute on the CPU and by some
process at OS for a resource management mechanism that lets it use the system-
memory and other system resources such as network, file, display or printer.
Modulating process,
Display process,
GUIs (graphic user interfaces), and
Key input process ─ for provisioning of the user interrupts
Context
Context loads into the CPU registers from memory when process starts running, and the
registers save at the addresses of register-save area on the context switch to another process
The present CPU registers, which include program counter and stack pointer are called
context
When context saves on the PCB pointed process-stack and register-save area addresses,
then the running process stops.
Other process context now loads and that process runs─ This means that the context
has switched.
Process… heavyweight
• Process considered as a heavyweight process and a kernel-level controlled entity.
• Process thus can have codes in secondary memory from which the pages can be
swapped into the physical primary memory during running of the process. [Heavy
weight means its running may depend on system resources]
• May have process structure with the virtual memory map, file descriptors,
user–ID, etc.
• Can have multiple threads, which share the process structure thread
• A process or sub-process within a process that has its own program counter, its own
stack pointer and stack, its own priority parameter for its scheduling by a thread
scheduler
• Its‘ variables that load into the processor registers on context switching.
• Has own signal mask at the kernel. Thread‘s signal mask
• When unmasked lets the thread activate and run.
• When masked, the thread is put into a queue of pending threads.
Thread‘s Stack
• A thread stack is at a memory address block allocated by the OS.
www.Vidyarthiplus.in
Multiprocessing OS
Thread parameters
• Each thread has independent parameters ID, priority, program counter, stack
pointer, CPU registers and its present status.
• Thread states─ starting, running, blocked (sleep) and finished
Thread’s stack
Task Concepts
• An application program can also be said to be a program consisting of the tasks and
task behaviors in various states that are controlled by OS.
• A task is like a process or thread in an OS.
• Task─ term used for the process in the RTOSes for the embedded systems.
For example, VxWorks and μCOS-II are the RTOSes, which use the term
task.
• A task consists of executable program (codes), state of which is controlled by
OS, the state during running of a task represented by information of process status
(running, blocked, or finished),process-structure—its data, objects and resources,
and task control block (PCB).
• Runs when it is scheduled to run by the OS (kernel), which gives the control of the
CPU on a task request (system call) or a message.
• Runs by executing the instructions and the continuous changes of its state takes
place as the program counter (PC) changes.
• Task is that executing unit of computation, which is controlled by some process at
the OS scheduling mechanism, which lets it execute on the CPU and by some
process at OS for a resource-management mechanism that lets it use the system
memory and other system-resources such as network, file, display or printer.
• A task─ an independent process.
• No task can call another task. [It is unlike a C (or C++) function, which can call
another function.]
• The task─ can send signal (s) or message(s) that can let another task run.
• The OS can only block a running task and let another task gain access of CPU to
run the servicing codes
www.Vidyarthiplus.in
Task States
(i) Idle state [Not attached or not
registered]
(ii) Ready State [Attached or registered]
(iii) Running state
(iv) Blocked (waiting) state
(v) Delayed for a preset period
Running state
• Executing the codes and getting the system resources at this instance. It will run till
it needs some IPC (input) or wait for an event or till it gets pre-empted by another
higher priority task than this one.
•
Blocked (waiting) state
• Execution of task codes suspends after saving the needed parameters into its
Context. It needs some IPC (input) or it needs to wait for an event or wait for higher
priority task to block to enable running after blocking.
Function
• Function is an entity used in any program, function, task or thread for performing
specific set of actions when called and on finishing the action the control returns to
the function calling entity (a calling function or task or process or thread).
• Each function has an ID (name)
• has program counter and
• has its stack, which saves when it calls another function and the stack restores on
return to the caller.
• Functions can be nested. One function call another, that can call another, and so on
and later the return is in reverse order
Memory allocation
when a process is created, the memory manager allocates the memory addresses (blocks) to
it by mapping the process address space.
Threads of a process share the memory space of the process
Dynamic Page-Allocation
Dynamic Data memory Allocation
Dynamic address-relocation
Multiprocessor Memory Allocation
Memory Protection to OS functions
RTOS COS-II
Memory partitioning
A task must create a memory partition or several memory partitions by using function
OSMemCreate ( )
Then the task is permitted to use the partition or partitions.
A partition has several memory blocks.
Task consists of several fixed size memory blocks.
The fixed size memory blocks allocation and de-allocation time takes fixed time
(deterministic).
OSMemGet ( )
─ to provide a task a memory block or blocks from the partition
www.Vidyarthiplus.in
OSMemPut ( )
─ to release a memory block or blocks to the partition
• Task defined as an executing computational unit that processes on a CPU and state
of which is under the control of kernel of an operating system.
Calling Source
Context Saving
Structure
• Function─ can change the global variables. The interrupts must be disabled and
after finishing use of global variable the interrupts are enabled.
• ISR─ When using a global variable in it, the interrupts must be disabled and after
finishing use of global variable the interrupts are enabled (analogous to case of a
function).
• Task ─ When using a global variable, either the interrupts are disabled and after
finishing use of global variable the interrupts are enabled or use of the semaphores
or lock functions in critical sections, which can use global variables and memory
buffers.
• Function─ can get the parameters and messages through the arguments passed to it
or global variables the references to which are made by it. Function returns the
results of the Operations.
• ISR─ using IPC functions can send (post) the signals, tokens or messages. ISR
can‘t use the mutex protection of the critical sections by wait for the signals, tokens
or messages.
•OS Functions provide for the use of a semaphore for signalling or notifying of
certain action or notifying the acceptance of the notice or signal.
• Let a binary Boolean variable, s, represents the semaphore. The taken and post
operations on s─ (i)signals or notifies operations for communicating the occurrence
of an event and (ii) for communicating taking note of the event.
• Notifying variable s is like a token ─ (i) acceptance of the token is taking note of
that event (ii) Release of a token is the occurrence of an event
Binary Semaphore
• Let the token (flag for event occurrence) s initial value = 0
• Assume that the s increments from 0 to 1 for signalling or notifying occurrence of
an event from a section of codes in a task or thread.
• When the event is taken note by section in another task waiting for that event, the s
decrements from 1 to 0 and the waiting task codes start another action.
• When s = 1─ assumed that it has been released (or sent or posted) and no task code
section has taken it yet.
• When s = 0 ─ assumed that it has been taken (or accepted) and other task code
• section has not taken it yet
Binary Semaphore use in ISR and Task
• An ISR can release a token.
• A task can release the token as well accept the token or wait for taking the token
Decomposition of the long time taking task into a number of sequential states
Decomposition of the long time taking task into a number of sequential states or a number
of node-places and transitions as in finite state machine. (FSM).
Then its one of its states or transitions runs in the first cycle, the next state in the second
cycle and so on.
This task then reduces the response times of the remaining tasks that are executed after a
state change.
Development Approaches
A host machine (Computer) for example, a PCuses a general purpose OS, for example,
Windowsor Unix for system development. The targetconnects by a network protocol for
exampleTCP/IP during the development phase. Thedeveloped codes and the target RTOS
functionsfirst connect a target. The target with downloadedcodes finally disconnects and
contains a small sizefootprint of RTOS. For example, the target doesnot download host
machine resident compiler,cross compiler, editor for programs, simulationand debugging
programs, and MMU support.
Types of RTOSes
OS_ENTER_CRITICAL
Macro to disable interrupts before acritical section
Used at the start of a ISR or task - for sending amessage to RTOS kernel and disabling
theinterrupts
Use compulsory when the OS kernel is to takenote of and disable the interrupts of the
system
OS_EXIT_CRITICAL─ Macro to enable interrupts. [ENTERand EXIT functions form a
pair in thecritical section]
used at the end of critical section
for sending a message to RTOS kernel andenabling the interrupts
Use is compulsory to OS kernel for taking noteof and enables the disabled interrupts.
Semaphore Functions
Provides for using same semaphorefunctions as an event signaling flagor mutex or counting
semaphore.
OSSemCreate (semVal)
OSSemPend (*eventPointer, timeOut,*SemErrPointer)
OSSemAccept (*eventPointer)
OSSemPost (*eventPointer)
OSSemQuery (*eventPointer)
Mailbox Functions
Queue Functions
• The message pointers post into a queueby the tasks either at the back as in aqueue or at the front
as in a stack.
• A task can thus insert a given messagefor deleting either in the first in firstout (FIFO) mode or in
priority modefor priority message.
• Assume pointer, **Qtop, to a queue ofpointers for the messages and
• Assume two pointers, *QfrontPointerand *QbackPointer to insert (post) anddelete (retrieve),
respectively, thepointer of the message.
Functions
OSQCreate (**QTop, qSize)
OSQPost (*QMsgPointer, *QMsg)
OSQPostFront (*QMsgPointer, *QMsg)
OSQPend (*QMsgPointer, timeOut, *Qerr)
OSQFlush(*QMsgPointer)
OSQQuery (*QMsgPointer, *QData)
IPC Objects
For which there is waiting process orthread
A process (thread or scheduler, task orISR) generates some information by orvalue and
sends event or semaphore ormessage into queue or a single IPC ormultiple objects as
output so that it letsanother process waiting for that objectin order to take note or use the
object.
A process waits for an IPC or object (s)in order to take note or use the object(s)