Textbook
Giorgio C. Buttazzo, Hard Real-Time Computing Systems, 3rd edition.
The electronic version is accessible via UBC Library.
Additional readings and material not covered in the text will be posted below.
Additional Readings
Textbooks
Sanjoy Baruah, Marko Bertogna, and Giorgio Buttazzo. “Multiprocessor Scheduling for Real-Time Systems.” Springer (2015). UBC Library
Edward Ashford Lee and Sanjit Arunkumar Seshia. “Introduction to Embedded Systems: A Cyber-Physical Systems Approach.” Mit Press (2016). PDF
Research Papers
Chung Laung Liu and James W. Layland. “Scheduling algorithms for multiprogramming in a hard-real-time environment.” Journal of the ACM (JACM) 20, no. 1 (1973): 46-61. PDF
Robert I. Davis, Alan Burns, Reinder J. Bril, and Johan J. Lukkien. “Controller Area Network (CAN) schedulability analysis: Refuted, revisited and revised.” Real-Time Systems 35, no. 3 (2007): 239-272. PDF
Marko Bertogna, and Michele Cirinei. “Response-Time Analysis for globally scheduled Symmetric Multiprocessor Platforms” Proceedings of the 28th IEEE International Real-Time Systems Symposium (RTSS 2007), pp. 149-160. PDF
Rafik Henia, Arne Hamann, Marek Jersak, Razvan Racu, Kai Richter, and Rolf Ernst. “System level performance analysis–the SymTA/S approach.” IEE Proceedings - Computers and Digital Techniques 152, no. 2 (2005): 148-166. PDF
Jonas Diemer, Philip Axer, and Rolf Ernst. “Compositional performance analysis in python with pycpa.” Procdeeings of the 3rd International Workshop on Analysis Tools and Methodologies for Embedded and Real-time Systems (WATERS 2012), 46. PDF
C
- The C Programming Language - Brian Kernighan and Dennis Ritchie (classic)
- The C Book - Mike Banahan, Declan Brady and Mark Doran. Available for free online and as a pdf. This book is well-written, with more emphasis on embedded system aspects.
Embedded Software Enigneering
In completing the projects, you will observe and apply best software engineering practices for embedded software development. The material in Philip Koopman’s course 18-642: Embedded Software Engineering (available as both slides and Youtube videos) is an excellent resource on code quality, safety, and security considerations and practices pertaining to embedded software.
Raspberry Pi: ARM and Peripherals
- BCM2835 ARM Peripherals [BCM2835.pdf]
- BCM2836 ARM Peripherals [BCM2836.pdf]
- ARM Architecture Reference Manual (ARMv7-A and ARMv7-R edition) [arm_arch_ref.pdf]
- Raspberry Pi 2 GPIO Header [GPIO_Pi2.png]
- ARM Instruction Set [arm_isa_ref.pdf]
- GNU ARM Assembler Quick Reference [gnu_arm_ref.pdf]
- GDB Quick Reference (GDB Version 5) [gdb_cmd_ref.pdf]
- ARM Cortex-A Series Programmer’s Guide Version 4.0 [arm-cortex-a-prog-guide-v4.pdf]
- Cortex-A7 MPCore Technical Reference Manual [arm-cortex-a7-mpcore-technical-reference-manual.pdf]