Embedded Systems Project
This page gives information on the project done in the course "Programming for embedded systems."
Development hardware
The common hardware provided for this project is:
- STM3210C-Eval development boards
- ST-Link in-circuit debugger and programmer
For working with the boards and on the projects, the following lab slots have been reserved (room 1312D):
Date | Time | Place |
---|---|---|
March 26 | 13:00 - 15:00 | 1312D |
March 27 | 15:00 - 17:00 | 1312D |
April 9 | 10:00 - 12:00 | 1312D |
April 11 | 15:00 - 17:00 | 1312D |
April 16 | 13:00 - 15:00 | 1312D |
April 19 | 13:00 - 15:00 | 1312D |
April 23 | 13:00 - 15:00 | 1312D |
April 25 | 15:00 - 17:00 | 1312D |
April 29 | 13:00 - 15:00 | 1312D |
May 2 | 15:00 - 17:00 | 1312D |
May 6 | 15:00 - 17:00 | 1312D |
May 7 | 13:00 - 15:00 | 1312D |
May 14 | 13:00 - 15:00 | 1312D |
May 16 | 15:00 - 17:00 | 1312D |
May 21 | 13:00 - 15:00 | 1312D |
May 23 | 15:00 - 17:00 | 1312D |
Alternatively, we offer the individual groups to take one board + programmer kit home for the duration of the project, to be able to work with the hardware whenever you wish to; in this case, you will have to sign a form stating that you are responsible for the hardware and have to provide reasonable compensation in case of loss or damage. Send an email to Philipp Ruemmer or Kai Lampka in case you are interested in this.
Documentation
- Reference manual for the STM micro-controller
- Programming manual for the STM micro-controller
- Description how to properly connect the analogue input ports of the boards to the headphone output of a music player or computer (provided by Amir Motevakel)
- Page with drivers (e.g., Ethernet), documentation, and code examples for the STM32F107 controller (used on the boards)
Development with uVision
We provide a demonstration project (project skeleton) to simplify starting with the software development. Compilation has been tested using uVision 4.20, but should (most likely) also work with uVision 4.14. The project contains
- required initialisation code
- drivers to use LCD/LEDs, as well as the touch screen and further peripherals present on the board
- the FreeRTOS operating system.
Altogether, the provided framework closely corresponds to the environment that you have used in the assignments and the lab.
To use additional functionality or peripherals of the MCU/board, you might have to add further firmware sources to the project (provided in the folder Firmware/src). It can be necessary to add the #include "assert.h" to some of those sources, in case the compiler complains that the functions "assert" or "assert_param" are not defined.
NB: Simulation of the STM3210C-Eval board currently does not seem to work with uVision; compilation and execution of software on the actual development board does.
Further code examples
- How to do PWM with the development board (the provided project mostly coincides with the skeleton above, but the ledTask now sets up PWM on one of the pins)