Course - Low-Level Programming - TDT4258
Low-Level Programming
Choose study yearAbout
About the course
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, programming techniques for resource constrained systems, and modern tools for embedded programming.
Introduction to compilation and code optimizations, operating systems, and improved sustainability through energy efficiency at different levels of the compute stack.
Learning outcome
Knowledge:
- 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 the computation stack and how they interact with each other. This includes how hardware, software and application complexity affects the energy efficiency of a system.
- The student should have a detailed understanding of software development for embedded systems in C with or without an operating system, and assembly programming. The student should be introduced to possibilities and limitations of generative AI systems for programming.
Skills:
- 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.
- The student should get some experience from using generative AI for programming and testing, and be able to reflect on its possibilities and limitations.
General competence:
- The student should master programming close to hardware at different levels and in various contexts.
Learning methods and activities
Auditorium lectures, self-study, laboratory exercises, and in-class discussions.
The use of generative AI in connection with the lab exercises will be allowed to the extent it follows the current recommendations and rules of NTNU, and the requirements specified in the lab texts. It will not be allowed during the exam.
Compulsory assignments
- Mandatory work
Further on evaluation
The course contains a set of compulsory activities (lab exercises). The student can collect a fixed number of points in each activity and needs to collect a certain number of points in total to be allowed to take the exam. The list of activities will be announced at the start of the semester.
If there is a re-sit examination the examination form may change from written to oral.
The use of generative AI will not be allowed in a written or oral exam.
Recommended previous knowledge
TDT4160 Computers and Digital Design, or equivalent.
Course materials
Announced at the start of the semester.
Subject areas
- Technological subjects