TDT4258 - Low-Level Programming


Examination arrangement

Examination arrangement: Portfolio assessment
Grade: Passed/Failed

Evaluation form Weighting Duration Examination aids Grade deviation
Home examination 50/100 3 hours
work 50/100

Course content

Embedded system fundamentals, properties, and design flow.

Embedded system hardware design: CPU, caches, memory, buses, input/output.

Embedded system software design: low level programming in C and ARM assembly, resource constrained programming techniques, and tools for embedded programming.

Introduction to compilation and code optimizations, operating system, embedded system design using ARM mbed platform, and power management in embedded systems.

Learning outcome

- The student should have a thorough understanding of hardware and software components of an embedded system.

- The student should be familiar with the different layers of computation stack and how they interact with each other.

- The student should have a detailed understanding of software development for embedded systems including bare-metal C programming and assembly programming.

- The student should have a good understanding of device driver development for embedded systems running uCLinux.

- The student should be able to program embedded devices at different abstraction levels such as assembly programming, bare-metal C programming, and programming with operating system support.

General competence:
- The student should master programming close to hardware and be able to use this knowledge in projects at all abstraction levels

Learning methods and activities

Auditorium lectures, self-study. Voluntary warm-up laboratory exercise. Three laboratory exercises that count towards the final grade. In-class discussion.

Further on evaluation

Portfolio assessment is the basis for the grade in the course. The portfolio includes a written exam (50%) and exercises (50%). The results for the parts are given in %-scores, while the entire portfolio is assigned a letter grade. If there is a re-sit examination, the examination form may change from written to oral.
In the case that the student receives an F/Fail as a final grade after both ordinary and re-sit exam, then the student must retake the course in its entirety. Submitted work that counts towards the final grade will also have to be retaken.

Course materials

Announced at the start of the semester.

More on the course



Version: 1
Credits:  7.5 SP
Study level: Third-year courses, level III


Term no.: 1
Teaching semester:  AUTUMN 2020

No.of lecture hours: 2
Lab hours: 2
No.of specialization hours: 8

Language of instruction: English

Location: Trondheim

Subject area(s)
  • Technological subjects
Contact information
Course coordinator:

Department with academic responsibility
Department of Computer Science



Examination arrangement: Portfolio assessment

Term Status code Evaluation form Weighting Examination aids Date Time Digital exam Room *
Autumn ORD work 50/100
Room Building Number of candidates
Summer UTS work 50/100
Room Building Number of candidates
Autumn ORD Home examination (1) 50/100

Release 2020-12-14

Submission 2020-12-14

Release 09:00

Submission 12:00

Room Building Number of candidates
Summer UTS Home examination 50/100 INSPERA
Room Building Number of candidates
  • * The location (room) for a written examination is published 3 days before examination date. If more than one room is listed, you will find your room at Studentweb.
  • 1) Merk at eksamensform er endret som et smittevernstiltak i den pågående koronasituasjonen. Please note that the exam form has changed as a preventive measure in the ongoing corona situation.

For more information regarding registration for examination and examination procedures, see "Innsida - Exams"

More on examinations at NTNU