Laboratório de Computadores
C, periféricos do PC, interrupções Minix e aplicações por eventos, com exemplos resolvidos e prática.
Em LC, um programa em C configura periféricos, lê registos e reage a eventos no Minix, dentro de uma máquina virtual VirtualBox. O programa pede operações privilegiadas ao kernel. Os dispositivos emulados permitem estudar bytes, interrupções e memória de vídeo antes de os reunir numa aplicação por eventos.
Percurso de estudo
Começa por C estruturado e ferramentas e Memória, funções e objetos em C. Estes dois capítulos dão-te os apontadores, a duração dos objetos, as conversões e a compilação separada de que as APIs dos dispositivos precisam.
Falar com o hardware distingue portas de I/O de memória mapeada e ensina máscaras e polling. Interrupções explica PIC, IRQ, vetor e notificação Minix, sem os confundir. O Relógio de tempo real vem a seguir, porque o Lab 1 de 2026 usa-o para praticar registos e polling antes das interrupções do próprio RTC.
Segue Temporizador, Teclado, Rato e Placa de vídeo. Em cada um, acompanha uma configuração e uma interpretação de dados até ao resultado. Eventos, estado e debugging junta depois esses componentes numa aplicação completa.
A Porta série e UART e os Protocolos de comunicação fecham o percurso com a comunicação entre máquinas. Em 2025/26 a série é matéria extra do projeto, por isso a integração básica não depende dela. Os exercícios no fim das páginas são originais e treinam contas, registos, sequências de bytes, estados e diagnóstico. A Cheat sheet é uma folha de consulta para rever depois de estudar as explicações.
Como praticar
Antes de executar uma sequência de I/O, escreve a porta, a condição de estado e o efeito esperado de cada passo. Num byte de configuração, identifica os campos que podem mudar e os que devem ficar intactos. Num parser, segue o estado depois de cada byte, incluindo erros e entradas incompletas.
Os exemplos de C portátil podem correr fora do Minix. As funções que usam LCF, kernel calls ou BIOS precisam da imagem e das permissões do laboratório; a página indica os seus pressupostos e efeito esperado. As simulações modelam apenas as relações descritas, não executam I/O real.
Avaliação de 2025/26
A ficha de 2025/26 define avaliação distribuída sem exame final, com teste teórico de 40% e projeto de 60%:
Exige pelo menos 8,0 valores no teste. O projeto realiza-se em grupos de quatro e pode ter classificações individuais diferentes. A frequência exige não exceder 25% de faltas às aulas previstas. A melhoria da componente teórica pode fazer-se no teste de recurso.
A ficha permite usar notas de projeto superiores a 10 obtidas em 2023/24 ou 2024/25, mediante sinalização ao regente no formulário próprio, com dispensa das aulas práticas nesses casos. Não permite reutilizar notas de testes anteriores. Estas condições pertencem a essa edição. Confirma as regras que se aplicam à tua inscrição na ficha corrente de 2026/27 e no Moodle.
Materiais e bibliografia
A base de estudo é o Moodle de LC de 2025/26, com materiais docentes sobre C, Minix, timer, interrupções, teclado, rato, eventos, vídeo, XPM, sprites, RTC, UART e protocolos. Inclui o guião de introdução a C e a aula de construção de aplicações. Várias apresentações reutilizadas têm datas de 2024 ou 2025 e exemplos de laboratórios de anos anteriores; esses exemplos explicam mecanismos, não fixam entregas nem regras da edição atual.
O arquivo do Accio contém uma cópia completa dos guiões LCOM 2026, com carimbo de impressão 09/06/26. Essa identificação é compatível com 2025/26, sem a transformar em material de 2026/27. Os testes adquiridos têm datas explícitas de 4 de abril, 29 de abril e 27 de junho de 2025; os exercícios desta revisão adaptam objetivos desses documentos com dados próprios, sem prever uma prova futura. O dispositivo L3223 vem do PP1 de 2020 e é fictício: serve para praticar a interpretação de um contrato diferente.
Os vídeos de preparação e Weekly tips estão no mesmo Moodle, junto dos materiais a que se referem. Usa-os para acompanhar operações e ferramentas do laboratório, conservando os PDFs e o guião da tua edição como referência para parâmetros e requisitos. O acesso pode exigir autenticação da U.Porto.
A ficha completa de 2025/26 no SIGARRA indica:
- Elecia White, Making Embedded Systems: Design Patterns for Great Software, O’Reilly, 2011. Bibliografia obrigatória.
- Derek Molloy, Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux, Wiley, 2016. Bibliografia complementar.
- Remzi e Andrea Arpaci-Dusseau, Operating Systems: Three Easy Pieces, capítulos 1, 2, 35 e 36. Bibliografia complementar.
Para conferir as regras de C, o rascunho público C11 N1570 detalha duração dos objetos, conversões e alocação. É uma referência técnica de 2011, não um guião de LC.
Para aprofundar a interface de cada dispositivo, consulta as especificações i8254, i8259, VBE e UART indicadas nos materiais docentes. A página pública de LC conserva materiais de uma edição anterior.