Desenvolvimento de devices drivers para o RTOS Nuttx no padrão POSIX - Ribeiro, Fernando Martins (2021)
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.