CS4101 嵌入式系統概論 Design and Development 金仲達教授 國立清華大學資訊工程學系 Slides from Computers as Components: Principles of Embedded Computing System Design, Wayne Wolf,

Slides:



Advertisements
Similar presentations
Chapter 1 An Overview of Computers and Programming Languages.
Advertisements

ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS 9.1 Introduction Application programs are typically developed, compiled, and run on host system Embedded programs.
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Systems Software.
Characteristics of Realtime and Embedded Systems Chapter 1 6/10/20151.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
Embedded Systems Programming Introduction to cross development techniques.
Data Structure and Algorithm 1 Yingcai Xiao. You Me The Course (
CMP 131 Introduction to Computer Programming Violetta Cavalli-Sforza Week 1, Lab.
Topic 1: Introduction to Computers and Programming
Software Development and Software Loading in Embedded Systems.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Consider the Evolution of Watches
Microsoft Visual Basic 2012 CHAPTER ONE Introduction to Visual Basic 2012 Programming.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
CHAPTER 4: INTRODUCTION TO COMPUTER ORGANIZATION AND PROGRAMMING DESIGN Lec. Ghader Kurdi.
Computer Organization
System Calls 1.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
An Introduction Chapter Chapter 1 Introduction2 Computer Systems  Programmable machines  Hardware + Software (program) HardwareProgram.
Topics Introduction Hardware and Software How Computers Store Data
Computing Hardware Starter.
Enabling the ARM Learning in INDIA ARM DEVELOPMENT TOOL SETUP.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
What is a Computer? An, electrical machine, that can be programmed to accept data (input), process it into useful information (output) and store it away.
Computer Systems Organization CS 1428 Foundations of Computer Science.
High Performance Embedded Computing © 2007 Elsevier Lecture 3: Design Methodologies Embedded Computing Systems Mikko Lipasti, adapted from M. Schulte Based.
High Performance Embedded Computing © 2007 Elsevier Chapter 1, part 2: Embedded Computing High Performance Embedded Computing Wayne Wolf.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
RNJ 05/05/091 6 Further System Fundamentals (HL) ‏ 6.3 Operating Systems and Utility Software Linkers, Loaders and Library Managers.
Chapter 1 Introduction. Chapter 1 -- Introduction2  Def: Compiler --  a program that translates a program written in a language like Pascal, C, PL/I,
© GCSE Computing Computing Hardware Starter. Creating a spreadsheet to demonstrate the size of memory. 1 byte = 1 character or about 1 pixel of information.
Chapter 1 : Overview of Computer and Programming By Suraya Alias
A.Abhari CPS1251 Topic 1: Introduction to Computers Computer Hardware Computer components Connecting Computers Computer Software Operating System (OS)
Introduction to OOP CPS235: Introduction.
© 2000 Morgan Kaufman Overheads for Computers as Components1 Design methodologies zA procedure for designing a system. zUnderstanding your methodology.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Chapter 1 An Overview of Computers and Programming Languages.
Evolution of C and C++ n C was developed by Dennis Ritchie at Bell Labs (early 1970s) as a systems programming language n C later evolved into a general-purpose.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
 System Requirement Specification and System Planning.
Identify internal hardware devices (e. g
Computer Basics.
Introduction to System Software
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Recap More and more physical things will be augmented or embedded with computing Things become “smarter” Computing becomes ubiquitous An embedded system.
PROGRAMMABLE LOGIC CONTROLLERS SINGLE CHIP COMPUTER
Introduction to Visual Basic 2008 Programming
Overview of Computers and Programming Chapter 1
THE PROCESS OF EMBEDDED SYSTEM DEVELOPMENT
Computer Organization & Assembly Language Chapter 3
CS4101 Introduction to Embedded Systems Design and Implementation
An Embedded Software Primer
CSCI/CMPE 3334 Systems Programming
Programmable Logic Controllers (PLCs) An Overview.
Computers: Hardware and Software
CIS16 Application Development – Programming with Visual Basic
9.0 EMBEDDED SOFTWARE DEVELOPMENT TOOLS
Topics Introduction Hardware and Software How Computers Store Data
Chapter 1 Introduction(1.1)
National Diploma in Computer Studies
CMP 131 Introduction to Computer Programming
Embedded System Development Lecture 13 4/11/2007
CS310 Software Engineering Lecturer Dr.Doaa Sami
Introduction to Computer Systems
Presentation transcript:

CS4101 嵌入式系統概論 Design and Development 金仲達教授 國立清華大學資訊工程學系 Slides from Computers as Components: Principles of Embedded Computing System Design, Wayne Wolf, Morgan Kaufman; An Embedded Software Primer, David E. Simon, Addison Wesley

1 Recap  More and more physical things will be augmented or embedded with computing Things become “smarter” Computing becomes ubiquitous  An embedded system is a system that is embedded with programmable computers for specific applications of that system  Why embedded systems? Faster, more flexible development at lower cost More complex functionalities

2 Suppose You Have a Product Idea  To develop a device that can record, for each day, the number of stairs that the user has climbed up or down From this number, we can then calculate the amount of CO 2 saved and calories burned Let us call this device stair counter How to start from here?

3 Typical Design Flow requirements specification architecture component development system integration Top-down design Bottom-up design Real design often iterative

4 Requirements  Plain language description of what the user wants and expects to get e.g. to develop a device that can record, for each day, the number of stairs that the user has climbed up or down Describe how the end product is used by the user  May be developed in several ways: talking directly to customers talking to marketing representatives providing prototypes to users for comment requirements specification architecture component development system integration

5 Requirements  Often need to know target customers and business model Stair counter as an add-on of cell phone Stair counter as a consumer product Stair counter as a gift …

6 Requirements  Functional requirements: Internals as a black box and describe only the outputs as a function of input; Show number of stairs climbed up or down Show amount of CO 2 saved Do not count in other cases  Non-functional requirements: Performance, reliability, etc. Size, weight, etc. Power consumption Cost … Describe “WHAT”, not “HOW”

7 Requirements Form

8 Specification  More precise, usually quantitative description of the system: Should not imply a particular architecture List assumptions e.g., update screen 0.25 sec after each step, error rate < 95%, cost < $300  May include functional and non-functional elements  May be executable or may be in mathematical form for proofs e.g. UML (Unified Modeling Language) requirements specification architecture component development system integration

9 Architecture Design  What major components satisfy the specification?  HOW Need to know what are available  Hardware components: CPUs, peripherals, etc. e.g. MSP430 CPU, 3-axis accelerometer  Software components: Major programs and their operations e.g. no OS, accelerometer driver, LCD driver  Must take into account functional and non- functional specifications requirements specification architecture component development system integration

10 Design Considerations  Environment which the embedded system is in  External and internal stimulus sources that interact with the embedded system  I/O Actions and events caused by stimulus Elements of the embedded system that could be affected by the stimulus  Desired system responses to the stimulus, which reflects one or more system requirements  algorithm/workflow  How the system responses can be measures

11 Component Development  Actual implementation of individual hardware and software components Must spend time architecting the system before you start coding  Some components are ready-made, some can be modified from existing designs, others are to be designed from scratch e.g. MSP430 CPU, 3-axis accelerometer  Good surveys help requirements specification architecture component development system integration

12 System Integration  Put together the components Many bugs appear only at this stage Require good interface definition from the start  Have a plan for integrating components to uncover bugs quickly, test as much functionality as early as possible  test and verification requirements specification architecture component development system integration

13 System Development  Now that you have better idea of the requirements, specifications, and architecture of the stair counter  How to proceed to develop the components and integrate the system? But, Real hardware? Programming environment? requirements specification architecture component development system integration

14 Development Environment  Host: a computer running programming tools for development  Target: the HW on which code will run  After program is written, compiled, assembled and linked, it is transferred to the target Host system Target system X86 MSP430

15 What If Real HW Not Available?  Development board: Before real hardware is built, software can be developed and tested using development boards Development boards usually have the same CPU as the end product and provide many IO peripherals for the developed software to use as if it were running on the real end product  Tools for program development Integrated Development Environment (IDE): cross compiler, linker, loader, … OS and related libraries and packages

16 Cross Compiler  Runs on host but generates code for target Target usually have different architecture from host. Hence compiler on host has to produce binary instructions that will be understood by target

17 Development Process  Process for creating instructions that are built on host but meant for the target  Tools are compatible with each other  a toolchain Binutils: as, ld Glibc : C runtime Lib GCC : C/C++ compiler

18 Linker/Locators  For computers: Linker: creates an image file to be run on host Loader: loads image file into memory during run-time  For embedded systems: Locater: creates a file, containing binary image or other format, that will be copied onto target, which run on its own (not through loader) It needs exact addresses beforehand  Certain parts of program need in ROM and some in RAM Normally done by dividing program in segments Locator needs to be told where in memory to place segments

19 Summary  Development of a system usually involves: Requirement, specification, architecture design, component development, system integration, test and validation  Development environment of an embedded system often includes Development host with toolchain: cross compiler, linker/loader, library, emulator Development board