Embedded Software Lab
The lab will be held as hybrid presence. Please inform via OPAL about the exact regulations.
The course targets the development and analysis of software for embedded systems. It is organized as supervised lab work, where participants develop a proprietary serial communication protocol on a ATMega microcontroller in C. At the end of the course, all student implementations are intended to interact with each other.
The course is offered in English language. Depending on the participant feedback, it can also be offered in German language.
The first meeting is a lecture, all subsequent meetings are organized as lab work. The lab slots must be prepared by the students through coding assignments. For that reason, the lab room is available exclusively for this course during the whole lecturing period. Your solution must be presented both to other students and the supervisors during lab time. Suggested or neccessary changes can then still be implemented. Between the lab slots, the discussion forum should be used for interaction between the students and the supervisors.
The course has a participant limit. The preliminary registration for this course takes place via OPAL. In case the number of interested students is too high, we will conduct a small multiple choice test during the first lecture. Based on your score in this test, you may be allowed to participate.
One prerequisite for this course is a success grade in the Design of Software for Embedded Systems (565050) course. Beside that, you must have solid knowledge in the following topics:
- Working in the Linux operating system
- Development of real-time applications in C
- Hardware-oriented software development, e.g. with memory-mapped I/O
The following skills are helpful, but can also be obtained by self-studying during the course:
- Working with the version control system Git
- Working with the documentation system Doxygen
- Reading chip documentations
- Working with MINICOM
- Code review skills
Lab 1: Hello ATMega Lab 2: RASPNet Layer 1+2 Lab 3: RASPNet Layer 3 Lab 4: Project Documentation Lab 5: Plug-Fest Lab 6: RASPNet Layer 4
- Lab 7: ATMega2RPI
- Lab 8: RASPTalk
- BCM2835 Raspberry Pi Peripheral Documentation
- Gertboard Manual v2.0
- Documentation for the ARM1176JZF-S (RPI Processor)
- ARM Developer Suite
- ATMega processor documentation
- Documentation of the ARM Interrupt Controller (AITC, MC9328MX1)
- AVR Interrupts
- Gertboard vs. ATMega Pins
Participants must hand-in a written documentation. It must contain the following sections:
- Software tools being used, experiences
- Software architecture of the own implementation
- Results of the performance analysis
- Personal experiences from the work
- Annex: URL of the source code repository, e.g. in the TUC GitLab
The grade is created from your code presentations during the lab slots, the grading of the report and the grading of your final code.