#acl BecariosGrupo:read,write,revert All:read #acl Default All:read = Firmware del controlador embebido del robot móvil RoMAA-II = == Firmware con kernel en tiempo real == El código que actualmente se utiliza tanto en el RoMAA II como en el RoMAA original esta basado en el desarrollado para el proyecto [[LabElectronica/FreeRTOSLpc2114Web|"Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización"]]. Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino [[LabElectronica/FreeRTOSLpc2114Web|Ir]]. La versión actual se encuentra en el repositorio [[http://proyectos.ciii.frc.utn.edu.ar/romaa_firmware|romaa_firmware]]. Y se puede descargar del servidor con {{{hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware}}} === Organización del Código === La estructura de directorios es la siguiente: {{attachment:romaa_freertos_structure.png||height="137px",width="489px"}} Las librerías CIIIEmbLibs se incluyen dentro del proyecto porque son una versión anterior a la revisión 0 (la más antigua disponible en los [[http://proyectos.ciii.frc.utn.edu.ar/ciiiemblibs|repositorios]]) y esto significa que contiene implementaciones incompatibles con las librerías que tienen mantenimiento hoy en día. El principal cambio que habría que llevar a cabo para actualizar el proyecto a las nuevas CIIIEmbLibs es modificar las interrupciones para que utilicen callbacks. === Compilación === Para compilar el proyecto es necesario ubicarse en la carpeta "app" y ejecutar: {{{ romaa_freertos/app$ ./rom_arm.sh }}} (este script debe tener permisos de ejecución) Este script define una serie de variables de entornos para que el código sea generado en modo ARM, sin optimización, y preparado para ser grabado en memoria flash. Para limpiar el proyecto es necesario ejecutar: {{{ romaa_freertos/app$ make clean }}} De esta forma se borran todos los objetos generados en toda la estructura de directorios. === Grabación del Firmware: === Luego de una compilación exitosa, se generará un archivo llamado "romaii.hex", que es donde se encuentra el programa compilado y linkeado. Dependiendo del cable utilizado, hay dos formas de grabar el firmware en el microcontrolador: * Cable RS232: {{{ romaa_freertos/app$ make grabar_s }}} * Cable USB: {{{ romaa_freertos/app$ make grabar_u }}} ==== Nota: ==== Esta información también está presente en la el archivo LEAME.txt, dentro de la carpeta app. ------ Temporalmente se puede descargar de esta página el firmware v2.0 del RoMAA-II (con FreeRTOS), con dos diferentes configuraciones de encoders y reducción de velocidad * versión para el [[attachment:romaaii_firware_chaco.hex|RoMAA-II del Chaco]] ([[attachment:romaaii_firmware_chaco_20100414.hex|con inversión de encoders]]) * versión para el [[attachment:romaaii_firware_cba.hex|RoMAA de Córdoba]]