Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR

Detalhes bibliográficos
Autor(a) principal: Muraro Grando, Marcos Alexandre
Data de Publicação: 2024
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFSC
Texto Completo: https://repositorio.ufsc.br/handle/123456789/256010
Resumo: TCC (graduação) - Universidade Federal de Santa Catarina, Campus Blumenau, Engenharia de Controle e Automação.
id UFSC_c3eec71ef18dbbdda065d9f75ec36e2d
oai_identifier_str oai:repositorio.ufsc.br:123456789/256010
network_acronym_str UFSC
network_name_str Repositório Institucional da UFSC
repository_id_str 2373
spelling Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVRRustSistemas EmbarcadosEmbedded SystemsDevice DriverArduinoTCC (graduação) - Universidade Federal de Santa Catarina, Campus Blumenau, Engenharia de Controle e Automação.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.Blumenau, SC.Moratelli, Carlos RobertoUniversidade Federal de Santa Catarina.Muraro Grando, Marcos Alexandre2024-07-12T18:05:20Z2024-07-12T18:05:20Z2024-07-03info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesis56 f.application/pdfhttps://repositorio.ufsc.br/handle/123456789/256010Open Access.info:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSC2024-07-12T18:05:21Zoai:repositorio.ufsc.br:123456789/256010Repositório InstitucionalPUBhttp://150.162.242.35/oai/requestopendoar:23732024-07-12T18:05:21Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false
dc.title.none.fl_str_mv Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
title Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
spellingShingle Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
Muraro Grando, Marcos Alexandre
Rust
Sistemas Embarcados
Embedded Systems
Device Driver
Arduino
title_short Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
title_full Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
title_fullStr Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
title_full_unstemmed Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
title_sort 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
author_facet Muraro Grando, Marcos Alexandre
author_role author
dc.contributor.none.fl_str_mv Moratelli, Carlos Roberto
Universidade Federal de Santa Catarina.
dc.contributor.author.fl_str_mv Muraro Grando, Marcos Alexandre
dc.subject.por.fl_str_mv Rust
Sistemas Embarcados
Embedded Systems
Device Driver
Arduino
topic Rust
Sistemas Embarcados
Embedded Systems
Device Driver
Arduino
description TCC (graduação) - Universidade Federal de Santa Catarina, Campus Blumenau, Engenharia de Controle e Automação.
publishDate 2024
dc.date.none.fl_str_mv 2024-07-12T18:05:20Z
2024-07-12T18:05:20Z
2024-07-03
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ufsc.br/handle/123456789/256010
url https://repositorio.ufsc.br/handle/123456789/256010
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv Open Access.
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Open Access.
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 56 f.
application/pdf
dc.publisher.none.fl_str_mv Blumenau, SC.
publisher.none.fl_str_mv Blumenau, SC.
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSC
instname:Universidade Federal de Santa Catarina (UFSC)
instacron:UFSC
instname_str Universidade Federal de Santa Catarina (UFSC)
instacron_str UFSC
institution UFSC
reponame_str Repositório Institucional da UFSC
collection Repositório Institucional da UFSC
repository.name.fl_str_mv Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)
repository.mail.fl_str_mv
_version_ 1808652367283879936