1.2 Organización del espacio de trabajo
En archivo de recursos tienes
los recursos necesarios para realizar este laboratorio (lab1).
A continuación se describe la estructura de carpetas y los archivos que
encontrarás en el espacio de trabajo:
Código fuente: se organiza en módulos y categorías (capas), utilizando las carpetas siguientes:
- hal:
Hardware Abstraction Layer: Módulos con funciones para acceder a los periféricos. En este caso el único módulo disponible es HAL_FM4_gpio, que incluye funciones para acceder a los puertos de entrada/salida digital.
- bsp:
Board Support Package: Módulos con funciones para acceder al hardware disponible en el sistema de desarrollo (leds, pulsadores entrad/salida de audio …). En este caso el único módulo disponible es FM4_leds_sw, que incluye funciones para utilizar los leds y el pulsador disponible en la placa de desarrollo.
- src:
Source: Aplicación implementada, incluye los ficheros con el código de la aplicación que implementa el proyecto.
lab1 ├───hal # Hardware Abstraction Layer - Capa de abstracción de hardware │ │ # Contiene drivers de bajo nivel para acceso directo al hardware │ ├───include # Archivos de cabecera (.h) con definiciones de interfaces │ │ # Aquí se encuentran los prototipos de funciones y constantes │ └───src # Código fuente (.c) con implementaciones de funciones HAL │ # Contiene el código que interactúa directamente con registros ├───bsp # Board Support Package - Paquete de soporte de placa │ │ # Proporciona API para dispositivos específicos de la placa │ ├───include # Cabeceras de la capa BSP con definiciones de interfaces │ │ # Define constantes específicas de la placa (pines, LEDs) │ └───src # Implementación de funciones de la capa BSP │ # Utiliza HAL para implementar funcionalidades de más alto nivel ├───src # Código fuente de la aplicación principal │ # Aquí se encuentra la función de entrada main() │ ...
Directorio de compilación: aquí se ubica el proyecto de la herramienta de desarrollo (IDE) utilizada (keil en este caso, podría ser IAR, gcc …)
lab1 ... ├───build_Keil # Proyecto Keil │ ├───lab1.uvprojx # Proyecto de Keil │ └───lab1.uvoptx # Opciones del proyecto ...
Documentación. Directorio con la documentación asociada al proyecto, se completa con el archivo Readme.md que incluye una breve descripción del proyecto y otra información relevante.
lab1 ... ├───_doc # Documentación └───Readme.md # Descripción del proyecto.
La documentación de las funciones incluidas en los módulos hal, bsp y shared, está disponible en formato HTML generada con doxygen:
Explora el espacio de trabajo
Descarga y descomprime el archivo de recursos en tu espacio de trabajo. Verifica que la estructura de carpetas es correcta y que contiene los archivos necesarios para la práctica.
En los archivos de cabecera (.h) de los módulos encontraras los prototipos de las funciones y otros elementos necesarios para su uso. Cada prototipo se acompaña de un comentario que describe su funcionalidad y uso.
Puedes utilizar notepad++ u otro editor de texto para explorar los archivos de cabecera (.h) y código fuente (.c). Si utilizas notepad++ abre la carpeta del proyecto como espacio de trabajo .
Averigua la funcionalidad y uso de las funciones siguientes:
En el módulo hal_FM4_gpio:
GPIO_ChannelMode()
GPIO_ChannelWrite()En el módulo FM4_leds_sw:
LedsSwInit()
LedON()
LedOFF()
LedRGB()
Sw2Read()Fíjate en los tipos de los argumentos, ¿qué valores pueden tomar variables de tipo
Leds_t,GpioChannel_t,GpioDir_torgb_color_t?