Atividade 01¶
1. Por que os LEDSs são Active Low (acendem quando se coloca 0 na saída)?¶
Na eletrônica dos microcontroladores, os pinos de saída geralmente possuem uma capacidade consideravelmente maior de drenar corrente para o terra (current sink) do que de fornecer corrente a partir da fonte de alimentação (current source).
Portanto ligar os LEDs na configuração Active Low reduz o estresse elétrico no chip e previne danos físicos às portas do microcontrolador. Além disso, essa configuração garante estabilidade, evitando que o LED pisque ou acenda acidentalmente devido a ruídos no barramento durante o processo de inicialização do sistema, momento em que os pinos frequentemente assumem um estado de alta impedância.
2. Quais funções você usou para acender e apagar os LEDs?¶
Para configuração e verificação de como os LEDs devem se comportar foram utilizadas as seguintes funções:
gpio_pin_configure_dt(): Configura os pinos dos LEDs como saída e define o estado padrão.gpio_is_ready_dt(): Utilizada como etapa de validação de segurança para confirmar se o periférico mapeado está pronto para receber comandos do sistema.
Para acionamento dos LEDs foram utilizadas as seguintes funções:
gpio_pin_toggle_dt(): Inverte o nível lógico no pino.gpio_pin_set_dt(): Utilizada para acender e apagar os LEDs de fato, alterando o estado lógico do pino (o valor passado como parâmetro representa o estado lógico desejado para o pino, sendo interpretado conforme a configuração do hardware, por exemplo, Active Low ou Active High).
3. Explique o que é o Device Tree¶
O DeviceTree é uma estrutura de dados que descreve o hardware da plataforma de forma declarativa. Em vez de utilizar endereços ou identificadores fixos no código, ele permite referenciar periféricos por meio de aliases e propriedades, com isso um pino com uma função especifica, por exemplo o LED, pode funcionar em diferentes plataformas com arranjos dos pinos diferentes. E é capaz de descrever propriedades dos pinos, por exemplo a polaridade do LED já que nessa placa ele é ativo em nível lógico baixo. Além de ser capaz de fazer verificações de segurança e portabilidade em tempo de compilação.
4. Explique as abstrações feitas pelo Sistema Operacional¶
Sistemas operacionais de tempo real como o Zephyr constroem camadas de abstração de hardware para isolar o desenvolvedor da manipulação direta de registradores e mapeamento da memória por meio do linker.