Skip to content

Repository files navigation

Electronica IV

Entorno de desarollo

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).

Requisitos

  • GNU Make
  • Toolchain ARM GCC (arm-none-eabi-gcc) en el PATH
  • Git con soporte de submódulos
  • (Opcional) pre-commit y clang-format para el formateo automático del código C

Obtener el repositorio

git clone --recurse-submodules <url-del-repositorio>
cd eiv.entorno

Si ya clonó el repositorio sin submódulos:

git submodule update --init --recursive

Estructura del proyecto

eiv.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

Compilar un ejemplo

Cada ejemplo tiene su propio makefile. Desde la carpeta del ejemplo:

cd ejemplos/cooperativo
make

Los 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

Objetivos útiles de MUJU

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

Ejemplos

Bare-metal

Carpeta Descripción
ejemplos/cooperativo Planificador cooperativo round-robin (cambio de contexto voluntario)
ejemplos/expropiativo Planificador expropiativo con SysTick

FreeRTOS

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)

Módulos

modulos/ciaa

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/freertos

Plantillas

Los 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.

Crear un proyecto nuevo

  1. Cree una carpeta con la estructura inc/ y src/ (o un único main.c en la raíz).
  2. Agregue un makefile basado 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
  1. Compile desde la carpeta del proyecto con make.

Consulte la documentación de MUJU para más detalles sobre módulos y configuración.

Formato de código

El repositorio incluye configuración de clang-format (.clang-format) y hooks de pre-commit:

pip install pre-commit
pre-commit install

Los archivos fuente siguen convenciones de documentación Doxygen y secciones delimitadas con comentarios /* === ... === */.

Licencia

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/.

About

Entorno de trabajo para la asignatura Electronica IV

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages