Final Machine Implementable Software
- Its like a table of address and bytes at each address of the system memory
- The table has to read as a ROM image for the targeted hardware.
- bytes are allocated for Stack Space, Startup code, ISRs, Kernels,etc
- If the system is updated, then the storage of bytes in the System ROM image also to be changed or updated.
Software for a Processor Specific Assembly Language
- This technique is widely used now a days, in which the programmer should aware of the processor specfic assmebly language to program
- Cross Assembler is one which creates object code for a target architecture in which the input is the assembly language
- Cross Compiler is one which creates object code for a different target architecture in which the input is a high level language
- Linker is an entity in which the linking files or libraries which are required to execute a program are linked during the runtime.
- Loader loads the program from the secondary memory to main memory.
- Locator also called as relocator deals with the addressing issues in the main memory.
- Device programmer or program burner which downloads the exe file into the Chip or IC.
Software in High Level Languages
- Mainly C, C++ and Java are the languages helpful in designing embedded systems,
- C is major source language for embedded Systems.
- C contains—– Preprocessing, Main function, Interrupt Service Routines, Tasks (number of tasks 1….N), Kernel or Scheduler, Standard Libraries or functions.
Tools Used: Raisonance IDE (RIDE)
Microcontroller: Intel 8051, Atmel89C51 or Philips P80C51
Language to be used: “C Language”
Steps Used in using RIDE Tool
- Goto Menu bar “Project à New”
- Name the project, Directory z:, Target is 80C51 and Type of Application is Application click next.
- Select the device “Philips P80C51” and then click properties and select Harvard Architecture.
- Goto Menu bar “Fileà New à C Files”
- Type the C code and don’t forget to include “#include ”, since this header file contains all the ports bits and its address.
- Goto Menu bar “Project à Add Node Source/Application” and then select the C file which was typed in step 5.
- Goto Menu bar “Project à Build all”, if there are any errors during the compilation, then correct the errors and again the “Build all” or press Shift + F9.
- Goto Menu bar “Debug à Start ” or press “Ctl+D”
- In the left side pane, under debugger pane you can see the Data Dump, Main Registers and Peripherals.
- For doing some simple programs, you can view the contents of any ports, timers, interrupt controllers, Main Registers.
(NB: the above steps is only for doing simple programs related to microcontroller 8051 and the raisonance IDE will not work for running Analog devices like Motor, sensors etc.)
Processors in Embedded Systems
A Processor in an Embedded Systems contains two essential parts
* Control Unit – Which fetches the instruction from the system memory
* Execution unit
Arithmetic and Logic Unit is also the part of Execution Unit
It performs Data Transfer and data conversion operations
Types of processors
General Purpose Processors (GPP)
Application Specific System Processors
The processors which are relevant to a particular application like
Set Top Boxes
Important considerations while selecting a processor
Maximum bits in an operand like (8 or 16 or 32 bit)
Clock frequency in MHz and processing speed in MIPS (Millions of Instructions per second)
ability to solve the complex algorithms used in meeting the deadline for their processing
It is a VLSI Chip which has a Central Processing Unit (CPU), which may have some optional components like Cache memory, Floating Point Unit (FPU),etc.
Microcontroller contains functional circuits and application specific circuits
Functional Circuits are
Memory (RAM, ROM, Flash)
Timer (Also Watch Dog Timer)
I/O Ports (Parallel Ports )
UART for Serial Communication.
Application Specific Circuits
DMA Controller (Direct Memory Access)
Analog to Digital Converter (ADC)
Digital to Analog Converter (DAC)
but now a days, lot of embedded systems comes with ADC, DAC,Modem and DMA Controllers.
Digital Signal Processors
- They are useful in developing applications like Video, audio signal processing,
- Analog signals like ECG, EEG, Seismic Signals, etc are all processed using Digital Signal Processors.
- Most of the DSPs are inbuilt with MAC Units (Multiply and Accumulate Units)
- Texas instruments TM series are some of the example of DSPs
The Combination of Software and Hardware in which the software controls the entire hardware for a dedicated application.
Components of an Embedded Systems
* Power Supply and Reset circuit
* Watch Dog Timer or WDT
RAM Which stores the data (data Memory)
ROM Which stores the Program (Program Memory)
* Interrupt controllers
* IO Ports
* UART for Serial communication
* Parallel ports
Classification of Embedded Systems
Small Scale Embedded Systems
* Uses 8 or 16 bit microcontrollers
* Software and harware complexity is very less
* uses C as a programming language
* The codes are cross compiled and stored in the system memory.
* They sometimes may be battery operated.
Example processors : Intel 8051, Microchip PIC16f8X, Motorola 68HC05,08
Medium Scale Embedded Systems
* Uses 16 or 32 bit controllers or sometime uses DSPs(Digital Signal Processors) or RISC (Reduced Instruction Set Processors)
* They have great complexity.
* They use a Real Time Operating Systems (RTOS), SImulators, Debuggers, emulators, and IDE to develop all these functionalities.
Example: Intel 8051, 80251,80196 Motorola 68HCX11,12
Large Scale Embedded Systems
* They use 32 bit processors.
* They use CPLDs or FPGAs or ASICs
* They are System on Chip Controllers
* They go from initial design like co design and co analysis and co verification
* The Processing speeds are very high in these systems.
* They sometime may be proprietary systems in which the development tools may not be available at all.
Example: ARM7, IBM Power PC
Embedded Systems Lab Tools
1. Intel 8051 Microcontroller or Atmel 89c51 Microcontroller
Simulator: Raisonance IDE
2. Micro C OS II – A Real Time Operating System.
* Basic Knowledge of Microprocessors and its instruction set.
* Conventional Operating System Concepts.