Implementación de un virtual filesystem switch dentro de los lineamientos del proyecto CIAA

Título

Implementación de un virtual filesystem switch dentro de los lineamientos del proyecto CIAA

Colaborador

Cruz, Juan Manuel
Pernía, Eric

Editor

Universidad de Buenos Aires. Facultad de Ingeniería

Fecha

2020-03-11

Extensión

105 p.

Resumen

El propósito de este trabajo es extender la funcionalidad del firmware de la Computadora Industrial Abierta Argentina (CIAA) para permitir el manejo de archivos en dispositivos de almacenamiento de datos. La necesidad de guardar datos en forma permanente surge de aplicaciones como medición y registro de datos, recuperar el estado anterior ante una falla de alimentación, etc.
Se escogió para el fin citado implementar un sistema de archivos virtual (VFS), ya que es una solución general y abarca todos los casos particulares. Esta solución permite manejar múltiples unidades de almacenamiento, cada uno con distintos formatos de sistema de archivos, de forma homogénea. De igual forma facilita la integración de nuevos drivers de sistemas de archivos y dispositivos de almacenamiento sin necesidad de reescribir mucho código.
Fundamentalmente, el trabajo consiste en:

- El diseño e implementación de la API sencilla que permita controlar la capa mas alta del VFS por parte del usuario. Debe ser válida para todas las plataformas de hardware.
- Diseño e implementación o adaptación de uno o más drivers de file system particulares para ser utilizados en aplicaciones que utilicen este nuevo módulo. En este caso particular se implementa un driver para ext2 y una adaptación para FatFS.
- Diseño e implementación de la capa Block Device para proveer una API unificada para acceder a todos los dispositivos de almacenamiento. Para este caso particular se implementa el acceso a un dispositivo SD y otro USB.
- Diseño e implementación del driver SPI de sAPI para EDU-CIAA-NXP.

Para validar el desarrollo se presenta:

- Un ejemplo de aplicación utilizando ext2 en una tarjeta SD, para la plataforma EDU-CIAANXP.
- Un ejemplo de aplicación utilizando FatFS en un USB stick, para la plataforma EDU-CIAANXP.
- Un ejemplo integrador e interactivo utilizando FTP con la plataforma CIAA-NXP.