Entorno de desarrollo para la asignatura Electrónica IV de la carrera de Ingeniería Electrónica. Desarrollado por el Laboratorio de Microprocesadores (Facultad de Ciencias Exactas y Tecnología, Universidad Nacional de Tucumán).
Incluye módulos reutilizables, plantillas de código, ejemplos didácticos y la integración con el framework MUJU para compilar firmware sobre la placa EDU-CIAA-NXP (NXP LPC4337, Cortex-M4F).
- GNU Make
- Toolchain ARM GCC (
arm-none-eabi-gcc) en elPATH - Git con soporte de submódulos
- (Opcional) pre-commit y clang-format para el formateo automático del código C
git clone --recurse-submodules <url-del-repositorio>
cd eiv.entornoSi ya clonó el repositorio sin submódulos:
git submodule update --init --recursiveeiv.entorno/
├── ejemplos/ # Proyectos de ejemplo (bare-metal y FreeRTOS)
├── modulos/ # Módulos del entorno (BSP, drivers, plantillas)
│ ├── ciaa/ # Board Support Package para EDU-CIAA-NXP
│ └── plantillas/ # Plantillas para nuevos archivos fuente y cabecera
├── plantillas/ # Plantillas de formato (referencia)
├── muju/ # Submódulo: framework de compilación y HAL
├── build/ # Artefactos de compilación (generado, no versionado)
├── makefile # Makefile raíz del entorno
└── LICENSE.txt
Cada ejemplo tiene su propio makefile. Desde la carpeta del ejemplo:
cd ejemplos/cooperativo
makeLos binarios se generan en build/bin/ en la raíz del repositorio. Por ejemplo:
build/bin/cooperativo.elf
build/bin/demo_ciaa.elf
Para limpiar los artefactos de compilación:
make clean| Objetivo | Descripción |
|---|---|
make |
Compila el proyecto |
make clean |
Elimina la carpeta build/ |
make info |
Muestra rutas, módulos y definiciones del build |
make download |
Graba el firmware en la placa (si está configurado) |
make vscode |
Genera .vscode/c_cpp_properties.json |
make check |
Análisis estático con CppCheck |
| Carpeta | Descripción |
|---|---|
ejemplos/cooperativo |
Planificador cooperativo round-robin (cambio de contexto voluntario) |
ejemplos/expropiativo |
Planificador expropiativo con SysTick |
| Carpeta | Descripción |
|---|---|
ejemplos/freertos/blinking |
Parpadeo de LED con una tarea |
ejemplos/freertos/parametros |
Paso de parámetros a tareas |
ejemplos/freertos/delay_until |
Uso de vTaskDelayUntil |
ejemplos/freertos/demo_ciaa |
Demostración completa de la placa (teclas y LEDs) |
Board Support Package para la EDU-CIAA-NXP:
bsp.h/bsp.c: descriptor de placa (BoardCreate) con LEDs y teclas.digital.h/digital.c: API para entradas y salidas digitales (lectura, escritura, detección de flancos).
Para usar el módulo en un proyecto, incluirlo en la variable MODULES del makefile:
MODULES := $(ROOT)/modulos/ciaa module/freertosLos archivos en modulos/plantillas/ (plantilla.c, plantilla.h) sirven como punto de partida para nuevos módulos. Copie y adapte las secciones según la funcionalidad requerida.
- Cree una carpeta con la estructura
inc/ysrc/(o un únicomain.cen la raíz). - Agregue un
makefilebasado en los ejemplos existentes:
ROOT := ../.. # Ajustar según la profundidad de la carpeta
BOARD := edu-ciaa-nxp
MUJU := $(ROOT)/muju
MODULES := $(ROOT)/modulos/ciaa # Agregar módulos según necesidad
BUILD_DIR := $(ROOT)/build
include $(MUJU)/module/base/makefile- Compile desde la carpeta del proyecto con
make.
Consulte la documentación de MUJU para más detalles sobre módulos y configuración.
El repositorio incluye configuración de clang-format (.clang-format) y hooks de pre-commit:
pip install pre-commit
pre-commit installLos archivos fuente siguen convenciones de documentación Doxygen y secciones delimitadas con comentarios /* === ... === */.
Este proyecto se distribuye bajo licencia MIT.
El submódulo MUJU y sus dependencias (FreeRTOS, CMSIS, etc.) mantienen sus propias licencias; consulte los archivos correspondientes en muju/.