Course: Embedded Systems credits: 5

Course code
ELVH20AEMB
Name
Embedded Systems
Study year
2020-2021
ECTS credits
5
Language
English
Coordinator
P.J. Kamphuis
Modes of delivery
  • Assignment
  • Individual supervision
  • Lecture
  • Practical / Training
Assessments
  • Embedded Systems - Assignment

Learning outcomes

At the end of this study unit:
  • The student writes a C program that implements a given task or algorithm by using a combination of the following topics
    • Pointers and pointer arithmetic
    • Structures, Unions and TypeDefs
    • Stream Input and output
    • Program structures
    • Files in/output.
  • The student writes a C program with efficient memory management by using the following topics
    • The impact on memory and performance of data structures
    • Memory allocation
    • Memory leaks.
  • The student improves the re-usability of a C program by logically dividing the code between header files (.h) and code files(.c)
  • The student uploads a program on a microcontroller by using the following topics
    • Compiler options
    • Bootloaders and uploaders
    • Make files
    • Linker.
  • The student writes a C program for a microcontroller that implements a given task by using a combination of the following functionality:
    • Registers
    • Software and hardware timers
    • Switches and bouncing
    • (nested) interrupts.
  • The student explains the major components of microcontroller architectures (e.g. SFR, program counter, ALU, memory, DMA)
  • The student writes a program in a low-level programming language (e.g. Assembly)
  • The student configures an FPGA using a hardware description language (e.g. VHDL).

Content

In this study unit you will learn how to write programs in the C programming language. Furthermore you will learn to write embedded software using the Arduino platform. In order to improve the performance you will also learn how to directly access the embedded hardware, e.g. not using the standard Arduino library functionality. Next to the programming you will learn the theory behind microcontroller architectures.
With regard to C programming the topics include:
  • Pointers and pointer arithmetic
  • Memory management
  • Structures, Unions and TypeDefs
  • Stream input and output
  • Compiler options
  • Program structure and make files
  • Code separation.
With regard to embedded programming the following topics will be addressed:
  • Microcontroller architecture and registers
  • Software and hardware timers
  • Switches and bouncing
  • (nested) Interrupts
  • Bootloaders and uploaders
  • Serial communication
  • Assembly programming
    FPGA configuration.
The grade for this module is from the written exam at the end of the module. All assignments need to be a PASS.