INSE lecture 18 – Embedded systems  what they are  hardware for embedded systems  kernels for embedded systems  building embedded systems  testing.

Slides:



Advertisements
Similar presentations
Operating System Structures
Advertisements

The Operating System. What is an Operating System? The program that is loaded first and manages the hardware resources like main memory, backing storage.
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Operating System Structure
Introduction CSCI 444/544 Operating Systems Fall 2008.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Lecture 1: History of Operating System
CMPTR1 CHAPTER 3 COMPUTER SOFTWARE Application Software – The programs/software/apps that we run to do things like word processing, web browsing, and games.
Cs238 Lecture 3 Operating System Structures Dr. Alan R. Davis.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
Input-Output Problems L1 Prof. Sin-Min Lee Department of Mathematics and Computer Science.
Operating Systems.
What do operating systems do? manage processes manage memory and computer resources provide security features execute user programs make solving user.
CPU Describe the purpose of the CPU
Microcontroller: Introduction
Course: Introduction to Computers
COMP Computer Basics Yi Hong May 13, 2015.
 Chasis / System cabinet  A plastic enclosure that contains most of the components of a computer (usually excluding the display, keyboard and mouse)
Parts of a Computer Why Use Binary Numbers? Source Code - Assembly - Machine Code.
Operating System. Architecture of Computer System Hardware Operating System (OS) Programming Language (e.g. PASCAL) Application Programs (e.g. WORD, EXCEL)
The Computer Systems By : Prabir Nandi Computer Instructor KV Lumding.
Introduction and Overview Questions answered in this lecture: What is an operating system? How have operating systems evolved? Why study operating systems?
CSC 322 Operating Systems Concepts Lecture - 3: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Contact Information Office: 225 Neville Hall Office Hours: Monday and Wednesday 12:00-1:00 and by appointment.
Computers Are Your Future Eleventh Edition Chapter 2: Inside the System Unit Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall1.
C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
OPERATING SYSTEMS Goals of the course Definitions of operating systems Operating system goals What is not an operating system Computer architecture O/S.
1.1 Operating System Concepts Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Operating Systems Overview Part 2: History (continued)
School of Computer Science & Information Technology G6DICP Introduction to Computer Programming Milena Radenkovic.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
Computer Organization & Assembly Language © by DR. M. Amer.
Operating Systems Lesson Objective: Understanding the functions of an operating system. Learning Outcome: Answer some basic questions on operating systems.
Development of Computers. Hardware 1. Original concept: Charles Babbage 1840’s 2. 4 basic components of a computer system: input store mill output (Now:
ELEMENTS OF A COMPUTER SYSTEM HARDWARE SOFTWARE PEOPLEWARE DATA.
Chapter 1: Introduction
Outcome 1: Describe the structure and function of an operating system.
1 THE COMPUTER. 2 Input Processing Output Storage 4 basic functions.
CIS250 OPERATING SYSTEMS Chapter One Introduction.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Chapter 5A Transforming Data Into Information.
Unit 1: Computing Fundamentals. Computer Tour-There are 7 major components inside a computer  Write down each major component as it is discussed.  Watch.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
1.1 Sandeep TayalCSE Department MAIT 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems.
Introduction  Program: Set of sequence instruction that tell the computer what to do.  Software: A collection of programs, data, and information. 
Hardware/Software Basics Test Get out your DIY Test Review.
Chapter 1 An Overview of Computers and Programming Languages.
First lecture.  Lecture note  ELearning web site :  Abraham Silberschatz, Peter B. Galvin, Greg Gagne, “Operating.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Identify internal hardware devices (e. g
IF I ONLY HAD A BRAIN THE MICROCONTROLLER
OPERATING SYSTEM CONCEPT AND PRACTISE
Applied Operating System Concepts
What Do Computers Do? A computer system is
Java Programming: From the Ground Up
Technology Literacy Hardware.
Course: Introduction to Computers
Introduction to Operating System
Java programming lecture one
Microcomputer Architecture
Computer Parts There are four main equipment functions of a computer system: Input, Processing, Storage and Output. Input: the transferring of information.
חוברת שקפים להרצאות של ד"ר יאיר ויסמן מבוססת על אתר האינטרנט:
Computers: Hardware and Software
Operating System Concepts
Computer Parts There are four main equipment functions of a computer system: Input, Processing, Storage and Output. Input: the transferring of information.
Introduction to Operating Systems
Introduction to Operating Systems
Java Programming Introduction
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
Operating System Concepts
Function of Operating Systems
Presentation transcript:

INSE lecture 18 – Embedded systems  what they are  hardware for embedded systems  kernels for embedded systems  building embedded systems  testing embedded systems  embedded systems in Java

What “ embedded ” means  a computer (usually small) built into some non-computer equipment  usually to monitor & control that other equipment  ~98% of CPUs since 2004?

Physical aspects  Small, to occupy minimal space  Often need to be “ ruggedized ” against  temperature (high, low, sudden change)  vibration  humidity, oil, chemical attack  nuclear shock (military applications)  Therefore often encapsulated in a resin-filled metal box

Central hardware aspects  Low cost (to not significantly raise the unit price of the whole system)  Minimal CPU/ROM/RAM – but that means something different every year  Still often 8-bit or 16-bit; occasionally 32-bit, now rarely 4-bit  low clock speeds – but faster every year  ? Low-power components in battery-based systems

Peripheral aspects  Often switches or primitive keypad (not a full typewriter keyboard)  No screen or a primitive screen  Input devices can include thermometers, pressure sensors, rev-counters, radar etc;  Output devices are often relays or other electro-mechanical control systems  In “ electronic ” systems (e.g. DVDs, mobile phones) I/O can be via specialist chips (e.g. audio)

Software aspects  No need or memory-space for a full O/S  but often a “ kernel ” of an O/S  peripheral interfaces – e.g. interrupt drivers

Implies new SE challenges!  tighter restrictions on design freedom  extra issues to design for  to fit small hardware  whether speed is adequate ……  programming methods  testing methods

Kernel software  many embedded systems need an O/S “ kernel ”

Kernel for common services  interrupt drivers  ? “ flash ” disk => a simple filing system  ?elementary scheduler The kernel of a larger embedded system might go further – e.g.  ?an elementary database

Commercial kernels  Many are available  depends on the CPU type

Building embedded software  We are not using a general-purpose computer! – consequences  Languages

Not a general-purpose computer So  nowhere to hold source & binary files on it  can ’ t edit on it  can ’ t compile on it …… Therefore  develop the source and binary on a general- purpose computer => specialist IDE?  cross-compile it;  various means for transferring it to the target.

Language needs  need ability to write interrupt drivers?  need to address specific memory addresses?  bitwise operations?

Common languages  assembler CC  C++  Ada  Java (later)

Testing embedded software  hampered by hardware restrictions  need some new testing tactics!

Instrumenting the hardware  Collecting & observing electronics signals from the hardware  probably doesn ’ t change the behaviour of the system, but …  the information is of limited use.

Slaving the hardware  a modified version of the system motherboard,  attached to the development computer (rather than in the target environment)  runs under control of the development computer  development computer fakes inputs;  development computer collects outputs.  May affect the behaviour of the system under test

Extending the hardware  Extend a test motherboard to support keyboard, screen etc.  Very likely to significantly affect the system under test

Or just simulate!  Want software on the development system that “ fakes ” the behaviour of the target hardware  Good for large-volume preliminary tests  Might be part of the IDE  Many commercial simulators available – depends on the CPU

Embedded Java  A special case  Commonly used where there is a simple GUI

Background  Java is usually compiled to “ bytecode ”  … not to executable machine code  The bytecode is interpreted by a “ Java Virtual Machine ” (JVM) program  Only need a JVM for a CPU to run Java on it  … don ’ t need any cross-compiler  … can test on anything else with a JVM

Features of embedded Java  Can use Java library  AWT is especially useful for GUIs  Bytecode is compact => need less ROM  Very portable – e.g. can easily change CPU chip  Bytecode is downloadable (if there is a communications peripheral)  SLOW  so may be one of a pair of languages in some embedded systems

After this lecture  Keep your eye open for new kinds of embedded systems  … and their new features/tradeoffs etc  Be aware of the huge number of jobs in such an industry …

u © C Lester