Overview. Introduction to Embedded Systems. What is an embedded system? What are some of their characteristics? What is the required skill set?
|
|
- Nora Powers
- 5 years ago
- Views:
Transcription
1 Embedded Basics
2 Overview Introduction to Embedded Systems What is an embedded system? What are some of their characteristics? What is the required skill set? Software Development Process Waterfall vs Agile Tips and Tricks for writing embedded software 20 common tips and tricks to improve software
3 Introduction to Embedded Systems What is an embedded system? - An embedded system is a microprocessor used as a component in another piece of technology - The end product is not by definition a computer such as a laptop or desktop - Examples include
4 Introduction to Embedded Systems What are some of their characteristics? Resource constrained compared to traditional computer Limited Memory (RAM and ROM) Processor clock (8 MHz to 48 MHz typical) Bus Bandwidth ( 8 bit, 16 bit and 32 bit) Power Consumption Real-time response often critical or time guaranteed in safety critical applications ( must respond within x ms) Interacts with environment through the use of sensors, displays, etc Reliable ( the goal anyways)
5 Introduction to Embedded Systems What is the required skill set? Digital Electronics Communication interfaces Sensors Programming languages (C/C++, Java, etc) Algorithms Real-time programming Debugging skills Project management etc Tight coupling between software/hardware requires an understanding of both to be successful!
6 Software Development Process Waterfall Development Process Time spent early in the design cycle (Requirements) can lead to greater economy later Emphasis on documentation Difficult to perfectly move through one stage, changes result in scrapping time and work done Need a magic 8 ball to properly predict challenges that could affect design and requirements
7 Software Development Process Used to provide an iterative development process which adds flexibility to the design process Feedback is used at the end of each release as the primary control mechanism Basic functionality is developed first allowing critical components and primary functionality to be tested and adjusted Each iteration involves planning, requirements analysis, design, coding and testing
8 #1 Flowchart First, Implement Second
9 #2 Write Lasagna not Spaghetti Code!
10 #3 Use State Machines to Control Program Flow - Actions dictate program flow - Event driven - Easy to follow and implement - Program flow controlled by decision making - Continuous conditional checking
11 #4 Take Advantage of Modularity
12 #5 Limit Function Complexity Many methods to measure complexity Cyclomatic Complexity Kolmogorov complexity Function points
13 #6 Avoid using Assembly Language
14 #7 Don t use goto statements - Poor program structure - Difficult to follow and maintain - Results in spaghetti code! - Good program structure - Easier to follow and maintain - Results can be spaghetti code!
15 #8 Use for(;;) or while(1) - For(;;) is always considered to be true with no expressions - For(;expression;) behaves like a while loop - Typically used to seeing for(i=0; i<val; i++); - Any none zero value is considered to be true - While(expression);
16 #9 Use the appropriate conditional statement for the job - If / else - If / else if / else - Switch - While - Do while
17 #10 Use #pragma statements sparingly
18 #11 Use Descriptive Naming Conventions Don t use abbreviations but the whole descriptive word! If you use abbreviations then create a lookup table Call it what it is and don t be cryptic! (Use long variable names) Use broad terms first then get specific Choose naming conventions and be consistent! Develop a coding standard to keep track of your conventions so that future you or maintainer can understand
19 #12 Keep Interrupt Service Routines Simple Concurrent Interrupts Real-time response Avoid loops and complex calculations Do minimum of what needs to be done and return. Another task or module can handle processing Clear and re-enable interrupts ASAP
20 #13 Avoid the Use of Global Variables Encapsulate variables Use data hiding Object oriented design Prevents data corruption Reduces reentrancy issues Use static to declare local variables Use static to declare private functions
21 #14 Errors aren t always as they seem
22 #15 Use Processor Example Code to Experiment with Peripherals
23 #16 Document the Code Thoroughly Function Inputs Function Outputs Function use and behavior Related Functions Plenty of comments on what it does Maintainers and future self will thank you Use tools like Doxygen to generate documentation from code comments
24 #17 Use a Source Code Repository and Commit Frequently SVN is used to provide a method of source control. Completed modules are checked into SVN which then assigns a version control number to the software. This keeps the code constantly under revision control and allows for a method to examine changes in the code base between revisions. It can also prevent the code from being accessed if it has been checked out.
25 #18 Good Programmers don t necessarily write fewer lines of code Good Programmers.. Write structured, maintainable code Document their code in a clear manner Recognize and reuse design patterns Are passionate about writing code (find it fun) Never stop learning and honing skills Enjoy challenges Thoroughly test their work Are humble and adapt to change easily Strive for perfection but identify limits
26 #19 Stay on Top of Developing Technologies
27 #20???????????????? Audience Tips
28 Questions Contact Info Jacob Beningo EDN Blog:
10 C Language Tips for Hardware Engineers
10 C Language Tips for Hardware Engineers Jacob Beningo - March 05, 2013 On its own, the software development process has numerous hazards and obstacles that require navigation in order to successfully
More informationDeveloping Reusable Device Drivers for MCU's
Embedded Systems Conference East 2012 Page 1 of 20 Developing Reusable Device Drivers for MCU's By Jacob Beningo www.beningo.com http://www.linkedin.com/in/jacobbeningo twitter : Jacob_Beningo EDN Blog
More informationBootloader Design Techniques for Microcontrollers
Bootloader Design Techniques for Microcontrollers Jacob Beningo Beningo Embedded Group Speaker/Author Details : jacob@beningo.com : 810-844-1522 : Jacob_Beningo : Beningo Engineering : JacobBeningo : Embedded
More informationIn examining performance Interested in several things Exact times if computable Bounded times if exact not computable Can be measured
System Performance Analysis Introduction Performance Means many things to many people Important in any design Critical in real time systems 1 ns can mean the difference between system Doing job expected
More informationProgramming Languages and Program Development
Programming Languages and Program Development 1 Programming Languages and How They Work Programming o Process used to create software programs Programmers o People who use programming languages to create
More informationWhat are Embedded Systems? Lecture 1 Introduction to Embedded Systems & Software
What are Embedded Systems? 1 Lecture 1 Introduction to Embedded Systems & Software Roopa Rangaswami October 9, 2002 Embedded systems are computer systems that monitor, respond to, or control an external
More informationPC204. Lecture 5 Programming Methodologies. Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved.
PC204 Lecture 5 Programming Methodologies Copyright 2000 by Conrad Huang and the Regents of the University of California. All rights reserved. Programming Paradigms Software Engineering Exploratory Programming
More informationCode Convention and version control help us to success in Botball
Code Convention and version control help us to success in Botball Zebu Lan USTB Robot Society Team 1 Code Convention and version control help us to success in Botball 1 Introduction Clean and well-structured
More informationRobotic Systems ECE 401RB Fall 2006
The following notes are from: Robotic Systems ECE 401RB Fall 2006 Lecture 13: Processors Part 1 Chapter 12, G. McComb, and M. Predko, Robot Builder's Bonanza, Third Edition, Mc- Graw Hill, 2006. I. Introduction
More informationCSE 70 Final Exam Fall 2009
Signature cs70f Name Student ID CSE 70 Final Exam Fall 2009 Page 1 (10 points) Page 2 (16 points) Page 3 (22 points) Page 4 (13 points) Page 5 (15 points) Page 6 (20 points) Page 7 (9 points) Page 8 (15
More informationChapter 9. Software Testing
Chapter 9. Software Testing Table of Contents Objectives... 1 Introduction to software testing... 1 The testers... 2 The developers... 2 An independent testing team... 2 The customer... 2 Principles of
More informationSystems Software. Recitation 1: Intro & Revision Control. Quite different from 213. Our Philosophy. Partly-free lunch
Systems Software Recitation 1: Intro & Revision Control Dave Andersen CMU Computer Science Fall 2006 Low-level (projects in C) Designed to run forever Handle every possible error condition Manage resources
More informationThe Nios II Family of Configurable Soft-core Processors
The Nios II Family of Configurable Soft-core Processors James Ball August 16, 2005 2005 Altera Corporation Agenda Nios II Introduction Configuring your CPU FPGA vs. ASIC CPU Design Instruction Set Architecture
More informationLethbridge/Laganière 2005 Chapter 9: Architecting and designing software 6
Trying to deal with something big all at once is normally much harder than dealing with a series of smaller things Separate people can work on each part. An individual software engineer can specialize.
More informationAudience: Info Workers, Dev
Wes Preston PWR202 Audience: Info Workers, Dev Solution and application sites built in SharePoint or O365 often rely on a baseline understanding of how SharePoint works. This entry point can stifle user
More informationAn overview of Interrupts ECE3534
An overview of errupts ECE3534 Microprocessor erfacing: errupts Suppose a peripheral intermittently receives data, which must be serviced by the processor The processor can poll the peripheral regularly
More informationAMD actual programming and testing on a system board. We will take a simple design example and go through the various stages of this design process.
actual programming and testing on a system board. We will take a simple design example and go through the various stages of this design process. Conceptualize A Design Problem Select Device Implement Design
More informationSoftware Engineering Lifecycles. Controlling Complexity
Software Engineering Lifecycles Class url:http://laser.cs.umass.edu/courses/cs320.spring11/ Controlling Complexity Separation of Concerns Planning Ahead Do a little work now to make later work easier The
More informationModular Design of Embedded Software for Distributed Robot Control
Modular Design of Embedded Software for Distributed Robot Control Nicolas Champagne-Williamson, Computer Science, Cornell University Jason Cortell, Lab Manager, Mechanical and Aerospace Engineering, Cornell
More informationTest Driven Development (TDD)
Test Driven Development (TDD) Test Driven Development Introduction Good programmers write code, great programmers write tests Never, in the field of programming, have so many owed so much to so few - Martin
More informationComputer Hardware Requirements for Real-Time Applications
Lecture (4) Computer Hardware Requirements for Real-Time Applications Prof. Kasim M. Al-Aubidy Computer Engineering Department Philadelphia University Real-Time Systems, Prof. Kasim Al-Aubidy 1 Lecture
More informationReview&Preview 1/23/15, 4:08:07 PM 1. 3rd edition - standardized, and standard library allows programmer to start from a higher level
Review&Preview 1/23/15, 4:08:07 PM 1 Stroustrup: All four prefaces, Ch. 1. Then read "Tour" chapters 2, 3, 4 and 5 but skip 5.3 Concurrency. Watch for new C++11 usage. H: Using using. Stroustrup Introduction:
More informationIntroduction to Embedded Systems
Introduction to Embedded Systems Outline Embedded systems overview What is embedded system Characteristics Elements of embedded system Trends in embedded system Design cycle 2 Computing Systems Most of
More informationTask Partitioning and Placement in Multicore Microcontrollers. David Lacey 24 th September 2012
Task Partitioning and Placement in Multicore Microcontrollers David Lacey 24 th September 2012 Multicore Microcontrollers Many embedded systems are now multicore Maybe lots of cores: XMOS devices have
More informationNCC EDUCATION INTERNATIONAL DIPLOMA IN COMPUTER STUDIES SYSTEMS DEVELOPMENT. 5 th June 2005
NCC EDUCATION INTERNATIONAL DIPLOMA IN COMPUTER STUDIES SYSTEMS DEVELOPMENT 5 th June 2005 SECTION A - 1 Answer all questions from this section. Each question requires ONE response only. SECTION A - 2
More informationExamples. Object Orientated Analysis and Design. Benjamin Kenwright
Examples Object Orientated Analysis and Design Benjamin Kenwright Outline Revision Questions Group Project Review Deliverables Example System Problem Case Studey Group Project Case-Study Example Vision
More informationOperating- System Structures
Operating- System Structures 2 CHAPTER Practice Exercises 2.1 What is the purpose of system calls? Answer: System calls allow user-level processes to request services of the operating system. 2.2 What
More informationECE332, Week 2, Lecture 3. September 5, 2007
ECE332, Week 2, Lecture 3 September 5, 2007 1 Topics Introduction to embedded system Design metrics Definitions of general-purpose, single-purpose, and application-specific processors Introduction to Nios
More informationECE332, Week 2, Lecture 3
ECE332, Week 2, Lecture 3 September 5, 2007 1 Topics Introduction to embedded system Design metrics Definitions of general-purpose, single-purpose, and application-specific processors Introduction to Nios
More informationHeresies and Dogmas in Software
Heresies and Dogmas in Software Development @deanwampler CME Group Technology Conference 2011 Functional Programming for Java Developers Dean Wampler programmingscala.com polyglotprogramming.com/ fpjava
More informationSOFTWARE LIFE-CYCLE MODELS 2.1
SOFTWARE LIFE-CYCLE MODELS 2.1 Outline Software development in theory and practice Software life-cycle models Comparison of life-cycle models 2.2 Software Development in Theory Ideally, software is developed
More information4/28/2014. Defining A Replacement Cycle for Your Association. Introductions. Introductions. April Executive Director, Idealware. Idealware.
Defining A Replacement Cycle for Your Association April 2014 Introductions Laura Quinn Executive Director, Idealware Introductions Idealware.org 1 What is a Replacement Cycle? What Should You Spend on
More informationData Structures and Algorithms
Data Structures and Algorithms Lecture 1: Course Overview Lilia Georgieva 2004 Goodrich, Tamassia What is this course about? We will study moderately complex data structures and algorithms that are essential
More informationLow-Level Languages. Computer Programs and Programming Languages
Computer Programs and Programming Languages What is a computer program? Set of instructions that directs computer to perform tasks Programming used to write instructions 1 Computer Programs and Programming
More informationThe Embedded System Design Process. Wolf Text - Chapter 1.3
The Embedded System Design Process Wolf Text - Chapter 1.3 Design methodologies A procedure for designing a system. Understanding your methodology helps you ensure you didn t skip anything. Compilers,
More informationAll the subjective part of 2011 papers solved complete reference numbers
1 All current papers 2011 Solved papers (eagle_eye) CS504 Current data final term paper 15 FEB All the subjective part of 2011 papers solved complete reference numbers 1) Describe the the concept of cyclomatic
More informationARM Simulation using C++ and Multithreading
International Journal of Innovative Technology and Exploring Engineering (IJITEE) ARM Simulation using C++ and Multithreading Suresh Babu S, Channabasappa Baligar Abstract: - This project is to be produced
More informationExcel programmers develop two basic types of spreadsheets: spreadsheets
Bonus Chapter 1 Creating Excel Applications for Others In This Chapter Developing spreadsheets for yourself and for other people Knowing what makes a good spreadsheet application Using guidelines for developing
More informationEECS 373 Design of Microprocessor-Based Systems
EECS 373 Design of Microprocessor-Based Systems Mark Brehob University of Michigan Lecture 5: Memory-mapped I/O review, APB, start interrupts. Mostly APB though Sept. 19 th 2018 1 Today Memory-mapped I/O
More informationDSP/BIOS Kernel Scalable, Real-Time Kernel TM. for TMS320 DSPs. Product Bulletin
Product Bulletin TM DSP/BIOS Kernel Scalable, Real-Time Kernel TM for TMS320 DSPs Key Features: Fast, deterministic real-time kernel Scalable to very small footprint Tight integration with Code Composer
More informationBest practices for OO 10 content structuring
Best practices for OO 10 content structuring With HP Operations Orchestration 10 two new concepts were introduced: Projects and Content Packs. Both contain flows, operations, and configuration items. Organizations
More informationOBJECT-ORIENTED MODELING AND DESIGN. Process Overview
OBJECT-ORIENTED MODELING AND DESIGN Process Overview CONTENTS: 1. Development Stages. 2. Development Life Cycle. 3. Summary. A software Development process provides a basis for the organized production
More informationCSCI 445 Amin Atrash. Control Architectures. Introduction to Robotics L. Itti, M. J. Mataric
Introduction to Robotics CSCI 445 Amin Atrash Control Architectures The Story So Far Definitions and history Locomotion and manipulation Sensors and actuators Control => Essential building blocks Today
More informationMulti-core microcontroller design with Cortex-M processors and CoreSight SoC
Multi-core microcontroller design with Cortex-M processors and CoreSight SoC Joseph Yiu, ARM Ian Johnson, ARM January 2013 Abstract: While the majority of Cortex -M processor-based microcontrollers are
More informationApplication Note Software Device Drivers for the M29Fxx Flash Memory Device
Introduction Application Note Software Device Drivers for the M29Fxx Flash Memory Device Introduction This application note provides library source code in C for the M29Fxx Flash memory using the Flash
More informationImproving Software Testability
Improving Software Testability George Yee, 1Z48-M Jan 14, 2000 1 Contents 1. Introduction 2. Improving Testability at Design Time 3. Improving Testability at Coding Time 4. Putting it into Practice 5.
More informationPROCESS DEVELOPMENT METHODOLOGY The development process of an API fits the most fundamental iterative code development
INTRODUCING API DESIGN PRINCIPLES IN CS2 Jaime Niño Computer Science, University of New Orleans New Orleans, LA 70148 504-280-7362 jaime@cs.uno.edu ABSTRACT CS2 provides a great opportunity to teach an
More informationCommand and Control Tutorial
Command and Control Tutorial Introduction Command and Control is a new LabVIEW template added for the 2016 season which organizes robot code into commands and controllers for a collection of robot-specific
More informationAuthor: Steve Gorman Title: Programming with the Intel architecture in the flat memory model
Author: Steve Gorman Title: Programming with the Intel architecture in the flat memory model Abstract: As the Intel architecture moves off the desktop into a variety of other computing applications, developers
More informationJava Software Solutions
Chapter 7 Object-Oriented Design Concepts Java Software Solutions Foundations of Program Design Seventh Edition John Lewis William Loftus OO Class Terminology Interface (conceptual definition): Set of
More informationIntroduction to Software Engineering
Introduction to Software Engineering Gérald Monard Ecole GDR CORREL - April 16, 2013 www.monard.info Bibliography Software Engineering, 9th ed. (I. Sommerville, 2010, Pearson) Conduite de projets informatiques,
More informationChapter 1: Programming Principles
Chapter 1: Programming Principles Object Oriented Analysis and Design Abstraction and information hiding Object oriented programming principles Unified Modeling Language Software life-cycle models Key
More informationSystems Analysis and Design in a Changing World, Fourth Edition
Systems Analysis and Design in a Changing World, Fourth Edition Systems Analysis and Design in a Changing World, 4th Edition Learning Objectives Explain the purpose and various phases of the systems development
More informationQUIZ on Ch.5. Why is it sometimes not a good idea to place the private part of the interface in a header file?
QUIZ on Ch.5 Why is it sometimes not a good idea to place the private part of the interface in a header file? Example projects where we don t want the implementation visible to the client programmer: The
More informationJob Posting (Aug. 19) ECE 425. ARM7 Block Diagram. ARM Programming. Assembly Language Programming. ARM Architecture 9/7/2017. Microprocessor Systems
Job Posting (Aug. 19) ECE 425 Microprocessor Systems TECHNICAL SKILLS: Use software development tools for microcontrollers. Must have experience with verification test languages such as Vera, Specman,
More informationAnalysis of the Test Driven Development by Example
Computer Science and Applications 1 (2013) 5-13 Aleksandar Bulajic and Radoslav Stojic The Faculty of Information Technology, Metropolitan University, Belgrade, 11000, Serbia Received: June 18, 2013 /
More informationIntroduction to Computer Systems and Operating Systems
Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System
More informationUsing the HID class eases the job of writing USB device drivers
designfeature By Stuart Allman, Cypress Semiconductor THE USB HID CLASS IS A POWERFUL AND VERSATILE WAY TO GET YOUR DEVICE ON THE USB. IF YOUR USB DEVICE CAN EXIST WITHIN THE BANDWIDTH LIMITS OF THE HID
More informationLearning Objectives. C++ For Artists 2003 Rick Miller All Rights Reserved xli
Identify and overcome the difficulties encountered by students when learning how to program List and explain the software development roles played by students List and explain the phases of the tight spiral
More informationHeresies and Dogmas in Software Development
Heresies and Dogmas in Software Development @deanwampler StrangeLoop 2011 Functional Programming for Java Developers Dean Wampler programmingscala.com polyglotprogramming.com /fpjava https://twitter.com/#!/stesla/status/11390744100
More informationE-companion. Quiz for IT-knowledge
E-companion Quiz for IT-knowledge 1. The is used in combination with other keys to perform shortcuts and special tasks. A) Control (Ctrl) key B) Function key C) Toggle key D) Windows key 2. is the place
More informationCOP 1170 Introduction to Computer Programming using Visual Basic
Course Justification This course is the first computer programming course in the Computer Information Systems Associate in Arts degree program; is required in the Computer Programming and Analysis, Database
More informationECE332, Week 8. Topics. October 15, Exceptions. Hardware Interrupts Software exceptions
ECE332, Week 8 October 15, 2007 1 Topics Exceptions Hardware Interrupts Software exceptions Unimplemented instructions Software traps Other exceptions 2 1 Exception An exception is a transfer of control
More informationMechatronics and Measurement. Lecturer:Dung-An Wang Lecture 6
Mechatronics and Measurement Lecturer:Dung-An Wang Lecture 6 Lecture outline Reading:Ch7 of text Today s lecture: Microcontroller 2 7.1 MICROPROCESSORS Hardware solution: consists of a selection of specific
More informationChapter 1: Principles of Programming and Software Engineering
Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without
More informationNews. CSE 130: Programming Languages. Environments & Closures. Functions are first-class values. Recap: Functions as first-class values
CSE 130: Programming Languages Environments & Closures News PA 3 due THIS Friday (5/1) Midterm NEXT Friday (5/8) Ranjit Jhala UC San Diego Recap: Functions as first-class values Arguments, return values,
More informationUNIT 1.1 SYSTEMS ARCHITECTURE MCQS
The numbers after the question are an approximate estimation of relative difficulty, broadly based around the new GCSE Numbering System. Please note that these were produced before final guidance was released
More informationCA ERwin Data Modeler r9 Rick Alaras N.A. Channel Account Manager
ERwin r9 CA ERwin Data Modeler r9 Rick Alaras N.A. Channel Account Manager In today s data-driven economy, there is an increasing disconnect between consumers and providers of data DATA VOLUMES INCREASING
More informationChanges in timetable (changes in GREEN)
Changes in timetable (changes in GREEN) Wk12: May25 29 HLAB5 PICOBLAZE assembly Wk13: Jun1 5 Still hand in assignment on Wk13 Jun5 C.O.B. Wks14 15 (Jun8 19) Hardware tests Exam on Jun 22 Project lab I
More informationSoftware Development Project. Kazi Masudul Alam
Software Development Project Kazi Masudul Alam Course Objective Study Programming Best Practices Apply the knowledge to build a Small Software in Groups 7/10/2017 2 Programming Best Practices Code Formatting
More informationA First Look at Microprocessors
A First Look at Microprocessors using the The General Prototype Computer (GPC) model Part 4 Ports CPU Ecosystem All CPUs need RAM, ROM, a clock source and reset circuit, and power. Power Supply 1 Vio Vcore
More informationChapter 5. Introduction ARM Cortex series
Chapter 5 Introduction ARM Cortex series 5.1 ARM Cortex series variants 5.2 ARM Cortex A series 5.3 ARM Cortex R series 5.4 ARM Cortex M series 5.5 Comparison of Cortex M series with 8/16 bit MCUs 51 5.1
More information4. Hardware Platform: Real-Time Requirements
4. Hardware Platform: Real-Time Requirements Contents: 4.1 Evolution of Microprocessor Architecture 4.2 Performance-Increasing Concepts 4.3 Influences on System Architecture 4.4 A Real-Time Hardware Architecture
More informationRicardo Rocha. Department of Computer Science Faculty of Sciences University of Porto
Ricardo Rocha Department of Computer Science Faculty of Sciences University of Porto Slides based on the book Operating System Concepts, 9th Edition, Abraham Silberschatz, Peter B. Galvin and Greg Gagne,
More informationPC Interrupt Structure and 8259 DMA Controllers
ELEC 379 : DESIGN OF DIGITAL AND MICROCOMPUTER SYSTEMS 1998/99 WINTER SESSION, TERM 2 PC Interrupt Structure and 8259 DMA Controllers This lecture covers the use of interrupts and the vectored interrupt
More informationCOMPUTER ORGANISATION CHAPTER 1 BASIC STRUCTURE OF COMPUTERS
Computer types: - COMPUTER ORGANISATION CHAPTER 1 BASIC STRUCTURE OF COMPUTERS A computer can be defined as a fast electronic calculating machine that accepts the (data) digitized input information process
More informationFoundational Design Patterns for Moving Beyond One Loop
Foundational Design Patterns for Moving Beyond One Loop Raja Pillai Technical Consultant Agenda Why move beyond one loop? What is a design pattern? Why learn communication mechanisms? Functional global
More informationITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University
ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development
More informationObject Oriented Programming
Unit 19: Object Oriented Unit code: K/601/1295 QCF Level 4: BTEC Higher National Credit value: 15 Aim To provide learners with an understanding of the principles of object oriented programming as an underpinning
More informationMaking USB Device Drivers Easier Using the HID Class
Making USB Device Drivers Easier Using the HID Class Stuart Allman Cypress Semiconductor 15050 Avenue of Science San Diego, CA 92128 (858) 613-7900 One of the major barriers that exist in the adoption
More informationLecture 15 Distributed System Architectures
Lecturer: Sebastian Coope Ashton Building, Room G.18 E-mail: coopes@liverpool.ac.uk COMP 201 web-page: http://www.csc.liv.ac.uk/~coopes/comp201 Lecture 15 Distributed System Architectures Architectural
More informationThis course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units.
This course supports the assessment for Scripting and Programming Applications. The course covers 4 competencies and represents 4 competency units. Introduction Overview Advancements in technology are
More informationRediscovering. Modularity. Stuttgart JUG November 20 th 2012
Rediscovering Modularity Structure101 @chedgey Stuttgart JUG November 20 th 2012 Modularity Manage complexity by Encapsulation Information hiding Modularity Manage complexity by Encapsulation Defined interface
More informationSample Exam. Advanced Test Automation - Engineer
Sample Exam Advanced Test Automation - Engineer Questions ASTQB Created - 2018 American Software Testing Qualifications Board Copyright Notice This document may be copied in its entirety, or extracts made,
More informationLENOVO BUSINESS SOLUTIONS AND INTEL OPTANE MEMORY
LENOVO BUSINESS SOLUTIONS AND INTEL OPTANE MEMORY Adaptable Storage with Maximum Performance and Speed Accelerate business growth by combining the sales of Lenovo computer solutions with a powerful memory
More informationCMPSC 311- Introduction to Systems Programming Module: Systems Programming
CMPSC 311- Introduction to Systems Programming Module: Systems Programming Professor Patrick McDaniel Fall 2015 WARNING Warning: for those not in the class, there is an unusually large number of people
More informationIntroduction to VHDL. Module #5 Digilent Inc. Course
Introduction to VHDL Module #5 Digilent Inc. Course Background Availability of CAD tools in the early 70 s Picture-based schematic tools Text-based netlist tools Schematic tools dominated CAD through mid-1990
More informationJava Software Solutions for AP Computer Science 3rd Edition, Lewis et al. 2011
A Correlation of AP Computer Science 3rd Edition, Lewis et al. 2011 To the INTRODUCTION This document demonstrates how AP (Advanced Placement) Computer Science, 3rd Edition 2011, Lewis et al. meets the
More informationQUIZ Friends class Y;
QUIZ Friends class Y; Is a forward declaration neeed here? QUIZ Friends QUIZ Friends - CONCLUSION Forward (a.k.a. incomplete) declarations are needed only when we declare member functions as friends. They
More informationFoundations of object orientation
Foreword Preface List of projects discussed in detail in this book Acknowledgments Part 1 Chapter 1 Chapter 2 Foundations of object orientation Objects and classes 1.1 Objects and classes 1.2 Creating
More informationFigure 1 - EDGE Developer Suite Block Diagram
For businesses and consumers, the digital world is a place where user applications and interfaces keep getting easier. Embedded microprocessors aid in nearly every mundane task from monitoring the manufacturing
More informationAgile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process
Agile Accessibility Ensuring accessibility throughout the Agile development process Presenters: Andrew Nielson, CSM, PMP, MPA Ann Marie Davis, CSM, PMP, M. Ed. Cammie Truesdell, M. Ed. Overview What is
More informationA VIRTUALLAB APPROACH FOR WIRELESS SENSOR MOTES AND WIRELESS SENSOR NETWORKS
A VIRTUALLAB APPROACH FOR WIRELESS SENSOR MOTES AND WIRELESS SENSOR NETWORKS Anghel V. CONŢIU, Adina ŢOPA, Vasile T. DĂDÂRLAT Technical University of Cluj-Napoca, Str. Ctin Daicoviciu nr. 15, 400027 Cluj-Napoca,
More information3. The MC6802 MICROPROCESSOR
3. The MC6802 MICROPROCESSOR This chapter provides hardware detail on the Motorola MC6802 microprocessor to enable the reader to use of this microprocessor. It is important to learn the operation and interfacing
More informationCS112 Lecture: Defining Instantiable Classes
CS112 Lecture: Defining Instantiable Classes Last revised 2/3/05 Objectives: 1. To describe the process of defining an instantiable class 2. To discuss public and private visibility modifiers. Materials:
More informationMidi2Org_16. An electronic board for automating a musical instrument. User Manual
Midi2Org_16 An electronic board for automating a musical instrument User Manual Orgautomatech Christian Blanchard 113 rue Champommier 79000 Niort FRANCE 33(0)9 63 45 61 45 chris@orgautomatech.fr N Siret
More informationECE 1160/2160 Embedded Systems Design. Midterm Review. Wei Gao. ECE 1160/2160 Embedded Systems Design
ECE 1160/2160 Embedded Systems Design Midterm Review Wei Gao ECE 1160/2160 Embedded Systems Design 1 Midterm Exam When: next Monday (10/16) 4:30-5:45pm Where: Benedum G26 15% of your final grade What about:
More informationTESTING TRENDS IN 2016: A SURVEY OF SOFTWARE PROFESSIONALS
WHITE PAPER TESTING TRENDS IN 2016: A SURVEY OF SOFTWARE PROFESSIONALS Today s online environments have created a dramatic new set of challenges for software professionals responsible for the quality of
More informationEmbedded Controller Programming 2
Embedded Controller Programming 2 Section 3: C Language for Embedded Systems - Ken Arnold ecp2@hte.com Copyright 2006 Ken Arnold Overview Structures Unions Scope of Variables Pointers Operators and Precedence
More informationWorlde TUNA MINI MIDI Controller User s Manual
HANGZHOU WORLDE DIGITAL PIANO CO.,LTD WEBSITE: WWW.WORLDE.COM.CN EMAIL:SALES@WORLDE.COM.CN TEL:86 571 88730848 Worlde TUNA MINI MIDI Controller User s Manual -1- Contents 1. INTRODUCTION... 3 2. FEATURES...
More information