Digital Systems: Difference between revisions
Line 28: | Line 28: | ||
Information about the course is provided on several other pages. | Information about the course is provided on several other pages. | ||
* [[Syllabus and synopsis]]. | * [[Syllabus and synopsis]]. | ||
* [[Lecture notes| | * [[Lecture notes|Notes]] for each lecture. | ||
* [[Problem sheets]]. | * [[Problem sheets]]. | ||
* Information about the [[laboratory exercises]]. | * Information about the [[laboratory exercises]]. | ||
Line 36: | Line 36: | ||
* A page of [[frequently asked questions]]. | * A page of [[frequently asked questions]]. | ||
* A [[glossary]], defining terms used in the course. | * A [[glossary]], defining terms used in the course. | ||
* A useful page | * A useful page listing the [[Thumb instructions by lecture|Thumb instructions]] introduced in each lecture. | ||
==Miscellaneous== | ==Miscellaneous== |
Revision as of 12:28, 12 January 2022
or, How to read a datasheet.
This is a course about how computers work, starting with logic gates and latches, ending with concurrent processes running under a simple operating system, and spending time on machine-level programming in the middle.
- In Hilary Term, we will study low-level programming with the help of a tiny computer, the BBC micro:bit, which includes an ARM-based microcontroller as its processor. Starting in assembly language and moving on to C, we will learn about the instructions that make up machine code, including arithmetic, branching, memory access, and subroutines. We will also (vitally for embedded systems) learn about controlling I/O devices, such as the buttons and lights on the micro:bit and the serial interface that allows it to talk to a host computer. Once a program reaches a certain degree of complexity, it is no longer sufficient to wait in a tight loop for an event to happen, and we will study the hardware and software aspects of solutions to this problem: using interrupts to respond to external events, and an operating system to structure the program as a family of concurrent processes, each responsible for one part of the task.
- In Trinity Term, we will study the elements of computer hardware, building up from gates and latches to architectural elements such as registers, adders and decoders, and finally a paper model of a processor able to execute a selection of ARM instructions, supported by an architectural simulator.
Schedule
Hilary Term
Lectures in Lecture Theatre B:
- Mondays, 10.0 am, weeks 2–8.
- Tuesdays, 10.0 am, weeks 1–8.
- Friday, 11.0 am, week 1.
The lecturer will be unavoidably detained on Monday of First Week, so lectures that week will be on Tuesday and Friday.
Lab sessions in the Thom Building, Department of Engineering Science:
- Thursdays, 3.0–5.0 pm, weeks 5–8.
In addition to the official lab times noted above, the lecturer will be available at the same time and in the same place in weeks 3 and 4 to help those who want to get an early start with assembly language programming.
Consultation sessions: the lecturer will be available online to answer questions at set weekly times. This is for the benefit of participants who are prevented from returning to Oxford, but others are welcome to join also.
Trinity Term
To be decided.
Resources
Information about the course is provided on several other pages.
- Syllabus and synopsis.
- Notes for each lecture.
- Problem sheets.
- Information about the laboratory exercises.
- A reading list.
- A page about the BBC micro:bit, including links to online resources.
- A page about the micro:bian operating system.
- A page of frequently asked questions.
- A glossary, defining terms used in the course.
- A useful page listing the Thumb instructions introduced in each lecture.
Miscellaneous
- A literate Haskell version of the Thumb simulator, differing in many details, including the names of control signals.
- Notes for the project of extending and porting micro:bian.
- A list of ways of programming the micro:bit.
- A check-list of preparation tasks to negotiate with IT Support.
Links
- Jay Carlson reviews dozens of different microcontrollers costing $1 or less.
- More than you could possibly need to know about bit-twiddling hacks.
- ↑ So called because the board dangles from its USB cable like a teabag dangling from its string.