CMPE 311: C Programming and Embedded Systems
Fall 2017

Course Information

Instructor - Tinoosh Mohsenin
Lecture: Tuesday, Thursday,Performing Arts and Humanities Room 234, 1:00 - 2:15
Discussion: Monday or Wednesday, ITE375, 5:30 - 6:45
Office Hours: by appointment ITE 323

TA: Rashid, UTA: Ressa


Lecture


Thanks to previous instructors Alex Nelson and Prof. Robucci for preparing the original slides and other material for the class.

Date

Notes

Info

9/01/2017 Intro, Syllabus, Syllabus presentation, 310 Review and Chapter 1
9/5/2017 Instruction Set Architecture review , Memory Types, Review and AVR Architecture Review the Atmel datasheet, particularly the architecture details ATMega169P Datasheet,
9/13/2017 instruction types Assignment 1 posted and discussed
9/15/2017 IO Ports and Assembly examples Very helpful notes on AVR operation, Instruction and examples
9/19/2017 m169Pdef.inc AVR Butterfly Board Pin Connections
9/22/2017 AVR CPU Registers
9/22/2017 AVR Addressing Modes, AVR Addressing Modes with exampleS from UNCC, State Machine Example, State Machine Notes For instructions and examples review AVR Command Set
9/22/2017 Assembler Examples More Examples from Bill Smith Macro examples added to slides
9/26/2017 *NEW*UART Write Example *NEW*AVR UART Notes
9/28/2017 Begin C Introduction Quiz 1
10/03/2017 C Introduction Bitwise operation examples from micah carrick, _bv macro typedef uint8_t
10/04/2017 Finish C Introduction Example to configure and read Ports
10/06/2017 Functions, Macros, Separate Compilation
10/06/2017 Arrays Quiz 3
10/6/2017 Strings Examples for using String
10/8/2017 Pointers a Pointer example
10/8/2017 Pointers Arrithmetic Reminder for AVR data types
10/20/2017 Pointers from Reference book-slides Pointers from Reference book
10/25/2017 Structs, Unions and Bitfields Examples for Struct Examples for Union Examples for BitFields
10/31/2017 Advanced Pointers and Dynamic Memory Management *NEW* Example on Dynamic Memory Management
11/2/2017 Important Linkedlist Examples
11/7/2017 MidTerm Practice
11/10/2017 Interrupts Atmel DataSheet Section 11 and 12
11/10/2017 Analog To Digital Converters ADC AVR notes, and Atmel DataSheet Section 22
11/14/2017 MidTerm
11/17/2017 Timers and Counters Atmel DataSheet Section 14
11/17/2017 Timers and Counters Continued
11/17/2017 HW4 clarification and notes
11/28/2017 Embedded Processing Applications and multicore
11/30/2017 Real-Time Operating Systems Quiz 5
12/5/2017 Notes from book Ch11:Real-Time Operating Systems
12/7/2017 types of parallelism and multicore Quiz 6
12/12/2017 Review for Final Exam


Discussions


Date

Notes

Info

9/6/2017 & 9/7/2017 CMPE311:Guidelines, Discussion1, LED Blink Assembly Code, Part List, AVR Butterfly Pin Connections, Link to Download Atmel Studio (Free)
9/12/2017 & 9/14/2017 Discussion 2 slides, Discussion2 sample code
9/19/2017 & 9/21/2017 Discussion 3 UART.asm
9/25/2017 & 9/27/2017 Discussion 4 C Example
10/10/2017 & 10/12/2017 Discussion 5
10/5/2017 & 10/7/2017 Discussion 6 Discussion 6 C Code, LCD Driver.c, LCD Driver.h
10/12/2017 & 10/14/2017 LinkedList.c
11/14/2017 & 11/16/2017 Discussion 7 Interrupt C Code, LCD Driver.c, LCD Driver.h
11/14/2017 & 11/16/2017 Discussion 8 Timer C Code
11/14/2017 & 11/16/2017 Discussion 9 ADC C Code, ADC Tutorial Extra


Projects

All dates are tentative and subject to change.

Date Assigned

Date Due

Project Link

Reading References

9/11/2017 Part 1 - 9/22/2017
Part 2 - 9/29/2017
Assignment 1 ATMega169 Datasheet, AVR Instructions,Butterfly User Guide to find the register location for joystick and buzzer
10/03/2017 Part 1 - 10/13/2017
Part 2 - 10/20/2017
Assignment 2 Uart.c, Uart.h
10/22/2017 11/10/2017 Assignment 3 input.txt
11/13/2017 11/26/2017 Assignment 4 HW4 part connections
11/27/2017 12/13/2017 Assignment 5


Resources


Type

Links

AVR Assembly Beginner AVR Assembler - AVR Assembler Begginer Guide
AVR Command Set - AVR Assembler Command Set
AVR Assembler Macros Useful Macros, How to use Macros
Subroutines Writing Subroutines
AVR Parts Parts List, JTAG Connection
AVR Butterfly ATMega169P Datasheet, Butterfly User Guide
Valgrind Quick-Start Guide
C Examples MIT OpenCourseWare, AVR C Code Examples