|
|
|
|
|||||||
Lecture # |
Notes Topic
|
Key Concepts
|
Reading & Resources
|
Lecture 1 - Part 1 Lecture 1 - Part 2 |
Syllabus Notes 1: Introduction to Embedded Systems and Microcontroller-based Circuit Design (updated 11/18/10 - minor) |
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 |
Lecture 2 - Part 1 Lecture 2 - Part 2 |
Notes 1-13 to 1-29 Notes 2: M16C Instruction Set Architecture (updated 11/18/10 - minor) (2-1 to 2-15) |
ISA, register set, addressing modes, operations | MDS pp. 1-26, 170-180 MSM pp. 1-32 |
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
|
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 |
Lecture 5 - Part 1 Lecture 5 - Part 2 |
Notes 4-5 to 4-35 Renesas Tools example Plus these Handouts and Extra Notes |
Renesas Quick Start Guide | |
Lecture 6 - Part 1 Lecture 6 - Part 2 |
Pointers, strings, formatted output | P&P Ch. 18, 19 | |
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
|
|
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 |
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 |
|
Lecture 10 | Analog to digital conversion | - Analog to Digital Converters, Stuart Ball - MDS pp. 187-202 convert_temp.c, convert_temp.h, main_convert_temp.c, lab5_ADC_example.c |
|
Lecture 11 - Part 1 Lecture 11 - Part 2 |
Notes 8-16 to 8-34 Plus these Extra Notes |
Analog to digital conversion | |
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 |
|
Lecture 13 | Notes 10-11 to 10-27 Plus these Extra Notes |
Interrupt concepts and behavior and how to program with them in C | |
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 serial_poll_demo.c; serial_poll_includes.h |
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 |
Lecture 16 | Notes 12-5 to 12-6 Plus these Extra Notes |
Serial ISRs, synchronization between ISR and main program | |
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 | |
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 |
|
Lecture 19 - Part 1 Lecture 19 - Part 2 |
Notes 13-18 to 13-28 Plus these Extra Notes |
||
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 | |
Lecture 21 will not be recorded - read the notes | 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 |
|
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 | |
Lecture 23 - Part 1 Lecture 23 - Part 2 |
Round-robin non-preemptive scheduler | - Reentrancy, Jack Ganssle see skp26.c and skp26.h |
|
Lecture 24 - Part 1 Lecture 24 - Part 2 |
State machines, Thread Control Blocks | Context Switch, David Kalinsky | |
Lecture 25 - Part 1 Lecture 25 - Part 2 |
Notes 18-9 to 18-30 Plus these Extra Notes |
||
Lecture 26 | Shared data problem revisited, Synchronization primitives | ||
Lecture 27 | Semaphores and Monitors, NRT and RT Scheduling | ||
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 |