Module Code - Title:
ET4047
-
EMBEDDED SOFTWARE
Year Last Offered:
2025/6
Hours Per Week:
Grading Type:
N
Prerequisite Modules:
Rationale and Purpose of the Module:
The aim of the module is to provide students with the theoretical and practical background needed to develop software that will run on microcontrollers in embedded systems, i.e. computing devices that perform specific tasks within a larger physical or electronic system. The main objectives of the module are to develop students' knowledge and skills in embedded software development using an Integrated Development Environment (IDE) or equivalent tool to program a target microcontroller in a typical embedded system.
Syllabus:
The following is indicative of the module content: Review of microprocessor/microcontroller architecture and instruction sets - registers, memory and input/output devices, focusing on a specific microcontroller and its assembly language.
High level programming language as a more productive embedded programming environment.
Review of high-level language programming techniques relevant to embedded software development.
Microcontroller on-chip peripheral devices including general-purpose input-output ports (GPIO), timer/counters, analog to digital converters, asynchronous and synchronous serial ports, etc
Program a microcontroller on-chip peripheral input output devices using the peripherals' control, status and data registers.
Use of a microcontroller's interrupt structure. Interrupts as a way of developing embedded systems capable of responding to real world inputs in a defined time-period.
Introduction to real time systems concepts.
Learning Outcomes:
Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)
Upon successful completion of the module, the student will be able to:
Describe the embedded software development process, applying prior knowledge and skills.
Apply the information contained in a microcontroller data sheet to deduce the necessary peripheral register settings to achieve a specified outcome or behaviour
Develop one or more microcontroller-based interrupt-driven programs in a high-level language that can successfully control and interact with a typical embedded system, including user input and output.
Analyse, test, and debug microcontroller software in a target embedded system using an Integrated Development Environment (IDE) or equivalent tool.
Implement an embedded microcontroller program using high level and assembly language modules that communicate with each other.
Affective (Attitudes and Values)
Upon successful completion of the module, the student will be able to:
Explain the need to produce tested software systems that meet the requirements of an end-user.
Psychomotor (Physical Skills)
Upon successful completion of the module, the student will be able to:
Build up an embedded system from supplied component parts and write software to run on their system.
How the Module will be Taught and what will be the Learning Experiences of the Students:
The module combines lectures, tutorials and lab sessions. Lectures provide the theoretical and practical background; tutorials explore how to apply the lecture content to solve relevant programming problems; lab sessions allow students to implement embedded programming assignments, which form a substantial part of the module assessment. Students will undertake challenging development projects during lab sessions and at home. Projects may be undertaken individually or as group projects.
Tutorials enhance students' knowledge, labs and projects stimulate students' creativity and responsibility as well as allowing them to work in a collaborative way.
This module has been updated to reflect current best practice in embedded systems software development at a level appropriate to third year students.
Research Findings Incorporated in to the Syllabus (If Relevant):
Prime Texts:
Elliot Williams (2014)
Make: AVR Programming: Learning to Write Software for Hardware
, Maker Media Inc
Warwick A Smith (2016)
C Programming with Arduino
, Elektor Publication
Other Relevant Texts:
Sepehr Naimi et al (2017)
The AVR Microcontroller and Embedded Systems Using Assembly and C: Using Arduino Uno and Atmel Studio
, Micro Digital Ed
Programme(s) in which this Module is Offered:
BSCSIFUFA - CYBER SECURITY AND IT FORENSICS
Semester(s) Module is Offered:
Autumn
Module Leader:
edin.omerdic@ul.ie