Estudo de caso sobre uso de Rust em sistemas embarcados: desenvolvimento de um device driver do sensor BMP180 para microcontroladores AVR
Autor(a) principal: | |
---|---|
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 |