Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX
Autor(a) principal: | |
---|---|
Data de Publicação: | 2021 |
Tipo de documento: | Trabalho de conclusão de curso |
Idioma: | por |
Título da fonte: | Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
Texto Completo: | http://repositorio.utfpr.edu.br/jspui/handle/1/28615 |
Resumo: | Este trabalho demonstra o desenvolvimento de um device driver para o RTOS Nuttx, utilizando conceitos de portabilidade disponibilizados pela norma POSIX 2013.1. O Nuttx é um sistema operacional de tempo real com compatibilidade POSIX, no entanto, não possui metodologia de desenvolvimento de driver definida. Foi confeccionado um processo de desenvolvimento de driver do tipo character device e demonstrado sua aplicabilidade realizando a utilização do device driver em uma aplicação desenvolvida para o Nuttx. Optou-se por desenvolver um device driver da classe USB CDC/ACM, com o intuito de utilizar o recurso de emulação de uma porta serial virtual proveniente do componente ACM. Para tanto, fez-se necessária a segmentação do projeto em camadas, que permite abstrair a comunicação entre a controladora USB, o device driver implementado na camada de driver do Nuttx e a aplicação registrada no diretório apps. Ao concluir o desenvolvimento e o procedimento de configuração do driver, foi possível realizar a comunicação com o dispositivo conectado na porta USB disponibilizada no kit de desenvolvimento TM4C1294-Launchpad. A emulação de um terminal virtual ocorreu conforme o planejado, e devido ao desenvolvimento ter sido baseado na norma POSIX que descreve a portabilidade entre sistemas operacionais, o mesmo device driver pode ser exportado para outro RTOS POSIX. É possível visualizar que as system calls requisitadas na aplicação são processadas pelas funçõees POSIX desenvolvidas no device driver, e a partir disso pode-se concluir que o procedimento do desenvolvimento de device driver ocorreu de forma adequada. O trabalho traz contribuições para o desenvolvimento de aplicações e device drivers no ambiente do Nuttx. Adicionalmente, os códigos e todos os arquivos de configuração estão disponibilizados como código open source no Github à toda comunidade de desenvolvimento. |
id |
UTFPR-12_ca006ee34e757a3d7904b00d74ebbca1 |
---|---|
oai_identifier_str |
oai:repositorio.utfpr.edu.br:1/28615 |
network_acronym_str |
UTFPR-12 |
network_name_str |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
repository_id_str |
|
spelling |
2022-05-20T15:37:23Z2022-05-20T15:37:23Z2021-11-03RIBEIRO, Fernando Martins. Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX. 2021. Trabalho de Conclusão de Curso (Engenharia de Computação) - Universidade Tecnológica Federal do Paraná, Pato Branco, 2021.http://repositorio.utfpr.edu.br/jspui/handle/1/28615Este trabalho demonstra o desenvolvimento de um device driver para o RTOS Nuttx, utilizando conceitos de portabilidade disponibilizados pela norma POSIX 2013.1. O Nuttx é um sistema operacional de tempo real com compatibilidade POSIX, no entanto, não possui metodologia de desenvolvimento de driver definida. Foi confeccionado um processo de desenvolvimento de driver do tipo character device e demonstrado sua aplicabilidade realizando a utilização do device driver em uma aplicação desenvolvida para o Nuttx. Optou-se por desenvolver um device driver da classe USB CDC/ACM, com o intuito de utilizar o recurso de emulação de uma porta serial virtual proveniente do componente ACM. Para tanto, fez-se necessária a segmentação do projeto em camadas, que permite abstrair a comunicação entre a controladora USB, o device driver implementado na camada de driver do Nuttx e a aplicação registrada no diretório apps. Ao concluir o desenvolvimento e o procedimento de configuração do driver, foi possível realizar a comunicação com o dispositivo conectado na porta USB disponibilizada no kit de desenvolvimento TM4C1294-Launchpad. A emulação de um terminal virtual ocorreu conforme o planejado, e devido ao desenvolvimento ter sido baseado na norma POSIX que descreve a portabilidade entre sistemas operacionais, o mesmo device driver pode ser exportado para outro RTOS POSIX. É possível visualizar que as system calls requisitadas na aplicação são processadas pelas funçõees POSIX desenvolvidas no device driver, e a partir disso pode-se concluir que o procedimento do desenvolvimento de device driver ocorreu de forma adequada. O trabalho traz contribuições para o desenvolvimento de aplicações e device drivers no ambiente do Nuttx. Adicionalmente, os códigos e todos os arquivos de configuração estão disponibilizados como código open source no Github à toda comunidade de desenvolvimento.This work demonstrates the development of a device driver for the RTOS Nuttx, using portability concepts provided by the POSIX 2013.1 standard. The Nutty is a real-time operating system with POSIX compatibility, nonetheless, it has no defined driver development methodology. A character device driver development process was made and its applicability using the device driver in an application developed for Nuttx. It was decided to develop a USB CDC/ACM class device driver, to use the emulation feature of a virtual serial port from the ACM component. Therefore, it was necessary to apply the project in layers, which abstract the communication between a USB controller, the device driver implemented in the Nuttx driver layer, and an application registered in the applications directory, which does not belong to the Nuttx core. However, requests to this directory can consume the resources made available by the RTOS. After completing the development and configuration procedure of the driver, it is possible to carry out a communication between the device connected to the USB port provided in the TM4C1294-Launchpad development kit. The application must be created using NuttShell and requested through the command line. The emulation of a virtual terminal went as expected because the development was about the POSIX standard that tests portability between operating systems, the same device driver can be exported to another POSIX RTOS. It is possible to see that the system calls requested in the application are processed by the POSIX functions developed in the device driver. It can conclude that the device driver development procedure is operating as waiting. The work brings contributions to the development of applications and device drivers in the Nuttx environment. As a contribution to the entire development community, the codes and any configuration files are made available as open-source on GitHub.porUniversidade Tecnológica Federal do ParanáPato BrancoEngenharia de ComputaçãoUTFPRBrasilDepartamento Acadêmico de Informáticahttps://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccessCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOLinux device drivers (Programas de computador)Sistemas embarcados (Computadores)Sistemas operacionais (Computadores)Linux device drivers (Computer programs)Embedded computer systemsOperating systems (Computers)Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIXDevelopment of device drivers for the RTOS Nuttx in the POSIX standardinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisPato BrancoDenardin, Gustavo WeberDenardin, Gustavo WeberCasanova, DalcimarVargas, Diogo RibeiroRibeiro, Fernando Martinsreponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))instname:Universidade Tecnológica Federal do Paraná (UTFPR)instacron:UTFPRLICENSElicense.txtlicense.txttext/plain; charset=utf-81290http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/2/license.txtb9d82215ab23456fa2d8b49c5df1b95bMD52ORIGINALsistemasembarcadosdriver.pdfsistemasembarcadosdriver.pdfapplication/pdf1596745http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/1/sistemasembarcadosdriver.pdf0c269f723bba8efe95cec16c669e0f4fMD51TEXTsistemasembarcadosdriver.pdf.txtsistemasembarcadosdriver.pdf.txtExtracted texttext/plain142165http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/3/sistemasembarcadosdriver.pdf.txtef42af43ce7e8b61d6d75b6e85ff5a38MD53THUMBNAILsistemasembarcadosdriver.pdf.jpgsistemasembarcadosdriver.pdf.jpgGenerated Thumbnailimage/jpeg1206http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/4/sistemasembarcadosdriver.pdf.jpg61c81df66fee849fc23bc79764c4662cMD541/286152022-05-22 03:07:36.161oai:repositorio.utfpr.edu.br:1/28615TmEgcXVhbGlkYWRlIGRlIHRpdHVsYXIgZG9zIGRpcmVpdG9zIGRlIGF1dG9yIGRhIHB1YmxpY2HDp8OjbywgYXV0b3Jpem8gYSBVVEZQUiBhIHZlaWN1bGFyLCAKYXRyYXbDqXMgZG8gUG9ydGFsIGRlIEluZm9ybWHDp8OjbyBlbSBBY2Vzc28gQWJlcnRvIChQSUFBKSBlIGRvcyBDYXTDoWxvZ29zIGRhcyBCaWJsaW90ZWNhcyAKZGVzdGEgSW5zdGl0dWnDp8Ojbywgc2VtIHJlc3NhcmNpbWVudG8gZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCBkZSBhY29yZG8gY29tIGEgTGVpIG5vIDkuNjEwLzk4LCAKbyB0ZXh0byBkZXN0YSBvYnJhLCBvYnNlcnZhbmRvIGFzIGNvbmRpw6fDtWVzIGRlIGRpc3BvbmliaWxpemHDp8OjbyByZWdpc3RyYWRhcyBubyBpdGVtIDQgZG8gCuKAnFRlcm1vIGRlIEF1dG9yaXphw6fDo28gcGFyYSBQdWJsaWNhw6fDo28gZGUgVHJhYmFsaG9zIGRlIENvbmNsdXPDo28gZGUgQ3Vyc28gZGUgR3JhZHVhw6fDo28gZSAKRXNwZWNpYWxpemHDp8OjbywgRGlzc2VydGHDp8O1ZXMgZSBUZXNlcyBubyBQb3J0YWwgZGUgSW5mb3JtYcOnw6NvIGUgbm9zIENhdMOhbG9nb3MgRWxldHLDtG5pY29zIGRvIApTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIGRhIFVURlBS4oCdLCBwYXJhIGZpbnMgZGUgbGVpdHVyYSwgaW1wcmVzc8OjbyBlL291IGRvd25sb2FkLCB2aXNhbmRvIGEgCmRpdnVsZ2HDp8OjbyBkYSBwcm9kdcOnw6NvIGNpZW50w61maWNhIGJyYXNpbGVpcmEuCgogIEFzIHZpYXMgb3JpZ2luYWlzIGUgYXNzaW5hZGFzIHBlbG8ocykgYXV0b3IoZXMpIGRvIOKAnFRlcm1vIGRlIEF1dG9yaXphw6fDo28gcGFyYSBQdWJsaWNhw6fDo28gZGUgClRyYWJhbGhvcyBkZSBDb25jbHVzw6NvIGRlIEN1cnNvIGRlIEdyYWR1YcOnw6NvIGUgRXNwZWNpYWxpemHDp8OjbywgRGlzc2VydGHDp8O1ZXMgZSBUZXNlcyBubyBQb3J0YWwgCmRlIEluZm9ybWHDp8OjbyBlIG5vcyBDYXTDoWxvZ29zIEVsZXRyw7RuaWNvcyBkbyBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIGRhIFVURlBS4oCdIGUgZGEg4oCcRGVjbGFyYcOnw6NvIApkZSBBdXRvcmlh4oCdIGVuY29udHJhbS1zZSBhcnF1aXZhZGFzIG5hIEJpYmxpb3RlY2EgZG8gQ8OibXB1cyBubyBxdWFsIG8gdHJhYmFsaG8gZm9pIGRlZmVuZGlkby4gCk5vIGNhc28gZGUgcHVibGljYcOnw7VlcyBkZSBhdXRvcmlhIGNvbGV0aXZhIGUgbXVsdGljw6JtcHVzLCBvcyBkb2N1bWVudG9zIGZpY2Fyw6NvIHNvYiBndWFyZGEgZGEgCkJpYmxpb3RlY2EgY29tIGEgcXVhbCBvIOKAnHByaW1laXJvIGF1dG9y4oCdIHBvc3N1YSB2w61uY3Vsby4KRepositório de PublicaçõesPUBhttp://repositorio.utfpr.edu.br:8080/oai/requestopendoar:2022-05-22T06:07:36Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)false |
dc.title.pt_BR.fl_str_mv |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
dc.title.alternative.pt_BR.fl_str_mv |
Development of device drivers for the RTOS Nuttx in the POSIX standard |
title |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
spellingShingle |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX Ribeiro, Fernando Martins CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Linux device drivers (Programas de computador) Sistemas embarcados (Computadores) Sistemas operacionais (Computadores) Linux device drivers (Computer programs) Embedded computer systems Operating systems (Computers) |
title_short |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
title_full |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
title_fullStr |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
title_full_unstemmed |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
title_sort |
Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX |
author |
Ribeiro, Fernando Martins |
author_facet |
Ribeiro, Fernando Martins |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Denardin, Gustavo Weber |
dc.contributor.referee1.fl_str_mv |
Denardin, Gustavo Weber |
dc.contributor.referee2.fl_str_mv |
Casanova, Dalcimar |
dc.contributor.referee3.fl_str_mv |
Vargas, Diogo Ribeiro |
dc.contributor.author.fl_str_mv |
Ribeiro, Fernando Martins |
contributor_str_mv |
Denardin, Gustavo Weber Denardin, Gustavo Weber Casanova, Dalcimar Vargas, Diogo Ribeiro |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO Linux device drivers (Programas de computador) Sistemas embarcados (Computadores) Sistemas operacionais (Computadores) Linux device drivers (Computer programs) Embedded computer systems Operating systems (Computers) |
dc.subject.por.fl_str_mv |
Linux device drivers (Programas de computador) Sistemas embarcados (Computadores) Sistemas operacionais (Computadores) Linux device drivers (Computer programs) Embedded computer systems Operating systems (Computers) |
description |
Este trabalho demonstra o desenvolvimento de um device driver para o RTOS Nuttx, utilizando conceitos de portabilidade disponibilizados pela norma POSIX 2013.1. O Nuttx é um sistema operacional de tempo real com compatibilidade POSIX, no entanto, não possui metodologia de desenvolvimento de driver definida. Foi confeccionado um processo de desenvolvimento de driver do tipo character device e demonstrado sua aplicabilidade realizando a utilização do device driver em uma aplicação desenvolvida para o Nuttx. Optou-se por desenvolver um device driver da classe USB CDC/ACM, com o intuito de utilizar o recurso de emulação de uma porta serial virtual proveniente do componente ACM. Para tanto, fez-se necessária a segmentação do projeto em camadas, que permite abstrair a comunicação entre a controladora USB, o device driver implementado na camada de driver do Nuttx e a aplicação registrada no diretório apps. Ao concluir o desenvolvimento e o procedimento de configuração do driver, foi possível realizar a comunicação com o dispositivo conectado na porta USB disponibilizada no kit de desenvolvimento TM4C1294-Launchpad. A emulação de um terminal virtual ocorreu conforme o planejado, e devido ao desenvolvimento ter sido baseado na norma POSIX que descreve a portabilidade entre sistemas operacionais, o mesmo device driver pode ser exportado para outro RTOS POSIX. É possível visualizar que as system calls requisitadas na aplicação são processadas pelas funçõees POSIX desenvolvidas no device driver, e a partir disso pode-se concluir que o procedimento do desenvolvimento de device driver ocorreu de forma adequada. O trabalho traz contribuições para o desenvolvimento de aplicações e device drivers no ambiente do Nuttx. Adicionalmente, os códigos e todos os arquivos de configuração estão disponibilizados como código open source no Github à toda comunidade de desenvolvimento. |
publishDate |
2021 |
dc.date.issued.fl_str_mv |
2021-11-03 |
dc.date.accessioned.fl_str_mv |
2022-05-20T15:37:23Z |
dc.date.available.fl_str_mv |
2022-05-20T15:37:23Z |
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.citation.fl_str_mv |
RIBEIRO, Fernando Martins. Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX. 2021. Trabalho de Conclusão de Curso (Engenharia de Computação) - Universidade Tecnológica Federal do Paraná, Pato Branco, 2021. |
dc.identifier.uri.fl_str_mv |
http://repositorio.utfpr.edu.br/jspui/handle/1/28615 |
identifier_str_mv |
RIBEIRO, Fernando Martins. Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX. 2021. Trabalho de Conclusão de Curso (Engenharia de Computação) - Universidade Tecnológica Federal do Paraná, Pato Branco, 2021. |
url |
http://repositorio.utfpr.edu.br/jspui/handle/1/28615 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
https://creativecommons.org/licenses/by-nc/4.0/ info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
https://creativecommons.org/licenses/by-nc/4.0/ |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Tecnológica Federal do Paraná Pato Branco |
dc.publisher.program.fl_str_mv |
Engenharia de Computação |
dc.publisher.initials.fl_str_mv |
UTFPR |
dc.publisher.country.fl_str_mv |
Brasil |
dc.publisher.department.fl_str_mv |
Departamento Acadêmico de Informática |
publisher.none.fl_str_mv |
Universidade Tecnológica Federal do Paraná Pato Branco |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) instname:Universidade Tecnológica Federal do Paraná (UTFPR) instacron:UTFPR |
instname_str |
Universidade Tecnológica Federal do Paraná (UTFPR) |
instacron_str |
UTFPR |
institution |
UTFPR |
reponame_str |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
collection |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
bitstream.url.fl_str_mv |
http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/2/license.txt http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/1/sistemasembarcadosdriver.pdf http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/3/sistemasembarcadosdriver.pdf.txt http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/28615/4/sistemasembarcadosdriver.pdf.jpg |
bitstream.checksum.fl_str_mv |
b9d82215ab23456fa2d8b49c5df1b95b 0c269f723bba8efe95cec16c669e0f4f ef42af43ce7e8b61d6d75b6e85ff5a38 61c81df66fee849fc23bc79764c4662c |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR) |
repository.mail.fl_str_mv |
|
_version_ |
1805922988094128128 |