-
Notifications
You must be signed in to change notification settings - Fork 0
Firmware
El firmware del dispositivo está estructurado bajo el árbol de directorios presentado en el siguiente link.
Explicación de las APIs:
-
api/api_capi: librería de periféricos para el LPC1769 otorgada por la cátedra de Técnicas Digitales II en la UTN FRBA.
-
api/configuration_server: bloque de código encargado de configurar en la Flash interna del microcontrolador la configuración de red.
-
api/containers: buffers circulares.
-
api/fat_elmchanfs: sistema de archivos FAT32 codificado por Elm Chan. Para más información visitar el siguiente link.
-
api/lcd: bloque de código encargado de manejar el pantalla, a nivel texto pero gráfica, Winstar de 128x64 px.
-
api/network: código que permite levantar la interfaz de red y configurar el stack LwIP.
-
api/player: es el core de la aplicación a nivel API. Contiene las interfases que definen el comportamiento del reproductor y la implementación con la fuente de información particular.
-
api/protocol: protocolo montado sobre sockets UDP para comunicarse con el servidor de audios .mp3.
-
api/sd: wrapper del sistema de archivos FAT32.
-
api/sta013: driver para controlar el chip STA013 que es el driver que convierte el archivo .mp3 y lo convierte a datos I2S para enviar a un DAC que permita la conversión de PCM a una tensión analógica.
-
api/timer: wrapper para utilizar los timers del microcontrolador por interrupciones o no, con eventos suscribibles.
La aplicación en sí está separada en archivos según su funcionalidad. Así se tiene:
-
appApplication.h y appApplication.c: son los archivos que contienen los tipos principales y manejan el flujo del programa principal. Gestiona las entradas, y el control del reproductor. Además envía los mensajes a la pantalla. En líneas generales controla la aplicación en cuestión.
-
appHandler.h y appHandler.c: no se utilizan y se pueden descartar. La función original es que se coloquen los eventos de la aplicación aquí.
-
appConfigr.h: contiene las configuraciones generales de la aplicación, tamaño de buffers, etc.
-
appInit.h y appInit.c: se inicializan todas las APIs que se van a utilizar. Se toman todos los recursos.
-
FreeRTOSConfig.h: configuración del sistema operativo FreeRTOS.
-
main.c: es el archivo principal que llama a la inicializacion de todas las APIs y luego arranca el scheduler.