Search programme

​Use the search function to search amongst programmes at Chalmers. The programme overview and the programme syllabus relating to your studies are generally from the academic year you began your studies.


Syllabus for

Academic year
EDA485 - Machine oriented programming
Owner: TKAUT
5,0 Credits (ECTS 7,5)
Grading: TH - Five, Four, Three, Not passed
Level: A

Teaching language: Swedish

Course module   Credit distribution   Examination dates
Sp1 Sp2 Sp3 Sp4 No Sp
0104 Examination 3,0 c Grading: TH   3,0 c   12 Mar 2007 pm V,  10 Apr 2007 am V
2) 13 Apr 2007 2.00 pm Sven Hultins gata 6
30 Aug 2007 am M
2) Responsible: Programansv D o Z Decision date: 2007-02-06
0204 Laboratory 2,0 c Grading: UG   2,0 c    

In programs



Universitetslektor  Rolf Snedsböl


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.


There are scenarios where computer systems need to be programmed in various languages to interact directly with machine hardware. This is especially true for embedded systems monitoring and controlling other resources in a technical system. A thorough understanding of computer systems and their programming is important for students in various engineering programs.
This course builds on the course "Fundamentals of Digital Systems and Computers" and covers further essential underpinnings of computer systems and concepts and their use in applications. Additionally, it introduces imperative programming in C and covers machine oriented programming both in C and assembly language.
It provides a basis for subsequent studies in Computer Science and Engineering or other closely related areas where various digital systems are applied. This course also demonstrates how fundamental knowledge in computer systems and their machine oriented programming can be of value to engineers in general.


After completing the course students shall have the ability to start from a problem description and analyze, describe and realize
- simple computer systems, consisting of a microprocessor, memory and I/O-interfaces, where the I/O is programmed, interrupt driven or hardware controlled
- simple programs for applications similar to those used in technical systems today and which include routines written in C and assembly language
Additionally, students will be able to explain certain central concepts and functionalities for system software such as handling of processes, shared objects and mutual exclusion.


a) Computer Engineering topics; using a commercial microcontroller as a teaching aid the course covers
- programming model and interpretation algorithm
- clocking and bus timing
- memory- and I/O-modules: their organisation and bus connections
- interrupt systems: its properties, usage and handling in programs
- bus handling
- I/O-methods: programmed, interrupt-driven and hardware controlled (DMA) I/Os
- I/O-interfaces: their organisation and usage; parallel and serial interfaces

b) Introduction to imperative programming
- simple data types, variables, expressions and assignment
- imperative control structures (sequence, iteration and selection) and their representation in C
- procedures and functions, parameter passing
- arrays, strings, structs and pointers
- simple input and output
- compiling, linking, executing and debugging programs

a+b) From the two parts the course covers
- machine oriented programming, in C and/or assembly language, for handling programmed and interrupt-driven I/Os
- programming partly in C and assembly language of a microprocessor-based system for monitoring and control purposes

and introduces
- the concept of a process, and how partitioning into processes makes it possible to break down a complex system into smaller parts that are easy to understand and implement
- the concept of a run-time-system and its distribution of microprocessor time between several processes


First the two areas a) and b) are covered in parallel. After the introduction to imperative programming the knowledge from b) is integrated with a).

The students are working with well-defined topics according to a time schedule. An introductory lecture is given for each topic covering its essentials. Thereafter, the students work on their own and in groups. Some training is provided with the assistance of instructors. At the appropriate time, students will build and test their designs in laboratory exercises.

The introduction to imperative programming includes compulsory programming exercises that will be evaluated. They can be done in the environment of choice.

The microcontroller 68HC12, often used in embedded systems, is used for programming exercises and further studies. Realistic examples are employed in exercises to illustrate concepts. 68HC12 is available both in hardware and as a simulator. It will be programmed both in C and in assembly language.

This course includes a series of seminars given by engineers mainly from industry. They will provide insights to how engineers benefits from knowledge in the field of machine oriented programming.


Larsson & Arebrink: Grundläggande digital- och datorteknik, del 2 - Datorteknik.
Bilting & Skansholm: Vägen till C, 3:e uppl. Studentlitteratur 2000


Written exam and passed laboratory and programming execises.

Page manager Published: Thu 03 Nov 2022.