CS-3410 Systems Programming Spring 2013

Similar documents
Lecture 1 Introduction To 3410

ITT Technical Institute. ET2640 Microprocessors and Microcontrollers Onsite and Online Course SYLLABUS

ET285 Digital Electronics II [Onsite]

Automation Engineers AB Pvt Ltd, NOIDA Job-Oriented Course on Embedded Microcontrollers & Related Software Stack

EE324: Microcontrollers and Interfacing. Office Hours: Mon, Wed, to 11.30am. Microcontrollers and Interfacing

Lecture 1. Course Overview and The 8051 Architecture

ESET 369 Embedded Systems Software, Spring 2018

ET345P Control Systems [Onsite]

EMBEDDED SYSTEMS: Jonathan W. Valvano INTRODUCTION TO THE MSP432 MICROCONTROLLER. Volume 1 First Edition June 2015

ELCT708 MicroLab Session #1 Introduction to Embedded Systems and Microcontrollers. Eng. Salma Hesham

CSCE 312 Lab manual. Lab 4 - Computer Organization and Data Path Design. Instructor: Dr. Yum. Fall 2016

GUJARAT TECHNOLOGICAL UNIVERSITY

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

PROGRAMMING AND CUSTOMIZING

ESET 369 Embedded Systems Software, Fall 2017

INDUSTRIAL TRAINING:6 MONTHS PROGRAM TEVATRON TECHNOLOGIES PVT LTD

Overview of Microcontroller and Embedded Systems

Lecture (01) Introducing Embedded Systems and the Microcontrollers By: Dr. Ahmed ElShafee

SECOND EDITION. Arduino Cookbook. Michael Margolis O'REILLY- Tokyo. Farnham Koln Sebastopol. Cambridge. Beijing

COURSE OUTLINE. Prerequisites:

School of Computer Science

TEVATRON TECHNOLOGIES PVT. LTD Embedded! Robotics! IoT! VLSI Design! Projects! Technical Consultancy! Education! STEM! Software!

CSE 240 Introduction to Computer Architecture

Arduino Cookbook O'REILLY* Michael Margolis. Tokyo. Cambridge. Beijing. Farnham Koln Sebastopol

Robotic Systems ECE 401RB Fall 2006

378: Machine Organization and Assembly Language

Teaching Computer Architecture with FPGA Soft Processors

Introduction to Programming System Design CSCI 455x (4 Units)

CSCD 330 Network Programming Spring Lecture 1 - Course Details

EMBEDDED SYSTEMS READY TO USE LECTURE MATERIALS FOR UNDERGRADUATES

Z8 Encore! XP F1680 Series 8-Bit Flash Solution with Extended Peripherals

CS/EE Prerequsites. Hardware Infrastructure. Class Goal CS/EE Computer Design Lab. Computer Design Lab Fall 2010

CS/EE Computer Design Lab Fall 2010 CS/EE T Th 3:40pm-5:00pm Lectures in WEB 110, Labs in MEB 3133 (DSL) Instructor: Erik Brunvand

ECE 156A - Syllabus. Description

Microcontrollers for Ham Radio

Microcontrollers. Principles and Applications. Ajit Pal +5 V 2K 8. 8 bit dip switch. P2 8 Reset switch Microcontroller AT89S52 100E +5 V. 2.

WS_CCESSH-OUT-v1.00.doc Page 1 of 8

Overview of Embedded Systems in Medical Applications

Final Exam Study Guide

EMBEDDED SYSTEMS COURSE CURRICULUM

CSE 240 Introduction to Computer Architecture

SKP16C26 Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

Chapter 1: Introduction. Oregon State University School of Electrical Engineering and Computer Science

Embedded Systems. Embedded Programmer. Duration: 2 weeks Rs Language and Tools. Embedded System Introduction. Embedded C programming

Basic Components of Digital Computer

Introduction to Microcontroller Apps for Amateur Radio Projects Using the HamStack Platform.

William Paterson University of New Jersey Department of Computer Science College of Science and Health Course Outline

More Examples Using Functions and Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #6

Course overview Computer system structure and operation

FYS Data acquisition & control. Introduction. Spring 2018 Lecture #1. Reading: RWI (Real World Instrumentation) Chapter 1.

Computer Hardware Requirements for Real-Time Applications

EE178 Spring 2018 Lecture Module 1. Eric Crabill

Getting to know the Arduino IDE

Robotics Training Module ABLab Solutions

COMP3221: Microprocessors and. Embedded Systems

Computer Hardware Requirements for ERTSs: Microprocessors & Microcontrollers

Microprocessor (COM 9323)

MicroProcessor. MicroProcessor. MicroProcessor. MicroProcessor

WIZTECH AUTOMATION SOLUTIONS (P) LTD., An ISO 9001:2000 and IAO certified company

Reminder. Course project team forming deadline. Course project ideas. Next milestone

SANKALCHAND PATEL COLLEGE OF ENGINEERING, VISNAGAR. ELECTRONICS & COMMUNICATION DEPARTMENT Question Bank- 1

WHY APPLICATIONS ARE STILL DRAINING OUR BATTERIES and how we can help. Aaron Schulman & Sachin Katti

3 PHASE FAULT ANALYSIS WITH AUTO RESET FOR TEMPORARY FAULT AND TRIP FOR PREMANENT

Microcontroller basics

Computer Science Technology Department

MICROCONTROLLERS 8051

MECE336 Microprocessors I

CS510 Operating System Foundations. Jonathan Walpole

Embedded Systems. Software Development & Education Center. (Design & Development with Various µc)

Embedded Systems Lab Lab 1 Introduction to Microcontrollers Eng. Dalia A. Awad

Retentive On-Delay (TONR)

CS 152 Computer Architecture and Engineering Lecture 1 Single Cycle Design

Year 10 OCR GCSE Computer Science (9-1)

CMPE012 Computer Engineering 12 (and Lab) Computing Systems and Assembly Language Programming. Summer 2009

Programming 8-bit PIC Microcontrollers in С

CSE 466 Software for Embedded Systems. CSE 466 Software for Embedded Systems

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

DEV-1 HamStack Development Board

Choosing a Micro for an Embedded System Application

CS 31: Intro to Systems Digital Logic. Kevin Webb Swarthmore College February 2, 2016

EMBEDDED SYSTEM BASICS AND APPLICATION

CSC258: Computer Organization. Memory Systems

Ali Karimpour Associate Professor Ferdowsi University of Mashhad

The MAXQ TM Family of High Performance Microcontrollers

Reminder. Course project team forming deadline. Course project ideas. Friday 9/8 11:59pm You will be randomly assigned to a team after the deadline

Embedded Systems. 2. Software Development. Lothar Thiele. Computer Engineering and Networks Laboratory

Here to take you beyond. ECEP Course syllabus. Emertxe Information Technologies ECEP course syllabus

Embedded Systems, Android & Robotics INTERNSHIP CONTENT

WS_CCESBF7-OUT-v1.00.doc Page 1 of 8

Embedded Controller Programming 1

MICROPROCESSORS B (17.384) Spring Lecture Outline

Lecture notes Lectures 1 through 5 (up through lecture 5 slide 63) Book Chapters 1-4

EE251: Thursday November 30

Microcontroller Basics

1. Textbook #1: Our Digital World (ODW). 2. Textbook #2: Guidelines for Office 2013 (GFO). 3. SNAP: Assessment Software

I 3 I 2. ! Language of logic design " Logic optimization, state, timing, CAD tools

Central Washington University Department of Computer Science Course Syllabus

MAKING PIC MICROCONTROLLER INSTRUMENTS AND CONTROLLERS

COURSE OUTLINE & WEEK WISE BREAKAGE

MICROPROCESSORS A (17.383) Fall Lecture Outline

Transcription:

CS-3410 Systems Programming Spring 2013 Course Description http://atomicrhubarb.com/systems This course introduces students to many concepts underlying all computer systems and ties together the basic concepts from transistors though software development. Topics include: processor operation, hierarchical memory systems, microcontroller architecture, digital and analog data acquisition, actuation, and systems software development topics from the programmer's perspective such as compilers, linkers, operating systems, testing and debugging. The course uses embedded platforms to teach students how programs interact with and are constrained by hardware (with a little bit of Basic Electronics included so that the embedded systems part can be more easily understood). Prerequisites: CSci 2113 Software Engineering < http://faculty.cs.gwu.edu/~timwood/wiki/doku.php/teaching:f2011:cs2113:home > CSci 2461 Computer Architecture 1 < http://www.seas.gwu.edu/~bhagiweb/cs2461/ > Required Textbooks Embedded Systems: A Contemporary Design Tool, by James K Peckol, Wiley, ISBN- 10: 0471721808; ISBN-13: 978-0471721802 Practical C Programming 3rd Edition, by Steve Qualline, O Reilly & Associates Inc, ISBN-10: 1565923065 (while the title is Embedded Systems, this book is structured very closely to the proposed outline for this course including chapters on Combinational Logic, Sequential Logic, Memory, Software Development, Embedded Systems Design, Operating Systems, Task Management, Interfacing, Networking) (more than a C book, has excellent chapters in Modular Programming, Portable Code, Developing Complex C programs, as well as chapters that Embedded Developers need such as Bit Operations, Pointers, Debugging, Optimization)

Spring 2013 Schedule 01. January 15 02. January 22 03. January 29 04. February 05 05. February 12 06. February 19 07. February 26 08. March 05 (Mid term prep) Spring Break. March 12 09. March 19 (Mid Term) 10. March 26 11. April 02 12. April 09 13. April 16 14. April 23 (project demo, final prep) Final Exam - May 7? Grading Labs - 20% Exercises (homework or in class) - 20% Midterm - 20% Final Exam - 20% Project - 20% Outline Week 1. 1. Intro to class, requirements, expectations, project, labs, exercises. 2. Review of chapters 2-5 of Introduction to Computing Systems, Patt & Patel Transistors: Hexadecimal, Logic, Gates, Combinational logic, Decoders, Latches, Registers, Memory, Arithmetic Logic Unit, Basic Instruction Set Architecture, von Neumann vs Harvard architecture Week 2 1. Map all of the above into the Z16F Microcontroller. 2. Basic Electronics for CS Students. 3. Oscillators Week 3 1. RAM, ROM, Flash, Memory Maps, Memory selection circuits, special function registers 2. Review of C, Embedded C 3. Building the lab circuits Week 4 1. General Purpose IO 2. Interrupts/Polling 3. Timers Week 5 1. The Software Development Process 2. Embedded Software Architecture 3. Version Control Week 6 1. Uart, Serial. Emphasis on UART/RS-232 and SPI (common) with light coverage on...

2. I/O, I2C, SPI, 1-wire. Week 7 1. Analog I/O 2. Sensors 3. Debugging Week 8 1. Actuation (motors, servos, relays, digital outputs, etc) 2. Networks: WiFi, Ethernet, USB, CAN 3. Design for Test [spring break is in here somewhere] Week 9 1. Mid Term 2. Discussion on project development Week 10 1 Compiling, Assembling 10.2 Linking, Loading, Flash Programming Week 11 1. Memory Models, Stack Frames, discuss pros/cons to memory model sizes 2. Dissassembly, Objects files, Symbols, libraries 3. Build tools Week 12 1. Real Time Operating Systems 2. Virtual Machines 3. Interpreters, Threaded Interpreter Week 13 1. Advanced Topics 2. In class exercise: Bit-Bang 1-wire control Week 14 1. Final Review 2. Project demo in class [4 weeks since status report 2] 3. Open discussion on success, failures, possibilities... Im still working out the exercises and labs that will help reinforce the material and help the students build toward the project. Exercises The exercises are intended to be short, maybe 1-2 hours of work, and will include a guided worksheet, with a review in class. The work done in the exercises will help prepare the students for the labs and project. #1: Some simple latch, counter, address decode questions #2: A OpAmp, Level shifter and Open Drain questions #3: Simple memory map circuits. Some C pointer exercises.

#4: Reading sensor datasheets, controlling speaker. #5: Assembly, C, mixed developing in Assembly and C, using linker symbols Labs Labs are intended to be 8-10 hours of work, are less guided that exercises, include developing a simple embedded program. #1: Assembly program to blink some LEDs, respond to a button press, simple stuff #2: Stop Watch (I provide the LED display character driver, and basic structure) #3: Function Scheduler, Command Line Interpreter #4: Read from the RTC, Control the WiFi radio (guided lab, I provide stubs & example) #5: Flash loader, RTOS and/or VM and/or Interpreter (I provide code, students modify) Project Each student will build a similar project. The whole class will build essentially the same thing, which includes the Z16 developer kit, a WiFi wireless communications board, a real time clock, and one input device/sensor and one output device/display/ actuator. I will assign the sensor/display randomly from a list. The project assignment will be for each student to assemble the components (simple wiring with instructions and supported by the exercises and labs) and write a program that read data from the input device and the real-time clock, format the data appropriately, and sends the data to the output device. The students program will also need to publish the sensor data to either cosm.com (formerly pachube.com) or sen.se, the real time clock will provide time stamp data. In essence, the class will be building a collection of nodes on the Internet-of-Things. By design no 2 students will build the same thing, this increases variety and offers an opportunity for the students to interact and learn from each other. The project will be a practical implementation of all of the topics in the class from software design, hardware interfacing, embedded systems, debugging, and basic networking. I will provide the students with blocks of code (the WiFi radio is a good possibility) and a stubbed-out shell program for the students to start with. The in class demo of the project will give an opportunity for the students to show their work to the rest of the class and learn from the others. The components necessary are described below. A good number of the part are reused from CSCI-4415 and a number of the sensors and output devices are ones that I have collected over the years. I am proposing a one time equipment purchase of $200 per student for the WiFi radio, additional real-time clocks, and the more interesting sensors and output devices, and I can provide a spreadsheet detailing the exact devices, prices, and source of supply.

Generic Project Block Diagram A typical project: Using the base Z16 developer kit, Real Time Clock, and the WiFi radio, the student will connect a temperature sensor and character based liquid crystal display. The student will read the sensor data sheet and determine how to access the sensor data, then write a program to read the temperature from the sensor and display it, read the time from the clock, and publish the data (time/temp pairs) to cosm.com. To add variety, similar input devices can be paired with different output devices for different students so that no 2 students will build exactly the same node (temperature input, tone output (high pitch for higher temperature), or use a stepper motor as a simple meter-like display, or send the text temperature to the SpeakJet to speak the temperature in words).