Writing an interrupt handler: Making the UART asynchronous

Описание к видео Writing an interrupt handler: Making the UART asynchronous

Every operating system needs interrupts. But actually handling interrupts isn't trivial. You need to consider races, synchronization, masking and unmasking, preserving context and performing the actual tasks.

In this video we'll be building, from scratch, the interrupt handling code for SarOs. We'll use that in order to implement outputing to the UART without blocking execution.

Patreon BBC Micro level supporters:
Yehuda T. Deutsch

Code is at: https://github.com/CompuSAR/control_cpu

Support the project on Patreon:   / compusar  
Discord server invite:   / discord  

Table of contents:
00:00 - Scope of work
03:33 - RiscV interrupt lines
04:41 - Interrupt controller
05:18 - Laying out the basics
06:20 - Setting the trap vector
08:17 - Enabling interrupts
13:10 - Configuring the interrupt controller: masking
16:37 - implementing the trap handler
20:18 - Patreon interlude
21:14 - External interrupt service routine
23:30 - UART TX buffer
26:23 - Actual TX code
30:35 - Interrupt masking
35:32 - Implementing trap_handler_entry
48:33 - Proving it works

Комментарии

Информация по комментариям в разработке