Code: | L.EIC018 | Acronym: | LC |
Keywords | |
---|---|
Classification | Keyword |
OFICIAL | Informatics Engineering and Computing |
Active? | Yes |
Web Page: | http://web.fe.up.pt/~pfs/aulas/lcom2223/ |
Responsible unit: | Department of Informatics Engineering |
Course/CS Responsible: | Bachelor in Informatics and Computing Engineering |
Acronym | No. of Students | Study Plan | Curricular Years | Credits UCN | Credits ECTS | Contact hours | Total Time |
---|---|---|---|---|---|---|---|
L.EIC | 411 | Syllabus | 2 | - | 6 | 52 | 162 |
1- Introduction
I/O devices are an integral part of a computer, without which the usefulness or the ease of use of a computer would be significantly lower. The importance of I/O devices in computer-based systems has increased since the first generation of computers, and it continues up to these days with the ever increasing use of computers in embedded systems. However, programming of I/O devices using their programatic interface requires specific knowledge and techniques.
2- Specific Objectives
This course unit aims to endow students with the knowledge and the skills required to:
3- Percentual Distribution
Scientific: 30%
Tecnological: 70%
Students, who successfully complete this course unit, should understand the main models of hardware access and be able to apply them in the development of relatively large programs.
Students should have the knowledge and have acquired the competencies expected from approval in the courses:
Input/Output peripherals and their operation. Device drivers. Direct mapping in a process address space. Access to peripherals in polled mode and by interrupt. Processor interrupts in the IA-32 and ARM architectures and respective interrupt controllers. Interrupt service routines in Assembly and in C.
Study of typical personal computer and embedded systems I/O devices.
Programming in the C programming language: main differences with respect to C++ language; structured programming in C. Memory layout of a process. Function calls: mechanisms, parameter passing, storage of local variables, and return values. Event-based programming. State machines. Combined programming in C and assembly. Systematic debugging techniques based on the experimental scientific method.
Creation and use of libraries. Static linking of object code.
Use of software development tools: cc, make, ar, diff, patch, Git, and doxygen.
A "learn by doing" approach is used. In the first 10 lab classes, students carry out lab assignments about some of the most common PC peripherals or the I/O devices of an embedded systems platform. In the remaining weeks, students will develop a small integration project using several peripherals and the techniques previously studied. Students work both on the lab assignments in groups of 2 students.
Lecture classes will be used to present the concepts, taking into account their application in the lab assignments, and to discuss the details of the lab assignments and the project.
Designation | Weight (%) |
---|---|
Teste | 50,00 |
Trabalho laboratorial | 50,00 |
Total: | 100,00 |
Designation | Time (hours) |
---|---|
Estudo autónomo | 30,00 |
Frequência das aulas | 52,00 |
Trabalho laboratorial | 80,00 |
Total: | 162,00 |
In order to obtain "frequência" students must:
1) Have a minimum grade of 8 (out of 20) in at least one of the programming tests;
2) Have a minimum score of 10 (out of 20) in the project;
3) Develop and demonstrate the final integration project;
4) Fill the self-evaluation form of the final project.
5) Attend at least 75% of the scheduled classes.
0,5 PT + 0,5 * min(Proj, PP+4)
where:
PT = (PT1+PT2)/2
PT1 and PT2 are the grades of the first and of the second programming tests, respectively
Proj is the project's grade
Although the project will be done in groups of 3 or 4 students, members of the same group may have different grades depending on their contribution
For approval, students must:
Students can improve the grade of the programming tests, by taking a second-chance programming test during the exam season
To improve the project's grade, students have to develop a new project in the following year.
In extraordinary situations (such as registration of students who do not know Portuguese), classes can be taught in English.