Embedded Systems John Regehr CS 5460, Dec 04. Embedded Systems  Account for >99% of new microprocessors  Consumer electronics  Vehicle control systems.

Slides:



Advertisements
Similar presentations
Embedded Systems Microcontrollers & Embedded Processors An Overview.
Advertisements

Embedded System Lab. What is an embedded systems? An embedded system is a computer system designed for specific control functions within a larger system,
CS 478: Microcontroller Systems University of Wisconsin-Eau Claire Dan Ernst CE 478 Microcontroller Systems
Khaled A. Al-Utaibi  Computers are Every Where  What is Computer Engineering?  Design Levels  Computer Engineering Fields  What.
Research Overview John Regehr Fall Part 1 – Embedded Systems.
Introduction CSCI 444/544 Operating Systems Fall 2008.
Lecture 12 Page 1 CS 111 Online Devices and Device Drivers CS 111 On-Line MS Program Operating Systems Peter Reiher.
Internet of Things with Intel Edison Presentation Paul Guermonprez Intel Software
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
Chapter 13 Embedded Systems
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Embedded Systems Introduction CS423 Dick Steflik.
Operating System Structure. Announcements Make sure you are registered for CS 415 First CS 415 project is up –Initial design documents due next Friday,
SM3121 Software Technology Mark Green School of Creative Media.
Chapter 13 Embedded Operating Systems Eighth Edition By William Stallings Operating Systems: Internals and Design Principles.
EMBEDDED SOFTWARE Team victorious Team Victorious.
Embedded Linux Sandeep Sirpatil Graduate Student University of North Carolina Charlotte Feb 7, 2005.
Embedded System Spring, 2011 Lecture 3: The PIC Microcontrollers Eng. Wazen M. Shbair.
Engineering 1040: Mechanisms & Electric Circuits Fall 2011 Introduction to Embedded Systems.
An Introduction and Practical approach to RTOS concepts.
Embedded Java Research Geoffrey Beers Peter Jantz December 18, 2001.
Atmega32 Architectural Overview
Research Overview John Regehr Sept 06. Part 1 – Embedded Systems.
Computing Hardware Starter.
Discovering Computers 2012: Chapter 4
Introduction to Embedded Software Development School of software Engineering Introduction to Windows CE.
1 CS503: Operating Systems Spring 2014 Dongyan Xu Department of Computer Science Purdue University.
Typical Microcontroller Purposes
Microcontroller Presented by Hasnain Heickal (07), Sabbir Ahmed(08) and Zakia Afroze Abedin(19)
PRESENTED BY :BIREN KUMAR SAMAL ADMISSION NO:22I&E/2000.
INTRODUCTION SOFTWARE HARDWARE DIFFERENCE BETWEEN THE S/W AND H/W.
Real Time Operating Systems Introduction to Real-Time Systems Course originally developed by Maj Ron Smith 17-Oct-151Dr. Alain Beaulieu.
System Architecture Directions for Networked Sensors Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kris Pister Presented by Yang Zhao.
Reference: Ian Sommerville, Chap 15  Systems which monitor and control their environment.  Sometimes associated with hardware devices ◦ Sensors: Collect.
25 April 2000 SEESCOASEESCOA STWW - Programma Evaluation of on-chip debugging techniques Deliverable D5.1 Michiel Ronsse.
Real Time Operating Systems Introduction to Real-Time Operating Systems (Part I) Course originally developed by Maj Ron Smith.
System Architecture Directions for Networked Sensors Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kris Pister Presenter: James.
Embedded System. What is an Embedded System? Computing systems embedded within electronic devices Hard to define – Nearly any computing system other than.
© GCSE Computing Computing Hardware Starter. Creating a spreadsheet to demonstrate the size of memory. 1 byte = 1 character or about 1 pixel of information.
System Architecture Directions for Networked Sensors.
Jeffrey Ellak CS 147. Topics What is memory hierarchy? What are the different types of memory? What is in charge of accessing memory?
Computer Architecture Chapter (5): Internal Memory
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Embedded System Design and Development Introduction to Embedded System.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
Unit 3 Computer Systems. What is software? unlike hardware it can’t be physically touched it’s the missing link between the computer hardware and the.
Embedded Systems. What is Embedded Systems?  Embedded reflects the facts that they are an integral.
Real-Time Operating Systems RTOS For Embedded systems.
1 Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Free Electrons Introduction.
Chapter 5 - Internal Memory 5.1 Semiconductor Main Memory 5.2 Error Correction 5.3 Advanced DRAM Organization.
Operating System Overview
Microcontrollers, Basics Fundamentals of Designing with Microcontrollers 16 January 2012 Jonathan A. Titus.
Memory COMPUTER ARCHITECTURE
Atmega32 Architectural Overview
ECE354 Embedded Systems Introduction C Andras Moritz.
Andes Technology Innovate SOC ProcessorsTM
Real-time Software Design
Chapter 1: The 8051 Microcontrollers
Chapter 3: Windows7 Part 1.
Multicultural Social Community Development Institute ( MSCDI)
Journey: Introduction to Embedded Systems
William Stallings Computer Organization and Architecture 7th Edition
Chapter 2: System Structures
Today’s agenda Hardware architecture and runtime system
2.C Memory GCSE Computing Langley Park School for Boys.
Java Programming Introduction
Single Board Computers and Dev Boards
Presentation transcript:

Embedded Systems John Regehr CS 5460, Dec 04

Embedded Systems  Account for >99% of new microprocessors  Consumer electronics  Vehicle control systems  Medical equipment  Sensor networks

Definitions of “Embedded System” 1. A special-purpose computer that interacts with the real world through sensing and/or actuation 2. Almost any computer that isn’t a PC

More definitions  Microprocessor: A regular CPU  Microcontroller: A small system on a chip that contains extra logic for interfacing with the real world  Analog to digital and digital to analog converters  Pulse width modulation  Networks: serial, I2C, CAN, USB, etc…

Embedded Characteristics  Close interaction with the physical world  Often must operate in real time  Constrained resources  Memory  SRAM, DRAM, flash, EEPROM, …  Power  CPU cycles

More Characteristics  Often there is no:  Virtual memory  Memory protection  Hardware supported user-kernel boundary  Secondary storage  Hard to upgrade once deployed  Cost sensitive  Per-unit cost often dominates overall cost of a product

Important Difference  Unlike PC software, embedded software is developed in the context of a particular piece of hardware  This is good: App can be tailored very specifically to platform  This is bad: All this tailoring is hard work

CPU Options  Create custom hardware  May not need any CPU at all!  4-bit microcontroller  Few bytes of RAM  No OS  Software all in assembly  These are getting less popular

More CPU Options  8-bit microcontroller  A few bytes to a few hundred KB of RAM  At the small end software is in asm, at the high end C, C++, Java  Might run a home-grown OS, might run a commercial RTOS  Typically costs a few $$

More CPU Options  16- and 32-bit microcontrollers  Few KB to many MB of RAM  Usually runs an RTOS: vxWorks, WinCE, QNX, ucLinux, …  May or may not have caches  Wide range of costs  32- or 64-bit microprocessor  Basically a PC in a small package  Runs Win XP, Linux, or whatever  Relatively expensive in power and $$

Axes of Variation  Power 1. Must run for years on a tiny battery (hearing aid, pacemaker) 2. Unlimited power (ventilation control)  Real-time 1. Great harm is done if deadlines are missed (avionics) 2. Few time constraints (microwave)

More Axes of Variation  Importance 1. Device is safety critical (nuclear plant) 2. Failure is largely irrelevant (toy, electric toothbrush)  Upgradability  Impossible to update (spacecraft, pacemaker)  Easily updated (firmware in a PC network card)

More Variation  Cost sensitivity 1. A few % in extra costs will kill profitability (many products) 2. Cost is largely irrelevant (military applications)  The point: Embedded systems are highly diverse, it’s hard to make generalizations in this domain

Programming Languages  Assembler  No space overhead  Good programmers write fast code  Non-portable  Hard to debug  C  Little space and time overhead  Somewhat portable  Good compilers exist

More Languages  C++  Often used as a “better C”  Low space and time overhead if used carefully  Java  More portable  Full Java requires lots of RAM  J2ME popular on cell-phone types of devices  Bad for real-time!

RTOS  Low end: Not much more than a threads library  High end: Stripped-down version of Linux or WinXP  Important qualities:  Predictability  Reliability  Efficiency  Do Linux and XP have these?

What’s Hard?  Concurrency – threads, bottom- halves, interrupts  Debugging  Often printf and gdb don’t exist  Creating correct software – can’t patch a pacemaker  Getting a product out the door quickly  Meeting resource constraints (power, RAM, etc.)

Some Tradeoffs  Advanced tools are expensive ($10,000+ per developer) but can help a lot  Buying an OS helps but usually results in less efficient systems  Complex software architecture provides rich functionality but may be slow and hard to debug

Creating Embedded SW 1. Pick:  Cheapest CPU that seems like it’ll work  Appropriate language  Appropriate OS  Appropriate software architecture  Appropriate simulation tools 2. Code… test… repeat

Cyclic Executive main() { init(); while (1) { a(); b(); c(); d(); }} Advantages? Disadvantages?

Cyclic Exec. Variations main() { init(); while (1) { wait_on_clock(); a(); b(); c(); }} main() { init(); while (1) { a(); b(); a(); c(); a(); }}

Interrupts + Events main() { while (1) { event_t e = get_event(); if (e) { (e)(); } else { sleep_cpu(); }}} interrupt2() { time_critical_stuff(); enqueue_event (non_time_critical); } Advantages? Disadvantages?

Multithreading  Threads are usually sleeping on events  Highest priority thread runs except when:  It’s blocked  An interrupt is running  It wakes up and another thread is executing in the kernel Advantages? Disadvantages?

Port Based Objects my_pbo() { get_inputs (); // No side effects! compute (); store_results (); } Advantages? Disadvantages?  PBOs periodically invoked by OS  No blocking synchronization  Preemption may or may not be supported

Summary  Very different from programming desktop apps  Software architecture is worth thinking about in advance  Embedded systems are fun