<?xml version="1.0" encoding="utf-8"?><!DOCTYPE article  PUBLIC '-//OASIS//DTD DocBook XML V4.4//EN'  'http://www.docbook.org/xml/4.4/docbookx.dtd'><article><articleinfo><title>LabElectronica/RoMAAFirmware21</title><revhistory><revision><revnumber>10</revnumber><date>2012-05-28 20:10:00</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>9</revnumber><date>2012-05-23 19:42:28</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-12-13 01:49:45</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-12-13 01:48:53</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-12-05 22:15:10</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-12-05 22:13:31</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-12-05 22:03:39</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-12-05 21:36:49</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-12-05 21:31:19</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-12-05 20:58:22</date><authorinitials>localhost</authorinitials></revision></revhistory></articleinfo><section><title>v2.1 - Firmware del controlador embebido del robot móvil RoMAA-II</title><section><title>Firmware con kernel en tiempo real</title><para>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 &quot;Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización&quot;. Tesis de grado para obtener el título de Ing. en electrónica de Santiago Pérez y Martín Baudino <ulink url="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware21/wiki/LabElectronica/FreeRTOSLpc2114Web#">Ir</ulink>. </para><para>La versión actual se encuentra en el repositorio <ulink url="http://proyectos.ciii.frc.utn.edu.ar/romaa_firmware">romaa_firmware</ulink>. Y se puede descargar del servidor con: </para><screen><![CDATA[hg clone -r v2.1 https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware romaa_firmware_v2.1]]></screen><para>Este comando de Mercurial, crará una carpeta llamada &quot;romaa_firmware_v2.1&quot; en el directorio desde donde se ejecute, y descargará la versión 2.1 del firmware del RoMAA. </para><para>NOTA: Solo se descarga la versión y no todo el proyecto ni cambios posteriores a la versión especificada, por lo que si se ejecuta el comando: </para><screen><![CDATA[hg tags]]></screen><para>Mercurial mostrará la revisión que corresponde a la etiqueta 2.1 (revisión<emphasis role="strong"> 15</emphasis>:f25aa994780e), pero no mostrará la etiqueta ya que esta fue creada en la revisión posterior. </para><section><title>Organización del Código</title><para>La estructura de directorios es la siguiente: </para><para><inlinemediaobject><imageobject><imagedata fileref="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware21?action=AttachFile&amp;do=get&amp;target=romaa_firmware_structure.png"/></imageobject><textobject><phrase>romaa_firmware_structure.png</phrase></textobject></inlinemediaobject> </para><para>Las librerías CIIIEmbLibs se incluyen dentro del proyecto para comodidad en la compilación, y corresponden a la versión 1.0 revisada por Jeremías Pablo De la Cruz y Guillermo Hernán Bustos. </para></section><section><title>Compilación</title><para>Para compilar el proyecto es necesario ubicarse en la carpeta &quot;app&quot; y ejecutar: </para><screen><![CDATA[romaa_firmware_v2.1/app$ ./rom_arm.sh]]></screen><para>(este script debe tener permisos de ejecución) </para><para>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><para>Para limpiar el proyecto es necesario ejecutar: </para><screen><![CDATA[romaa_firmware_v2.1/app$ make clean]]></screen><para>De esta forma se borran todos los objetos generados en toda la estructura de directorios. </para></section><section><title>Grabación del Firmware:</title><para>Luego de una compilación exitosa, se generará un archivo llamado &quot;romaii.hex&quot;, que es donde se encuentra el programa compilado y linkeado. Dependiendo del cable utilizado, hay dos formas de grabar el firmware en el microcontrolador: </para><itemizedlist><listitem><para>Cable RS232: </para></listitem></itemizedlist><screen><![CDATA[romaa_firmware_v2.1/app$ make grabar_s]]></screen><itemizedlist><listitem><para>Cable USB: </para></listitem></itemizedlist><screen><![CDATA[romaa_firmware_v2.1/app$ make grabar_u]]></screen><para>El comando grabar_u está configurado para utilizar por defecto el dispositivo /dev/ttyUSB0. Si el dispositivo USB se encuentra en una ubicación diferente, se debe agregar la opción USB. Por ejemplo, para grabar utilizando /dev/ttyUSB1: </para><screen><![CDATA[romaa_firmware_v2.1/app$ make grabar_u USB=/dev/ttyUSB1]]></screen><section><title>Nota:</title><para>Esta información también está presente en el archivo LEAME.txt, dentro de la carpeta app. </para></section></section></section></section></article>