ELEC 2220 - Computer Systems

Summer Term, 2017 - Victor P. Nelson

Office Hours: MWF: 8:30-9:30 am; TH: 3:00-4:00 pm

Class Meetings:  MWF: 1:15 – 2:30 pm, Broun 102

Syllabus

Significant Dates:

Monday, May 29: Memorial Day holiday

Thursday-Friday, June 22-23: No class (Mini-semester 1 reading day/final exams)

Tuesday, July 4: Independence Day holiday

Friday, July 28: Classes End

Final Exam – Friday, August 4, 4:00-6:30 p.m.

 

Homework Assignments (by due date)

  1. Monday, May 22 (Review – programming and digital logic design)
  2. Wednesday, May 24 (Review – programming and number conversions)
  3. Friday, May 26 (Review – signed and unsigned binary arithmetic)
  4. Wednesday, May 31 (Sample ARM project setup)
  5. Friday, June 2 (Memory and instructions in an ARM program)
  6. Monday, June 5 (Memory allocation and a simple ARM program)
  7. Wednesday, June 7 (Memory addressing)
  8. Friday, June 9 (Arithmetic)
  9. Monday, June 12 (Logical operations)
  10. Monday, June 19 (Program design)
  11. Wednesday, June 21 (Conditional branches and subroutines)
  12. Wednesday, June 28 (Subroutines)
  13. Monday, July 3 (GPIO pins)
  14. Wednesday, July 5 (LED control)
  15. Monday, July 10 (LED control 2)
  16. Monday, July 17 (Interrupt setup and “paper design”)
  17. Wednesday, July 19 (LED control 3 – interrupts)
  18. Monday, July 24 (Programmable timer interrupts)
  19. Friday, July 28 (Memory Systems; Will not be collected)

Final Project: Due Friday, July 28

 

Lecture Topics and Notes

5/19. Overview of Computer System Organization (Text chapter 1)

5/22. Overview of Computer System Organization (Text chapter 1 - continued)

5/24. Address decoding, memory, instruction fetch/execution (Text chapter 1.)

5/26. Numeric operations, overflow, relational operators (Text chapter 2)

5/31. Keil uVision5 program and debugger. (Text chapters 1 and 3)

6/2.   ARM Instruction Set Architecture  (Class notes scan) (Text chapter 3) 

6/5.  ARM data movement instructions (Text chapter 5)

6/7.  ARM arithmetic instructions (Class notes scan) (Text chapters 4 and 9)

6/9.  ARM logical instructions (Text chapter 4)

6/12. ARM shift instructions (Chapter 4), ARM branch instructions (Chapter 6)

6/14. Midterm Quiz #1

6/16  ARM branch instructions and program structures (Class notes scan) (Chapters 6 & 7) 

6/19  ARM subroutines and functions (Class notes scan) Chapter 8)

6/21  ARM subroutines and functions (Class notes scan) (Chapter 8)

6/23  Mini-Semester Final Exams (no class)

6/26  Memory systems and devices (Prof. Ujjwal Guin)

6/28  ARM general-purpose input/output (Class notes scan) (Chapter 14)

6/30  ARM parallel input/output and GPIO pins (Chapter 14)

7/3    ARM parallel input/output and GPIO pins (Class notes scan) (Chapter 14)

7/5    ARM parallel input/output and GPIO pins

7/7    Interrupt-driven I/O (Chapter 11)

7/10  Interrupt-driven I/O, Interrupts on ARM  (Chapter 11)

7/12  Interrupts on ARM  (Chapter 11)

7/14  Midterm Quiz #2

7/17  Timers and interrupts (Class notes scan) (Chapter 15)

7/19  Timers and interrupts (Chapter 15)

7/21   Analog input/output (Chapters 20, 21)

7/24   Analog input/output (class notes scan) Chapters 20, 21)

7/26   Memory systems and devices (class notes scan)

7/28   Memory systems and devices (Class notes scan) (Memory homework)

(Classes End)

8/4    Final Exam 4:00 – 6:30 pm

Class Resources

·         ARM Cortex-M4 Thumb-2 instruction set summary (to be provided for quizzes)

·         Yifeng Zhu, Embedded Systems with ARM Cortex-M Microcontrollers in Assembly Language and C, 2nd Edition, E-Man Press, LLC, 2015, ISBN 978-0-9826926-3-9. (amazon.com)  Textbook web page: http://web.eece.maine.edu/~zhu/book/lab.php

·         Jonathan W. Valvano, Introduction to ARM Cortex-M Microcontrollers (Volume 1), ISBN-13: 978-1477508992, ISBN-10: 1477508996 (amazon.com - paperback or Kindle)

Prof. Valvano’s ARM Web Site: http://users.ece.utexas.edu/~valvano/arm/

 

·         Other course web pages with ARM-related material:

http://www.eng.auburn.edu/~nelsovp/courses/elec5260_6260/ (STM32F4-Discovery)

http://www.eng.auburn.edu/~nelsovp/courses/elec3040_3050/ (STM32L100C-Discovery)

·         Kiel MDK-ARM development software (download): http://www.keil.com/demo/

·         Installing MDK-ARM

·         Creating Projects for STM32F4-Discovery with MDK-ARM

·         Debugging Projects for STM32F4-Discovery with MDK-ARM

·         Sample “simple” assembly language source file.

·         STM32F4-Discovery Kit (Bottom of the page lists vendors for ordering boards. We’ve had good service from ST, Digikey and Mouser for small orders.)

·         STM32F4-Discovery User Manual

·         STM App. Note 230 - Cortex-M4 training for STM32F4-Discovery board using ARM Keil MDK5 toolkit

·         STM32 ST-LINK/V2 Utility – Go to this page, scroll down to “Related Tools and Software”, and then select, download and install the STM32 ST-LINK utility. Also in this list are ST0LINK/V2 USB device drivers needed to connect to the project board.

·         STM32F4-Discovery Board Firmware Package/Demo Software (.zip file near bottom of page)

·         STMicroelectronics (The microcontroller manufacturer)

·         STM32F407VG Microcontroller - Web Resources

·         STM32F407x Microcontrollers Data Sheet

·         STM32F4xx Microcontrollers Technical Reference Manual

·         STM32F4xx Cortex-M4 programming manual

·         ARM Web Page: http://www.arm.com

·         Cortex-M4 Devices Generic User Guide

·         ARM Thumb-2 Instructions Reference

·         ARM Thumb Instructions Quick Reference

·        ARM Architecture Reference Manual (ARM, Ltd.)

·        ARM7TDMI Technical Reference Manual (ARM, Ltd.)

·        ARM Assembly Language (Knaggs & Welsh - Bournemouth Univ.)

·        ARM University Program: http://www.arm.com/community/university/

·        Online introduction to ARM: http://www.techonline.com/learning/course/100280

·         ARM lectures by Dr. Santanu Chaudhury, EE Department, IIT Delhi: http://www.youtube.com/watch?v=4VRtujwa_b8&playnext=1&list=PL95AFA4ABA8B28627&feature=results_main

Resources for HCS12 Version of the Course      

    C:\Program Files (x86)\Freescale\CWS12v5.1\Prog