<?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/RoMAAFirmware22</title><revhistory><revision><revnumber>14</revnumber><date>2012-07-26 21:19:49</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>13</revnumber><date>2012-06-01 19:19:37</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>12</revnumber><date>2012-06-01 19:18:05</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>11</revnumber><date>2012-05-28 20:12:54</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>10</revnumber><date>2012-05-23 19:41:44</date><authorinitials>SantiagoPerez</authorinitials></revision><revision><revnumber>9</revnumber><date>2012-05-23 19:39:17</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.2 - 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/RoMAAFirmware22/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.2 https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware romaa_firmware_v2.2]]></screen><para>Este comando de Mercurial, crará una carpeta  llamada &quot;romaa_firmware_v2.2&quot; en el directorio desde donde se ejecute, y  descargará la versión 2.2 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.2 (revisión<emphasis role="strong"> 26</emphasis>:633efa877cd6), 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/RoMAAFirmware22?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.2/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.2/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.2/app$ make grabar_s]]></screen><itemizedlist><listitem><para>Cable USB: </para></listitem></itemizedlist><screen><![CDATA[romaa_firmware_v2.2/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.2/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>