<?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/RoMAAFirmware20</title><revhistory><revision><revnumber>20</revnumber><date>2017-02-24 21:57:53</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>19</revnumber><date>2011-08-03 23:24:37</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>18</revnumber><date>2011-07-13 04:01:33</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>17</revnumber><date>2011-07-13 02:05:56</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>16</revnumber><date>2011-07-13 02:02:28</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>15</revnumber><date>2011-04-14 23:40:40</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>14</revnumber><date>2011-04-14 23:37:11</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>13</revnumber><date>2011-04-14 23:29:52</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>12</revnumber><date>2011-04-14 23:28:50</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>11</revnumber><date>2011-04-14 22:08:08</date><authorinitials>MartinBaudino</authorinitials></revision><revision><revnumber>10</revnumber><date>2011-04-14 22:06:05</date><authorinitials>MartinBaudino</authorinitials></revision><revision><revnumber>9</revnumber><date>2011-04-14 22:02:06</date><authorinitials>MartinBaudino</authorinitials></revision><revision><revnumber>8</revnumber><date>2011-04-14 21:34:13</date><authorinitials>MartinBaudino</authorinitials></revision><revision><revnumber>7</revnumber><date>2011-04-14 20:40:40</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>6</revnumber><date>2011-04-14 20:39:52</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>5</revnumber><date>2011-04-14 20:39:08</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>4</revnumber><date>2011-04-14 20:37:14</date><authorinitials>GonzaloPerezPaina</authorinitials></revision><revision><revnumber>3</revnumber><date>2011-04-13 17:32:34</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>2</revnumber><date>2011-04-13 17:31:06</date><authorinitials>localhost</authorinitials></revision><revision><revnumber>1</revnumber><date>2011-04-12 18:19:45</date><authorinitials>GonzaloPerezPaina</authorinitials></revision></revhistory></articleinfo><section><title>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 <ulink url="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware20/wiki/LabElectronica/FreeRTOSLpc2114Web#">&quot;Hardware de Control de Plataforma Robótica Móvil con Arquitectura ARM7 y RTOS embebido. Caracterización&quot;</ulink>. 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/RoMAAFirmware20/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  <code>hg clone https://proyectos.ciii.frc.utn.edu.ar/hg/romaa_firmware</code> </para><section><title>Organización del Código</title><para>La estructura de directorios es la siguiente: </para><para><inlinemediaobject><imageobject><imagedata depth="137px" fileref="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware20?action=AttachFile&amp;do=get&amp;target=romaa_freertos_structure.png" width="489px"/></imageobject><textobject><phrase>romaa_freertos_structure.png</phrase></textobject></inlinemediaobject> </para><para>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 <ulink url="http://proyectos.ciii.frc.utn.edu.ar/ciiiemblibs">repositorios</ulink>) y esto significa que contiene implementaciones incompatibles con las librerías que tienen mantenimiento hoy en día. </para><para>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. </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_freertos/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_freertos/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_freertos/app$ make grabar_s]]></screen><itemizedlist><listitem><para>Cable USB: </para></listitem></itemizedlist><screen><![CDATA[romaa_freertos/app$ make grabar_u]]></screen><section><title>Nota:</title><para>Esta información también está presente en la el archivo LEAME.txt, dentro de la carpeta app. </para><!--rule (<hr>) is not applicable to DocBook--><para> 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 </para><itemizedlist><listitem><para>versión para el <ulink url="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware20/wiki/LabElectronica/RoMAAFirmware20?action=AttachFile&amp;do=get&amp;target=romaaii_firware_chaco.hex">RoMAA-II del Chaco</ulink> (<ulink url="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware20/wiki/LabElectronica/RoMAAFirmware20?action=AttachFile&amp;do=get&amp;target=romaaii_firmware_chaco_20100414.hex">con inversión de encoders</ulink>) </para></listitem><listitem><para>versión para el <ulink url="https://ciii.frc.utn.edu.ar/wiki/LabElectronica/RoMAAFirmware20/wiki/LabElectronica/RoMAAFirmware20?action=AttachFile&amp;do=get&amp;target=romaaii_firware_cba.hex">RoMAA de Córdoba</ulink> </para></listitem></itemizedlist></section></section></section></section></article>