The aim of this module is to combine the microprocessor and software skills already learned by the student such that they can design and implement sophisticated embedded systems. Explore the issues that must be dealt with by the software in a real-time system and introduce the student to the use of a real-time operating system.
What are embedded and real-time systems?
Characteristics of such systems, Contrasts with “typical” application software, Development process for embedded system, Ethical issues in safety critical systems.
Hardware Issues
Typical hardware, Choice of processor, Memory types, Microcontroller systems and board based systems, Cost issues.
Review of number systems
2's complement, hexadecimal, bcd. Accurate representation of numbers and limitations of fixed precision. Fixed-point arithmetic.
Build Process for Embedded Systems
Cross compiling and linking for an embedded system. Compiler extensions.
Hardware Interfacing
Switch debouncing. Timing demands
Real-Time Issues
Meeting real-time demands.Hard and soft real-time systems.Software loops.Use of hardware timers.
C and Assembly
The C execution environment.C and the stack.Writing functions in C and assembly.Use of dynamic memory.
Interrupt Processing
Interrupt programming in C.Interrupt priorities.
Multi-state systems
Designing event driven systems using statecharts.Implementing statecharts.
Optimization Issues
Code size issues.Speed issues. Enabling and disabling compiler optimizations.
Host Communication
Communicating with a PC via a serial link.Menu driven systems.
Testing an Embedded System
Debugging real-time embedded systems.Use of conditional compilation and debug printing.Testing without hardware – host testing and simulations.Hardware emulators.JTAG.Testing and certification of life-critical systems.
The module will be delivered through a series of lectures and lab sessions with student self-directed learning including assessment activities.
Module Content & Assessment | |
---|---|
Assessment Breakdown | % |
Other Assessment(s) | 100 |