Search course

Use the search function to find more information about the study programmes and courses available at Chalmers. When there is a course homepage, a house symbol is shown that leads to this page.

Graduate courses

Departments' graduate courses for PhD-students.


Syllabus for

Academic year
EDA480 - Machine oriented programming
Syllabus adopted 2011-02-24 by Head of Programme (or corresponding)
Owner: TKDAT
7,5 Credits
Grading: TH - Five, Four, Three, Not passed
Education cycle: First-cycle
Major subject: Computer Science and Engineering, Information Technology

Teaching language: Swedish

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 Summer course No Sp
0104 Laboratory 3,0 c Grading: UG   3,0 c    
0204 Examination 4,5 c Grading: TH   4,5 c   05 Mar 2012 pm M,  14 Jan 2012 am V,  27 Aug 2012 pm V

In programs



Univ lektor  Roger Johansson

Course evaluation:


For single subject courses within Chalmers programmes the same eligibility requirements apply, as to the programme(s) that the course is part of.

Course specific prerequisites

Fundamentals of Digital Systems and Computers or similar course.


The purpose of this course is to be an introduction to embedded system design and programming.

Learning outcomes (after completion of the course the student should be able to)

apply machine oriented programming of embedded systems. Another goal is that the student shall be able to explain advantages and disadvantages, possibilities and limitations that are characterized by embedded systems.

1. Program development in C and assembly language
The student shall be able to program in C and assembly language as well as:
* Describe and apply modularization using functions and subroutines.
* Describe and apply parameter passing to and from functions.
* Describe and apply different methods for parameter to and from subroutines.
* Describe and use various control structures.
* Describe and use composite and simple data structures.

2. Program development techniques
The student shall independently manage the following:
* Construct, edit and translate (compile and assemble) programs.
* Describe the translation process, i.e. use of the pre-processor, program assembly, compilation and linking.
* Test, troubleshoot and correct program code using suitable tools.

3. Embedded systems from a system programmer’s point of view
The student shall independently manage the following:
* Describe and apply different principles of communication between the central processing unit and peripheral units, such as: unconditional or conditional output, “busy wait” and “polling”.   
* Construct programs for system bootstrap with interrupt handling from various types of peripheral units.
* Describe central system software methods and mechanisms such as parallel execution and process management.
* Describe and use circuits for time measurements.
* Describe and use circuits for parallel and serial communication respectively.

4. Exception handling in computer systems
The student shall independently manage the following:
* Describe and exemplify different types of exceptions.
* Construct basic systems for interrupts using digital components.
* Describe and apply different methods for software based and hardware based priority handling with multiple interrupt sources.

5. System organization
The student shall independently manage the following:
* Describe different types of address space.
* Describe different types of memory organization.
* Describe the principles for synchronous, asynchronous and multiplexed bus communication.
* Design address decoding logic for memory circuits and input output devices.


The course parts allow the student to construct gradually larger programming blocks in assembly language and C language. The results become like a”mini real-times system” for two parallel processes. The process controls a drill and a digital display.
The first part of the course will focus on assembly language programming and after that, fundamentals in C programming will be covered. Finally, mixed programming is exercised.
The drill together with traditional input output devices such as keyboards and digital displays are used together with a micro computer (68HC12). Hardware is also available as simulated devices. The equipment is used both for C- and assembly language programming.


Scheduled teaching comprises lectures, demonstrations, and supervised simulation and coding exercises; and also six supervised mandatory laboratory.
During the course, the student designs progressively bigger and bigger building blocks of software in C and assembler. The theory is acquired through lectures and demonstrations. The student designs the blocks with ”pen and paper” then carries out tests with the aid of simulators during simulation exercises. In preparation for laboratory exercises the student will finally adapt the software in order to enable hardware verification of the function.


See the course homepage.


Examination is based on a written exam and approved laboratory exercises. Based on the exam result, the grade U, 3, 4, or 5 are given.

Page manager Published: Thu 04 Feb 2021.