④割り込み設定の登録

このコード部分の話

unsafe {
    hal::pac::NVIC::unmask(hal::pac::Interrupt::IO_IRQ_BANK0);
}

unsafe

rustの借用等の安全な文法を無視して、コードを書くことを明示しています。

あまり利用しないようが良いのですが、NVICへの登録には必要になります。

NVIC::unmask

IO_IRQ_BANK0とは、IO割り込みのBANK0を意味しており、

hal::pac::NVIC::unmask(hal::pac::Interrupt::IO_IRQ_BANK0);

では、NVICにIO_IRQ_BANK0を登録することを意味しています。

NVICとは

NVIC(Nested Vectored Interrupt Controller)は、主にARM Cortex-Mシリーズのマイクロコントローラに搭載されている割り込みコントローラです。NVICは、システム内で発生する複数の割り込みを効率的に管理し、優先順位に基づいて処理を行います。