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

Acceso a la memoria volátil para MMIO

  • Se puede usar pointer::read_volatile y pointer::write_volatile.
  • Nunca retengas una referencia.
  • addr_of! permite obtener campos de estructuras sin crear una referencia intermedia.
  • Acceso volátil: las operaciones de lectura o escritura pueden tener efectos secundarios, por lo que se debe evitar que el compilador o el hardware las reordene, duplique u omita.
    • Normalmente, si escribes y luego lees (por ejemplo, a través de una referencia mutable), el compilador puede suponer que el valor leído es el mismo que el que se acaba de escribir, sin molestarse si quiera en leer realmente la memoria.
  • Algunos crates para el acceso volátil al hardware sí mantienen referencias, aunque no es seguro. Siempre que exista una referencia, el compilador puede desreferenciarla.
  • Utiliza la macro addr_of! para obtener punteros de campos de estructuras a partir de un puntero en la estructura.