Module aims: To provide the learner with the knowledge and skills required to design, build and debug a complex embedded system.
Fundamentals of Embedded Systems: What are embedded systems, Realtime systems, Recap on number systems, Roll-over and overflow, Fixed-point arithmetic, Ethical issues in safety critical systems.
Platform: Recap on microcontroller architecture, Additional capabilities of the microcontroller used in this module – timers, watchdog timer, interrupts.
I/O Devices: Common I/O hardware and interfaces – LCDs, switches, keypads, serial port, MEMs devices – applications, manufacture and interfaces. The accelerometer.
Embedded System Code Specialities: Bit-banging – shifting and masking. Inline assembly – when and how to use it. General concepts of interrupts and Interrupt Service Routines – ISRs. ISRs in C. Shared data problem introduced by ISRs.
Design Tools: Statecharts as a design tool. UML statechart nomenclature.
Debugging: Debugging embedded systems – simulators and emulators. Host testing, simulators, Stubs and test-harnesses.
Working in a team
Modularisation of code – header files and implementation files.Good use of the C preprocessor – types.h, ports.h, project.h.
Overall Project Issues: Typical project lifecycle. Project management issues – schedules, documentation and good communication. Environmental impact of component choice – materials, power usage, EM interference. Ethical issues - commercial and open source.