Desenvolvimento dirigido a modelo para Bootloader de microcontrolador
Resumo
Os sistemas embarcados são utilizados em diversas áreas críticas e são, na maioria, baseados em microcontroladores. Por isso, é importante compreender a utilização de ferramentas que atendam aos requisitos no desenvolvimento de código para esses sistemas. Este trabalho traz uma abordagem de desenvolvimento orientada por modelo para o bootloader do microcontrolador ATmega328P, para demonstrar a aplicabilidade do uso de ferramentas automatizadas de geração de código. Buscou-se utilizar um código-fonte cujos componentes possam ser reaproveitados por outras aplicações. Um modelo UML foi gerado no software Papyrus, baseado no código-fonte fornecido para o Arduino Duemilanove, foi aprimorado até atingir o desacoplamento desejado, então os componentes foram utilizados em uma aplicação desenvolvida para demonstrar sua usabilidade. Por fim, os códigos gerados foram submetidos à análise estática e aprimorados conforme apresentam os resultados.
Referências
(2015). Atmega328p datasheet. Rev.: 7810D–AVR–01/15.
(2021). Cppcheck manual. Ver. 2.5.
Arduino (2018). From Arduino to a microcontroller on a breadboard. Disponível em: [link]. Acessado em 10 jun. 2020.
Beningo, J. (2015). Bootloader design for microcontrollers in embedded systems. Embedded Software Design Techniques.
Eclipse (2021). Papyrus software designer. Disponível em: [link]. Acessado em 20 ago. 2021.
Flawfinder (2017). Flawfinder. Disponível em: [link]. Acessado em 25 ago. 2021.
Kleppe, A., Warmer, J., and Bast, W. (2003). MDA Explained. Addison-Wesley Professional, Boston, MA, 1ª edição.
Mischie, S. and Pazsitka, R. (2019). Designing an MSP430 bootloader. In Proceedings of the 2019 INTERNATIONAL CONFERENCE ON APPLIED ELECTRONICS (AE). IEEE.
Network, E. N. (2021). Microcontroller market revenue to cross $20 billion by 2027: Global market insights. Electronics B2B. Disponível em: [link]. Acessado em 18 jul. 2020.
Papyrus (2020). Papyrus. Disponível em: [link]. Acessado em 10 ago. 2021.
Reinbacher, T., Brauer, J., Horauer, M., and Schlicht, B. (2009). Refining assembly code static analysis for the Intel MCS-51 microcontroller. In Proceedings of the 2009 IEEE INTERNATIONAL SYMPOSIUM ON INDUSTRIAL EMBEDDED SYSTEMS.
Rumpe, B. (2017). Agile Modeling with UML: Code Generation, Testing, Refactoring. Springer, New York, NY, 1ª edição.
Sommerville, I. (2019). Engenharia De Software. Pearson Universidades, São Paulo, 10ª edição.
Strickland, J. R. (2016). Junk Box Arduino. Springer Science+Business Media.
Tan, L., Yang, Z., and Xie, J. (2010). OCL constraints automatic generation for UML class diagram. In Proceedings of the 2010 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND SERVICE SCIENCES. IEEE.
Uzlu, T. and Saykol, E. (2016). Utilizing Rust programming language for EFI-based bootloader design. In Proceedings of the 2ND INTERNATIONAL CONFERENCE ON RECENT TRENDS AND APPLICATIONS IN COMPUTER SCIENCE AND INFORMATION TECHNOLOGY. Computer Science Bibliography.