Використовуйте pointer::read_volatile і pointer::write_volatile.
Ніколи не тримайте посилання.
addr_of! дозволяє отримувати поля структур без створення проміжного посилання.
Непостійний доступ: операції читання або запису можуть мати побічні ефекти, тому не дозволяйте компілятору чи апаратному забезпеченню їх перевпорядковувати, дублювати чи видаляти.
Зазвичай, якщо ви пишете, а потім читаєте, напр. через змінне посилання, компілятор може припустити, що прочитане значення є таким самим, як щойно записане значення, і не турбуватися про фактичне читання пам’яті.
Деякі існуючі крейти для непостійного доступу до апаратного забезпечення містять посилання, але це нерозумно. Кожного разу, коли існує посилання, компілятор може вирішити розіменувати його.
Використовуйте макрос addr_of!, щоб отримати покажчики полів структури від покажчика на структуру.