DCU Home | Our Courses | Loop | Registry | Library | Search DCU


Module Specifications

Archived Version 2003 - 2004

Module Title Software Engineering 3
Module Code EE202
School School of Electronic Engineering

Online Module Resources

Module Co-ordinatorDr Robert SadleirOffice NumberS359
Level 2 Credit Rating 5
Pre-requisite EE105
Co-requisite None
Module Aims
The objective of this course is that, on completion, each student should have acquired a basic competence in the special problems of software development for embedded systems. This will include proficiency in one microprocessor assembler language (Motorola M6809) and the integration of a microprocessor assembly language (Motorola M6809) with a high level language (C). This will be supported on a general-purpose cross-development platform (Intel x86 PC compatible hardware, running MS-DOS).

Learning Outcomes
Having successfully completed this course, the student will: 1. Have acquired a basic competence in the special problems of software development for embedded systems. 2. Have a proficiency in one microprocessor assembler language (Motorola M6809). 3. Have the ability to design and implement hybrid 'C' / assembly language programs

Indicative Time Allowances
Lectures 24
Tutorials 9
Laboratories 15
Seminars 0
Independent Learning Time 27

Total 75
Assume that a 5 credit module load represents approximately 75 hours' work, which includes all teaching, in-course assignments, laboratory work or other specialised training and an estimated private learning time associated with the module.

Indicative Syllabus
· Introduction: Role and operation of the CPU. The microprocessor as a CPU in integratedcircuit form. Concept of an embedded system. Development system software. · Basic CPU concepts: CPU architecture. CPU registers and the M6809 register model. General purpose, pointer (including program counter), and flags registers. The concept of instruction set. Assembler features. Assembler directives. One/two pass assemblers. Examples based on M6809, including discussion of native-versus cross-assembly. Linker concepts. Macros. · Introduction to assembly language: Machine language programming. Intelligibility problems.Use of instruction mnemonics. Use of mnemonic labels in control flow. Automatic translation of mnemonics the assembler. Outline instruction set. Operands. · Addressing modes: Inherent, register, immediate, base page direct, extended direct, indirect, extended indirect and indexed. Addressing mode examples based on M6809. Program relative addressing for branches. · Stack concepts: Concept of a stack. The push and pop operations. Stack overflow and underflow. Use of stack to provide basic procedure linkage. Use of stack to provide temporary storage. Examples based on M6809. · Problems: Simple register manipulation. Look up tables. Program loops. Character-coded data. Code conversion. Arithmetic problems. Writing position-independent code. Subroutines. Parameter passing techniques. · I/O concepts: Integrating I/O. Problems of synchronisation with external events: polling (continuous and intermittent) and use of interrupts. Examples based on M6809 family I/O interface devices. Memory maps. Practical problems associated with using interrupts. Interrupted related instructions. · Compiler concepts: Problems with assembly language programming: lack of portability (of applications and/or expertise); impoverished data and code structuring facilities. Solutions provided by high level language. Problems with use of high level language: access to special purpose instructions; size and speed efficiency. Solution based on combining assembly and high level language programming. Examples based on M6809 and C language.
Continuous Assessment15% Examination Weight85%
Indicative Reading List
Recommended text (Purchase optional) - Horvath, R., "Introduction to microprocessors", McGraw Hill, 1992. Additional texts - Leventhal, L., "6809 assembly language Programming", McGraw Hill, 1981. - Leventhal, L. & Cordes, S., "Assembly language subroutines for the 6809", McGraw Hill, 1985. - Brighouse, B. & Loveday, G., "Microprocessor in engineering systems", Pitman, 1987.
Programme or List of Programmes
DMEB.Eng. in Digital Media Engineering
EEBEng in Electronic Engineering
ESBEng in Electronic Systems
MEB.Eng. in Mechatronic Engineering
TCBEng in Telecommunications Engineering