Vamos escrever um driver UART
A mĂĄquina âvirtâ do QEMU possui um UART PL011, entĂŁo vamos escrever um driver para isso.
Speaker Notes
- Observe que
Uart::new
não é seguro, enquanto os outros métodos são seguros. Isso ocorre porque, desde que o chamador deUart::new
garanta que seus requisitos de segurança sejam atendidos (ou seja, que haja apenas uma instùncia do driver para um determinado UART e nada mais que faça alias do seu espaço de endereço), então é sempre seguro chamarwrite_byte
mais tarde porque podemos assumir as precondiçÔes necessĂĄrias. - PoderĂamos ter feito o contrĂĄrio (tornando
new
seguro, maswrite_byte
inseguro), mas isso seria muito menos conveniente de usar, pois todos os lugares que chamamwrite_byte
precisariam raciocinar sobre a segurança - Este Ă© um padrĂŁo comum para escrever invĂłlucros seguros de cĂłdigo inseguro: transferir o ĂŽnus da prova de correção de um grande nĂșmero de lugares para um nĂșmero menor de lugares.