|
|
|
|
|||||||
Lecture # |
Notes Topic
|
Key Concepts
|
Reading & Resources
|
8/24/09 Lecture 1 - Part 1 Lecture 1 - Part 2 |
Syllabus Notes 1: Introduction to Embedded Systems and Microcontroller-based Circuit Design |
Overview, class policies, basic hardware design | Beware of Programmers Carrying Screwdrivers, Jack Ganssle The Two Percent Solution, Jim Turley The Death of ASICs Jim Turley |
8/26/09 Lecture 2 - Part 1 Lecture 2 - Part 2 |
Notes 1-13 to 1-29 Notes 2: M16C Instruction Set Architecture (2-1 to 2-15) |
ISA, register set, addressing modes, operations | MDS pp. 1-26, 170-180 MSM pp. 1-32 |
8/31/09 Lecture 3 - Part 1 Lecture 3 - Part 2 |
Notes 2-15 to 2-28 Notes 3: C Programming Review and Dissection I |
Variables (local, global), memory sections, control structures, call stacks | P&P Ch. 11, 12, 13 MCPM Ch. 1, 2.1
|
9/2/09 Lecture 4 - Part 1 Lecture 4 - Part 2 |
Notes 3-13 to 3-29 Notes 4: C Programming Review and Dissection II |
Functions, arguments, return values, arrays | P&P Ch. 14, 16 |
9/9/09 Lecture 5 - Part 1 Lecture 5 - Part 2 |
Notes 4-5 to 4-35 Renesas Tools example Plus these Extra Notes |
Renesas Quick Start Guide | |
9/14/09 Lecture 6 - Part 1 Lecture 6 - Part 2 |
Pointers, strings, formatted output | P&P Ch. 18, 19 | |
9/16/09 Lecture 7 - Part 1 Lecture 7 - Part 2 |
Notes 6: C Programming Review and Dissection IV
(6-1 to 6-16) |
Dynamic memory management and linked lists
|
|
9/21/09 Lecture 8 - Part 1 Lecture 8 - Part 2 |
Notes 9: Disciplined Software Development Plus these Extra Notes |
Writing algorithms and code and tests | Ten essential elements to guarantee enhanced software quality, Deepti Sharma |
9/30/09 Lecture 9 - Part 1 Lecture 9 - Part 2 |
Start-up module, configuring digital I/O ports, reading and writing them, accessing unions, structures and bitfields in C | - MCPM Ch. 2 |
|
9/28/09 Lecture 10 |
Analog to digital conversion | - MDS pp. 187-202 |
|
10/5/09 Lecture 11 - Part 1 Lecture 11 - Part 2 |
Notes 8-16 to 8-34 Plus these Extra Notes |
Analog to digital conversion | |
10/7/09 Lecture 12 - Part 1 Lecture 12 - Part 2 |
Interrupt concepts and behavior and how to program with them in C | - Introduction to Interrupts, Russell Massey |
|
10/19/09 Guest Lecture |
Notes 10-11 to 10-27 Plus these Extra Notes |
Interrupt concepts and behavior and how to program with them in C | |
10/21/09 Lecture 14 - Part 1 Lecture 14 - Part 2 |
Notes 11: Serial Communications |
Serial communications basics, polled serial communication | - RS232: Fulfilling All Your Communication Needs, Robert Ashby |
10/26/09 Lecture 15 - Part 1 Lecture 15 - Part 2 |
Notes 11-15 to 11-25 |
Serial ISRs, synchronization between ISR and main program | Volatile, Nigel Jones serial_int_demo.c |
10/28/09 Lecture 16 |
Notes 12-5 to 12-6 Plus these Extra Notes |
Serial ISRs, synchronization between ISR and main program | |
11/2/09 Lecture 17 - Part 1 Lecture 17 - Part 2 |
Notes 12-6 to 12-16 Plus these Extra Notes |
Serial ISRs, synchronization between ISR and main program | |
11/4/09 Lecture 18 - Part 1 Lecture 18 - Part 2 |
Examine timers, event counters, PWM, and cascading in the M30262 | Pulse-Width Modulation, Michael Barr Introduction to Counter/Timers, Stuart Ball and Michael Barr SKP timer demo code |
|
11/9/09 Lecture 19 - Part 1 Lecture 19 - Part 2 |
Notes 13-18 to 13-28 Plus these Extra Notes |
||
11/11/09 Lecture 20 - Part 1 Lecture 20 - Part 2 |
Aspects of software testability, test case design (white-box and black-box) | - Studs and Duds, Eric Umansky | |
Debugging approaches, visibility into embedded systems, getting debug information out, debug tools and features | - P&P Ch. 15 - Twiddle Bits, Michael Gauland, pp. 50-62 |
||
11/16/09 Lecture 22 - Part 1 Lecture 22 - Part 2 |
Notes 16: Sharing the Processor (16-1 to 16-18) Plus these Extra Notes |
General discussion of schedulers and operating systems | |
11/18/09 Lecture 23 - Part 1 Lecture 23 - Part 2 |
Round-robin non-preemptive scheduler | - Reentrancy, Jack Ganssle see skp26.c and skp26.h |
|
11/23/09 Lecture 24 - Part 1 Lecture 24 - Part 2 |
State machines, Thread Control Blocks | Context Switch, David Kalinsky | |
11/30/09 Lecture 25 - Part 1 Lecture 25 - Part 2 |
Notes 18-9 to 18-30 Plus these Extra Notes |
||
12/2/09 Lecture 26 |
Shared data problem revisited, Synchronization primitives | ||
12/9/09 Lecture 27 |
Semaphores and Monitors, NRT and RT Scheduling | ||
12/7/09 Lecture 28 |
Notes 21: Run-Time Methods for Robustness |
Watchdog timers, stack pointer monitoring and brown-out detection | Watchdog Timers, Niall Murphy & Michael Barr Born to Fail, Jack Ganssle main_wdt.c |
Miscellaneous readings Efficient C Code for 8-Bit MCUs, Nigel Jones Fixed-Point Math in C, Joe Lemieux Keys to Writing Efficient Embedded Code, Bill Trudell |
MDS | M16C62_Hardware_Manual_rev1.20.pdf | Renesas M30626P Data Sheet |
MCPM | Renesas M16C/60 M16C/20 Series C Language Programming Manual | |
MSM | Renesas M16C/60 M16C/20 Software Manual | |
P&P | Patt and Patel Slides | Introduction to Computing Systems, Patt & Patel, 2nd Edition |