TI2720-C Embedded Software

weedyhospitalElectronics - Devices

Nov 25, 2013 (4 years and 7 months ago)


C Embedded Software

Stefan Dulman

13 November 2012


The IN2305
B course offers an introduction to real
time programming in an
embedded system context. The student acquires the principles of real
programming in C (interrupts,
multitasking) through a simple Real
Operating System (RTOS). The course looks at the principles of an RTOS, its
operation, and how real
time applications may be programmed using an RTOS.
The lecture will be accompanied by a short lab session of three
days in
which students will program a real
time engine control system on a
microcontroller platform that controls the speed of the engine (simulation of a
cruise control system). The platform to be used is a soft core (X32) implemented
on an FPGA de
monstration board that connects to the setup of the electrical

The learning objectives for this course can be summarized as follows:

At the end of this course, the student should know how to employ the
principles of real
time programming, on top
of RTOSs for embedded
systems. In order to achieve this, the student must be able to illustrate the
characteristics of embedded
systems programming, to formulate the
principles of real

time programming and to explain the mechanisms
behind RTOSs.

The secon
dary goal of this course is to provide the theoretical and the
experimental training, allowing the student to differentiate the principles
of good embedded systems design and quantify the estimated time to
achieving an embedded
software project.

At the end

of this course, the student should be able to use the
development environment and tool chain needed for programming the
soft core (X32) of the FPGA board used in the lab.


The full information on the timetable can be obtained at:
s.tudelft.nl/ (contains also the latest updates). In short, the
organization of this course is as follows: three weeks for lectures (2 lectures each
week), one free week, three weeks for lab sessions (two lab sessions each week),
one free week and then the

exam. More precisely:

Week 2.1


Week 2.2


Week 2.3


Week 2.4


Week 2.5


Week 2.6


Week 10



The lab session comprises t

days spanning three weeks (with time slots
available on
and Wednesdays
, depending on which half
day you have
been assigned to). The

lab sessions are compulsory (including presence on t

days), and it must be passed in order to pass the entire module IN2305
the lab session only comprises

s, it is essential that you
prepare the work at home (e.g., use the X32 simulator, or the DOS version of
uC/OS that comes with the book). Students who have not prepared their lab
sessions sufficiently, or arrive at the labs too late, will not be admitted t
o the lab
session, meaning that they will fail the entire module. Attendance of the labs is
compulsory for the t

days. Inevitably, absence leads to failure of the lab
and, consequently, failure of the module.

The lab sessions are carried out in gro
ups of two students per experimental
setup. Apart from registering with TAS, you will have to register on a lab sessions
list that will be made available in the first lecture. If you do not have a partner for
cooperation already, you can register as a sing
le person.

You will be assigned a group through the student assistant. The assignment of
students to time slots may be changed depending on availability of lab resources.

All the details for this course (lab assignments, example code, lecture notes,
r communications, etc.) are made available on the blackboard website.


The final grade will be calculated based on the lab sessions (finished in
December) and the exam (in January). Students who have not (yet) done the labs
or the exam will not rec
eive a final grade.

The final grade of the course comes
from the lecture (test/exam) and from the lab sessions. You'll get two grades,
one from the lecture and one from the lab sessions (called c and p, respectively).
The lecture will be tested through a
ultiple choice
questions exam. The lab
sessions will be tested in terms of a grade "A", "B", and "C", that counts for "10",
"8" and "6". A failed lab session does not exist. If there is no grade A, B, or C for
the lab sessions, there is no final grade of t
he course. The final grade, called e,
only becomes valid if the lab sessions were performed successfully. The final
grade will be calculated through the following formula:

e = 0.75c + 0.25p

Attention: failing completing the lab means failing the course!
Failing the written
exam means failing the course! The formula above applies only when both the
lab and the written exam were passed.


The two teaching assistants helping with the lab assignments are:

Chiel de Roest (


Harmjan Treep

You can contact me at: s.o.dulman@tudelft.nl.