You are logged in as: Anonymous (Author)
Roles: [Gäst]
Readers: [All]
Authors: [All]
Login | Logout

-> List exercises
-> Solutions by exercise

-> New solution
-> Course Evaluation

-> New registration
-> List existing

Programming Embedded Systems 2015

Course Objectives
After completing the course the student will know
* how to build (program...) small embedded systems
* program in C on low level
* program structures for small embedded systems
* interfacing to sensors, actuators
* learn some typical hardware / software:
- Microchip PIC, Embedded Linux, some mobile OS
* start up hardware, booting
* use error detection methods
* how to take limited resources into consideration.
( * module architecture in Linux. - if time )
* basic uP Interfacing bus technology: Serial (RS-232, RS-485), CAN

Jerker Björkqvist,, room B4045
Åke Syysloiste,, B5035

Programming Embedded Systems I & II,

Booting: Booting.pdfBooting_2.pdf
Linux kernel module programming: lkm.pdf
Linux kernel module programming:

7.1.2014 - 4.3.2014

  • Lectures Tuesdays 13-15 hours, ICT House B3039 Starting 20.1.2015
  • Exercises (5) - According to separate schedule
  • Small Project in Group
  • Optional Exam (for grading 0-5)

In order to pass the course, the following requirements must be fulfilled
  • Accepted exercises
  • Project work
  • Learning Journal written

The course is graded according to 2 options:

A. Passed / failed. no exam, but all exercises and final project performed. A learning journal is required !
B. Graded 0-5, requires a exam (additional to all exercises and final project)

In case B, either of the 2 following exams should be attended:

Exam 1:
Exam 2:

Notes for students for UTU:
Please read the following :

Learning Journal
During the course, you should keep a learning journal. The learning journal should include what was done in the course, i.e.
* lectures (main points / what did I learn? / what was new? / did I agree?)
* exercises (the lab reports from the labs made)
* final project (report)
* feedback


20.1.2015 13-15Introduction / Hellow embedded world
27.1.2015 13-15
3.2.2015 13-15Structure of code / real-time / Simple embedded OS
10.2.2015 13-15Serial programming / Flexible scheduler / Analog IO using ADC / PWM
17.2.2015 13-15Co-operative task scheduling / watchdog timers
24.2.2015 13-15Project vision presentations Shared clock scheduling
3.3.2015 13-15Can-bus / booting
28.4.2015 9.15 -PRESENTATION OF PROJECTS in lab B3035

Excercises start mon 26.1.2015, in room B3035
The following groups were assigned for the exercises:
  • Mondays 8.30-12.30
  • Mondays 12.30-16.30
  • Fridays 11.30-16

1. Super loopIntroduction to Microchip / Modtronix
Introduction to environment
Mon 26.1 8.30
Mon 26.1 12.30
Fri 31.1 11.30
2. Task based software architectureCreate a task-based mini OS
Defining tasks / O-O like code
Programmable timers
Mon 2.2 8.30
Mon 2.2 12.30
Fri 6.2 11.30
3. I/O and schedulingInterrupt based scheduling
Reading switches
Low power operation
Mon 9.2 8.30
Mon 9.2 12.30
Fri 13.2 11.30
4. Reading the temperatureUsing AD-converter, interfacing to external NTC, interrupt base scheduling of multiple tasksMon 16.2 8.30
Mon 16.2 12.30
Fri 20.2 11.30
5. TI TivaC / ADC
Compiling and booting
Texas Instruments TivaC programming / accelerometer / ADC
Cross compiling
Mon 23.2 8.30
Mon 23.2 12.30
Fri 27.2 11.30
6. FreeRTOS on
Raspberry PI
Mon 2.3 8.30
Mon 2.3 12.30
Fri 6.3 11.30

Each exercise whould be documented and eletronically submitted on the web address
Exercises are done in the ESLab on 3rd floor (B3035).
Exercises will be performed mainly on your own in a small group, but each exercise will be started up by a short introduction and there will be a lecturer (Åke / Jerker) present in the lab.

Do a small scale project in groups of 2-4 persons. You can yourself choose the topic, but it has to be accepted by the lecturer. The environments provided by the lab: (but you can also suggest your own environment).
The projects are presented (in a seminar, orally)
A. Before the project start: A short introduction to the project
B. After the project (the results)

Example of projects
Modtronix / MicrochipInternet based home surveillance
Internet radio
AirstationTemperature display
DreamboxOwn software module, displaying temperature or weather
TI watchLear how to to use a small wrist computer / sensors
Raspberry PiThe sky is the limit....
TivaC development platformEmbedded solution
Beagle bordEmbedded solution

Equipment for projects:
There are some new equipment: presence sensor, IR transmitter/receiver attachable to SBC65EC, 3-button version of daughtercard.
Please read the this document for more information:

Exercises / evaluation

Code: 453502.0
Name ExercisesProjectLJExamSTURE
Nguyen QuangXXXXXXXX28.5.2015
Amini-Alaoui MohamedXXXXXXXX4.6.2015
Mounir YassineXXXXXXXX4.6.215
Asfar SevilXXXXXXXX18.6.2015
Asplund TobiasXXXXXXXX18.6.2015
Baafi KofiXXXXXXXX9.6.2015
Basnet RupeshXXXXXXXX18.6.2015
Blomqvist TorstenXXXXXXXX9.6.2015
Bogouslavsky VitalyXXXXXXX
Bondarenko ElenaXXXXXXXX9.6.2015
Deznabi SinaXXXXXXXX9.6.2015
Gallen AlexanderX
Gao YuanXXXXXXXX9.6.2015
Ghalavand MohammadjavadXXXXXXXX9.6.2015
Goodarzi MehrjooXXXXXXXX9.6.2015
Le KImXXXXXXXX9.6.2015
Linden MikaelXXXXXXXX9.6.2015
Ma YifanX
Mudiyanselage LahiruXXX
Nyberg SebastianXXXXXXXX9.6.2015
Österholm BenjaminXXXXXXXX9.6.2015
Parsaiyan HussainXXXXXXXX9.6.2015
Payvar SamanXXXXXXXX9.6.2015
Peedikakkal VinodXXXXXXXX9.6.2015
Ranasinghe AnurdhaXXXXXXXX9.6.2015
Rasnayake LahiruXXXXXXXX9.6.2015
Riski Aki
Sonck MarkoXXXXXXXX18.6.2015
Suleymanov IgorXXXXXXXX10.6.2015
Wessman MichaelXXXXXXXX9.6.2015
Yadav AmanXXXXXXXX27.8.2015
Niklas Simons34445XXXXXXXX6.9.2016

List of projects

Research capability test
Kandidatseminarium 2023
Kandidatseminarium 2022
Kandidatseminarium 2020
Kandidatseminarium 2021
Kandidatseminarium 2019
Operativsystem 2018 (period 3)
Analytics for Industrial Internet
Kandidatseminarium 2018
Operativsystem 2017 (period 3)
Programming Embedded Systems 2018
Programming Embedded Systems 2017 (fall)
ASP Labs 2017
Kandidatseminarium 2017
Programmering i C/C++ 2016
Programming Embedded Systems 2017
ASP Labs 2015
Kandidatseminarium 2016
Operativsystem 2015/2016 (period 2)
Programming Embedded Systems 2016
Programming Embedded Systems 2015
Operativsystem 2014/2015 (period 2)
Programmering i C/C++ 2015
Kandidatseminarium 2015
Programmering i C/C++ läsår 2014-2015
Datorteknik hösten 2015
Obligatorisk praktik
Accenture Road Show
Digital Television Techniques 2015 / Wireless communication
Programmering i C/C++ läsår 2013-2014
ASP Labs 2011
Digital Television Techniques 2014 / Wireless communication
Programming Embedded Systems 2014
Operativsystem 2013/2014 (period 2)
Kandidatseminarium 2014
Kandidatseminarium 2014
JOO: ÅA <--> UTU course exhange
ASP Labs 2013
Digital Television Techniques 2013
Programming Embedded Systems 2013
Operativsystem 2012/2013 (period 2)
Programmering i C/C++ läsår 2012-2013
Kandidatseminarium 2013
Digital Television Techniques 2012
Programmering i C/C++ läsår 2011-2012
Operativsystem 2011/2012 (period 2)
Programming Embedded Systems 2012
Kandidatseminarium 2012
Digital Television Techniques (5 cp) Period IV / 2010
Programming Embedded Systems 2010
C++ järjestelmäohjelmointi 2011
Programming Embedded Systems 2011
Kandidatseminarium 2011
Operativsystem 2010/2011 (period 2)
Programmering i C/C++ läsår 2010-2011
Räkneövningar på nätet
Kandidatseminarium 2010
Huvudämnesinfo 2010
Tent 11.12.2009 / Resultat
Programmering i C/C++ läsår 2009-2010
Excercises Digital Television Techniques 2008
Programmering i C/C++ läsår 2007-2008
Praktikum i inbyggda datorsystem