Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Прерывания

Прерывание — это запрос к процессору приостановить текущее выполнение, чтобы событие было обработано вовремя. Если запрос принят, процессор приостанавливает текущую работу, сохраняет своё состояние и выполняет функцию, которая называется обработчиком прерывания, чтобы обработать событие. Прерывания часто используются аппаратными устройствами, чтобы сообщить об изменениях электронного или физического состояния, которые требуют срочного внимания, например о нажатии кнопки.

То, что обработчики прерываний могут вызываться в любой момент, создаёт в embedded Rust сложность: нужна статически выделенная изменяемая память, на которую могут ссылаться и обработчик прерывания, и основной код, причём эта память должна быть всегда доступна.

Блоки unsafe {}

В этом коде много блоков unsafe {}. Как общее правило, unsafe не означает, что содержащийся в нём код небезопасен с точки зрения памяти. Это означает, что Rust не может дать гарантии безопасности в этом месте и что ответственность за безопасность памяти лежит на программисте. Например, вызов C-биндингов сам по себе небезопасен, поскольку Rust не может дать никаких гарантий безопасности для лежащего в основе C-кода.