Laboratório de Computadores

C, periféricos do PC, interrupções Minix e aplicações por eventos, com exemplos resolvidos e prática.

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

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%:

NF=0,4T+0,6Proj.NF=0{,}4T+0{,}6Proj.

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.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.