Embedded vs. PC Application Programming. Overview  The software design cycle  Designing differences  Code differences  Test differences.

Slides:



Advertisements
Similar presentations
Comparison of Altera NIOS II Processor with Analog Device’s TigerSHARC
Advertisements

How do machines work?.
Chapter 1 An Overview of Computers and Programming Languages.
Everything you always wanted to know about theoretical computer science (but were afraid to ask) Dimitris Achlioptas Microsoft Research.
Our First Real System.
CompSci A Peek at the Lower Levels  It is good to have a sense of what happens at the hardware level  Not required for this course  It may.
IP Telephony Project By: Liane Lewin Shahar Eytan Guided By: Ran Cohen - IBM Vitali Sokhin - Technion.
Paper Title Your Name CMSC 838 Presentation. CMSC 838T – Presentation Motivation u Problem paper is trying to solve  Characteristics of problem  … u.
Chapter XI Reduced Instruction Set Computing (RISC) CS 147 Li-Chuan Fang.
Lecture 14 Go over midterm results Algorithms Efficiency More on prime numbers.
System for Engine Location Of a Web Train Paul Wimmer and Adam Weintrop Dr. Irwin and Dr. Schertz 2/27/06.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Automated Testing Nathan Weiss April 23, Overview History of Testing Advantages to Automated Testing Types of Automated Testing Automated Testing.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Struts 2.0 an Overview ( )
SYSTEM LIFE CYCLES. OBJECTIVES o Be able to describe the stages of development of a hardware/software system. o Know what the different stages of the.
The Scratch Calculator You are all going to be real computer programmers!!!
CS 0004 –Lecture 8 Jan 24, 2011 Roxana Gheorghiu.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Unit B065 – Coding a solution PREP WORK 1)Make sure you keep a work log / diary. Use the table on page 16 of the hand book as a template 2)Keep a bibliography.
High level & Low level language High level programming languages are more structured, are closer to spoken language and are more intuitive than low level.
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
Overview Embedded Linux Graphics Typical desktop Linux graphics stack SystemRAMDisk X Window System5MB16MB GNOME14MB95MB KDE11MB96MB Mozilla12MB95MB.
1 Nassau Community CollegeProf. Vincent Costa Acknowledgements: An Introduction to Programming Using Visual Basic 2012, All Rights ReservedAn Introduction.
Language processors (Chapter 2) 1 Course Overview PART I: overview material 1Introduction 2Language processors (tombstone diagrams, bootstrapping) 3Architecture.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
9/20/6Lecture 3 - Instruction Set - Al1 Program Design.
IT Job Roles & Responsibilities Shannon Ciriaco Unit 2:
Team Name: Group C.  Zisimos  Team Leader, Software Engineer  Richard  Hardware Engineer  Michael  Hardware Engineer  Jason  Software Engineer.
Numerical Libraries Project Microsoft Incubation Group Mary Beth Hribar Microsoft Corporation CSCAPES Workshop June 10, 2008 Copyright Microsoft Corporation,
Lesson 1 Operating Systems, Part 1. Objectives Describe and list different operating systems Understand file extensions Manage files and folders.
The Nature of Computing INEL 4206 – Microprocessors Lecture 3 Bienvenido Vélez Ph. D. School of Engineering University of Puerto Rico - Mayagüez.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
ECEG-3202 Computer Architecture and Organization Chapter 7 Reduced Instruction Set Computers.
CompSci Today’s topics Machine Architecture The basic machine Basic programming Assembler programming Upcoming Language Translation Reading Great.
KEYBOARD INTERFACING Keyboards are organized in a matrix of rows and columns The CPU accesses both rows and columns through ports. ƒTherefore, with two.
Version Control and SVN ECE 297. Why Do We Need Version Control?
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
1 Languages and Compilers (SProg og Oversættere) Bent Thomsen Department of Computer Science Aalborg University With acknowledgement to Norm Hutchinson.
Observing the Current System Benefits Can see how the system actually works in practice Can ask people to explain what they are doing – to gain a clear.
Comparison of Algorithms Objective: Understand how and why algorithms are compared. Imagine you own a company. You’re trying to buy software to process.
1 Arithmetic Where we've been: –Abstractions: Instruction Set Architecture Assembly Language and Machine Language What's up ahead: –Implementing the Architecture.
CSCI 161 Lecture 3 Martin van Bommel. Operating System Program that acts as interface to other software and the underlying hardware Operating System Utilities.
PROGRAMMING. Computer Programs  A series of instructions to the computer  pre-written/packaged/off-the-shelf, or  custom made  There are 6 steps to.
Software. Introduction n A computer can’t do anything without a program of instructions. n A program is a set of instructions a computer carries out.
TA: Shreya Rawal.  A use case is a description of a system’s behavior as it responds to a request that originates from outside of that system (Usually.
ABSTRACT VS. REALISTIC Design Choices. Abstract Realistic Non-realExpressiveEmotionsIntangibleNon-concreteNon-literal Not always obvious ConcreteActual.
CSCI/CMPE 4334 Operating Systems Review: Exam 1 1.
CSCE 240 – Intro to Software Engineering
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
CSE 410, Spring 2006 Computer Systems
Microprocessor and Assembly Language
APARTMENT MAINTENANCE SYSTEM
The life cycle.
Roadmap to Programming work, right, fast KISS
Computer Software CS 107 Lecture 2 September 1, :53 PM.
Information Systems Development
Simulink Support for VEX Cortex BEST Robotics Sandeep Hiremath
Software testing and configuration : Embedded software testing
Programming.
Embedded Systems Design and Development
Quiz: Computational Thinking
ENERGY 211 / CME 211 Lecture 27 November 21, 2008.
Software Development Chapter 1.
Overview of Computer system
Object Oriented Design
Presentation transcript:

Embedded vs. PC Application Programming

Overview  The software design cycle  Designing differences  Code differences  Test differences

In general...  They are the same  All programs have:  Inputs  Processing/Decisions  Outputs  Always use the Software Design Cycle

Software Design Cycle  Specification  Design  Code  Test

Specification  Understand the Requirements  The same words mean different things to different people  As a group, what does the following mean: The program must respond quickly to input.  Write down the Requirements  Once you know what you plan to do (with numbers) write it down!

Design  Decide the ‘best approach’ to meet your requirements  Hardware  Programming Language  Customer Education(Change the Requirements)

Coding Embedded  Closer to the Hardware  Use native data types  Fewer System Resources  No Operating System  More efficient algorithms  Higher frequency = higher power PC Application  Abstracted Hardware  Plenty of Resources  Has an Operating System

Testing Embedded  Testing must be planned in  Usually a simple interface  Often involves extra hardware PC Application  Usually simple to get a basic debug output  Can be very sophisticate testing

Other big differences  Take a few minutes and talk in small groups. I’ll be asking one group to give some of the ideas they came up with.

Things to Remember  There are parallels between embedded and PC programming  When coding embedded, it is better to use native data types