Notes
Lectures are being recorded; see side-bar for link.
Intro to Embedded
- #1 - Welcome or in colour
- Intro video to Zen Cape and hardware kit (from a previous offering, but still mostly applicable)
- #2 - Care and feeding instructions or in colour
- #3 - Development Environment or in colour
- In class example program and makefile
- Suggested tutorial for the command line
- Videos on setting up a VM:
Installing VMWare Player and Debian VM
Configuring a VMWare Player's virtual machine
Building Software & C
- #4 - Building software (Make and CMake) or in colour
- Starter CMake project for assignments
- Make and CMake tutorials
- Makefile tutorial - Great introduction to Makefiles
- How to Use CMake,
- Introduction to CMake by Example
- CMake Tutorial.
- [NEW] Lecture recording Jan 17; Passcode:
awesome
- #5 - C programming or in colour
- In class C programming examples
- Optional videos on C programming (in Eclipse) by Br. Brian; useful if new to C:
C Basics: Basics, functions, prototypes, and constants
C Modules: Multiple files in a project, including "private" functions (static)
Eclipse basics: Importing an existing makefile program
- Academic Honesty
Linux Programming
- #6 - Linux programming or in colour
- In class Linux programming examples
- YouTube videos on Linux programming (by Brian)
- Processes (Fork & Exec)
fork(): Create a process
exec(): Replace current program with another
fork() and exec() - Threads (pthreads)
#1-Introduction: Create a single thread
#2-Multiple threads: Passing data in/out using a struct with numerous threads
#3-Dynamic memory: Passing data in/out of thread function using dynamically allocated memory - Synchronization
Synchronization using mutex
- Processes (Fork & Exec)
PWL & Noise
Debugging & Profiling
- #8 - Debugging w/ GDB & VS Code or in colour
- [BEFORE LECTURE] Watch recoded presentation of slides (32 minutes)
- Debugging guide covers how use GDB and VS Code for graphical debugging
- Examples code for debugging
- Videos
GDB Cross Debugging
GDB Cross Debugging seg faults
Graphical cross debugging with Eclipse
Dynamic memory debugging usingvalgrind
tool
- #8.5 - Profiling or in colour
- Examples code for
mtrace
and profiling
- Examples code for
- #9 - Linux file system or in colour
Electronics
Embedded Webserver
- #10 - Node.js or in colour
- Pre-recorded videos
- Part 1: Static files (34 minutes)
- Part 2: Dynamic interactions (28 minutes)
- See Node.js in Action (2nd ed) book via SFU Library online for guide to Node.js
- Node.js examples [Updated Feb 9 2023]
Note: Makefile will deploy to public folder too!
- Pre-recorded videos
- As3 PCM Discussion as .png or as .svg - Screenshot of a previous offering!
- Previous year's discussion about PCM audio (some details may not be 100% the same)
PRU
- #15.0 - PRU or in colour
- Sample PRU Sample Code (zip file)
- Note that the
pru_14SegFun
example from the PRU guide is repeated in the15-PRU-GPIO.zip
file. - See guides page for PRU guide.
- #15.1 - PRU Memory or in colour
- Sample PRU Code for shared memory (zip file) (same as code for 15.1 slides).
- #15.2 - NeoPixel or in colour
Bit Twiddle
- #13 - Bit Twiddling or in colour
- Book appendix describing Bitwise operations (PDF)
Kernel
- March 20 & March 22: No lecture; the following videos are uploaded instead.
- #12.1 - Kernel intro. or in colour
- Video of slides (30m)
- Driver sample code: You may use any/all of this code in your assignment
- User-space test app for reading files with a specific buffer size
- #12.2 - Driver intro. or in colour
- #12.3 - Misc driver or in colour
- Video of slides - Part 1 (30m)
- Video of coding read routine (13m)
- Video of slides - Part 2 (23m) - (Code window clipped for part)
- #12.4 - Kernel LEDs or in colour
Real-time
- #17 - Real-time or in colour
- [PLEASE WATCH] Previous semester lecture recordings
Part 1: Slides 1-11 (45m)
Part 2: Slides 12+ (30m)
- [PLEASE WATCH] Previous semester lecture recordings
- #19 - Scheduling or in colour
- Apr 5 Lecture Recording: Passcode:
awesome
- Apr 5 Lecture Recording: Passcode:
FMEA
- FMEA notes or in colour
- FMEA spreadsheet template, and FMEA ratings (from here)
- Not on Quiz 4.
systemd, & Watchdog (May skip)
- #16 - systemd and Watchdog or in colour
- Sample systemd config file and watchdog example
- Not on Quiz 4.