Note: I've just migrated to a different physical server to run Spivey's Corner,
with a new architecture, a new operating system, a new version of PHP, and an updated version of MediaWiki.
Please let me know if anything needs adjustment! – Mike

Reading list

Copyright © 2017–2023 J. M. Spivey
Revision as of 20:09, 10 March 2020 by Mike (talk | contribs)
Jump to navigation Jump to search

Information about the ARM – sufficient to follow the first part of the course – can be found on the micro:bit page. Besides the reference material, the notes by Geoffrey Brown are useful as background reading. The official book by Joseph Yiu also contains some useful information.

For operating systems, I have used

  • Tannenbaum, Operating Systems: Design and Implementation.

The IPC mechanism of Phōs is modelled on that of Minix, and closest to the code in the first edition of the book, which avoids complexities introduced by support for the 386 introduced in later editions.

I have also made some use of

  • Douglas Comer, Operating System Design: The XINU Approach, 2nd edition, Chapman and Hall / CRC Press, ISBN 978-1498712439.

For architectural elements, and a non-obsessive approach to logic design I recommend certain sections of this book:

  • David A. Patterson and John L. Hennessy, Computer Organisation and Design, any edition, Morgan Kaufman.

The book has been through many editions, but the elementary material is similar in all of them (as far as I can see). In the fifth edition, the following sections are relevant.

Not on the reading list
  • Chapter 2 – Instructions: Language of the Computer.
  • Chapter 3 – Arithmetic for Computers, to Section 3.4 – Division.
  • Chapter 4 – The Processor, to Section 4.4 – A Simple Implementation Scheme.
  • Appendix B – The Basics of Logic Design.

There is an edition of the book that describes ARMv8-A, but it doesn't cover the Thumb encoding supported by microcontrollers, so I suspect it is not much more use for the course than the other editions.

For users of the fourth edition, here is a local copy of Appendix C – Basics of Logic Design, which may also be found on the publisher's website.