Title: | Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR |
Author: | Muraro Grando, Marcos Alexandre |
Abstract: |
Este trabalho desenvolve um device driver do sensor BMP180 em Rust para microcontroladores AVR, neste caso um kit de desenvolvimento Arduino Mega 2560. Não havendo um device driver já existente, usa-se noções do análogo em linguagem C para fins de desenvolvimento e comparação. Utiliza-se critérios de comparação qualitativos, como qualidade do compilador, e quantitavos, como tamanho binário do firmware, tempo de compilação e tempo de execução. Para a escrita do driver em Rust e sua utilização em placas AVR, é necessária uma camada de abstração de hardware específica para isso, havendo apenas uma opção pública que contém implementações do protocolo I2C, chamada AVR HAL. Foi concluído que o Rust pode ser capaz de entregar tamanhos binários significativamente menores a custo de uso de memória RAM. Para futuros trabalhos, recomendar-se-ia realizar comparações similares com softwares mais complexos, que já sejam conhecidos em C e que tenham notáveis problemas de segurança, com a finalidade de saber se o Rust pode entregar os mesmos benefícios aqui descritos, ao mesmo tempo que aumenta a segurança do código. This work develops a device driver for the BMP180 sensor in Rust for AVR microcontrollers, in this case, an Arduino Mega 2560 development kit. In the absence of an existing device driver, notions from the analogous driver in the C language are used for development and comparison purposes. Both qualitative comparison criteria, such as compiler quality, and quantitative criteria, such as binary firmware size, compilation time, and execution time, are used. For writing the driver in Rust and its use on AVR boards, a specific hardware abstraction layer is required, with only one public option available which contains I2C protocol implementataions, called AVR HAL. It was concluded that Rust can deliver significantly smaller binary sizes at the cost of RAM usage. For future work, it is recommended to perform similar comparisons with more complex software that is already known in C and has notable security issues, with the aim of determining whether Rust can provide the same benefits described here while increasing code security. |
Description: | TCC (graduação) - Universidade Federal de Santa Catarina, Campus Blumenau, Engenharia de Controle e Automação. |
URI: | https://repositorio.ufsc.br/handle/123456789/256010 |
Date: | 2024-07-03 |
Files | Size | Format | View |
---|---|---|---|
TCC_Rust_Marcos_Final_Assinado.pdf | 1011.Kb |
View/ |