This module will introduce you to the general principles and practices of developing software that interacts directly with the hardware and its physical environment.
Software has found its way into almost any electronic device with a typical household already possessing well over 100 computers embedded into products. These microcontrollers are complete computers integrated on a single chip, some only costing pennys and taking up no more than 2x2x2mm^3. The relative simplicity of such microcontrollers make it possible to comprehend a complete computer system within the scope of this module. At the same time these systems are state-of-the art technology with applications ranging from mobile devices and the internet-of-things, to sensor networks, distributed control architectures, and robots.
This module is for students with good self-study skills who enjoy to work independently on practical technical challenges. To succeed in this module you need to teach yourself C from on-line resources and you need to be able to install a cross-compilation tool-chain on your own computer. Please note:
- There is no text book for this module, you will use on-line resources and publicly available documentation for libraries and circuits (see the module notes).
- There is no individual feedback for the frequent coursework (see details below).
- You will receive a hardware kit that includes a microcontroller development board and the peripherals needed to develop, download and debug code on the board (see the module notes).
In a typical week during this module you will have:
- Two lectures introducing new material
- One lecture introducing the coursework exercise due in the coming week
- A tutorial in which the model answer for the previous coursework exercise is discussed and you can ask questions you have about your own solution
- Reading assignments for on-line material that complements the lectures
Pre-requisites: (COMP1202 OR ELEC1201) AND COMP1203 AND COMP1206