Herramientas de usuario

Herramientas del sitio

Traducciones de esta página:

faq

FAQ (Preguntas Frecuentes)

Nota: Esta página se encuentra en construcción.

¿Puedo usar la CIAA como parte de un desarrollo propio?

. Un usuario o empresa cualquiera puede adquirir una CIAA o bajarse los fuentes y armarse una, y luego usarla en el desarrollo de sus propios proyectos. Tanto los productos de hardware y firmware de la CIAA, así como todos los archivos fuentes creados para su diseño, deben conservar la autoría y condiciones de la Licencia BSD de la CIAA.

¿Puedo modificar la CIAA?

. Un usuario o empresa cualquiera puede bajarse los archivos fuentes del hardware o firmware de la CIAA, y modificarlos para luego usarlos en el desarrollo de su propios proyectos. Todos los archivos fuentes de la CIAA que se utilicen, con o sin modificaciones, deben conservar con la autoría y condiciones de la Licencia BSD de la CIAA.

¿Puedo comercializar desarrollos basados en la CIAA?

. Un usuario o empresa cualquiera puede utilizar y comercializar como parte de sus propios desarrollos los productos de hardware y firmware de la CIAA, con o sin modificaciones. Todos los archivos fuentes de la CIAA que se utilicen, con o sin modificaciones, deben conservar con la autoría y condiciones de la Licencia BSD de la CIAA.

¿Qué es el CIAA-Hardware?

El CIAA-Hardware comprende los componentes físicos de la computadora industrial, dispositivos electrónicos, características eléctricas e interfaces de comunicación.

¿Para qué sirve el jumper JP15 en la CIAA-NXP o su equivalente JP5 en la EDU-CIAA-NXP?

Es utilizado para forzar la reprogramación de la CIAA evitando que arranque desde la flash. Ver más abajo ¿Cómo hago para reprogramar la CIAA-NXP o EDU-CIAA-NXP cuando no responde?.


¿Qué es el CIAA-Firmware?

El CIAA-Firmware es el programa que se ejecuta en la CPU del microcontrolador de la CIAA, que comprende los módulos de código de programas para realizar una aplicación determinada, e interactúa directamente con los periféricos internos y otros componentes físicos de la computadora industrial, dispositivos electrónicos, e interfaces de comunicación.

¿Dónde puedo obtener el CIAA-Firmware?

Todo el código desarrollado para el CIAA-Firmware se mantiene en un repositorio de GitHub: https://github.com/ciaa/Firmware
Si nunca usó GitHub puede empezar leyendo el siguiente Tutorial de GitHub.

¿Cómo puedo saber las cosas que puedo hacer con el make del firmware?

En una consola (linux o cygwin en windows) al posicionarse sobre la carpeta de firmware, hacer:

make help

¿Qué hago si tengo errores al compilar?

Verificar que el makefile.mine esté correctamente configurado, y revisar la información que arroja en una consola (linux o cygwin en windows) al posicionarse sobre la carpeta de firmware y hacer:

make info

¿Quisiera eliminar el firmware 'flasheado' en mi CIAA...como hago?

Teniendo el makefile.mine correctamente configurado, en una consola (linux o cygwin en windows) al posicionarse sobre la carpeta de firmware, hacer:

make erase

¿Como hago para compilar mi ejemplor de firmware y 'flasheado' en la CIAA?

Para hacer una prueba rápida por consola (linux o cygwin en windows), hay que posicionarse sobre la carpeta de firmware, teniendo previamente configurado el makefile.mine, y hacer:

make all  ☞  Compila todo el proyecto
make download  ☞  Abre el openocd, y graba el .axf en la CIAA

¿Si hago un cambio menor, debo recompilar todo de nuevo?

Generalmente no. Sólo hace falta compilar aquello que cambia. Si lo que se modifica es parte de nuestro proyecto, alcanza con haber hecho al menos una vez en una consola:

make all  ☞  Borra todo lo existente, genera el RTOS y Compila todo el proyecto

o

make clean_generate  ☞  Borra todo lo existente y genera el RTOS

Para luego sólo ser necesario hacer en cada cambio:

make ☞  Compilación incremental...sólo compila los cambios

Sólamente será necesario volver a generar el RTOS y recompilar todo, si se hacen cambios en el .OIL que configura el RTOS o en algún módulo de base del firmware.

¿Cómo hago para reprogramar la CIAA-NXP o EDU-CIAA-NXP cuando no responde?

Puede pasar (no es algo común) que ante un Firmware muy inestable la CIAA-NXP no pueda ser reprogramada mediante el OpenOCD como se hace normalmente. Bajo esta situación anormal, se puede forzar que el arranque NO sea desde la memoria flash (debido a la inestabilidad del firmware actual), sino que el procesador queda en espera de recibir el boot externamente. Esto se logra cerrando el jumper JP15 en la CIAA-NXP o JP5 en la EDU-CIAA-NXP, y luego se procede a reprogramar le CIAA-NXP con el OpenOCD de manera normal. Una vez reprogramada nuevamente con un firmware estable, puede abrirse el jumper para que el procesador arranque normalmente desde la memoria Flash. Los pasos en detalle serían:

  • Asegurate que la CIAA esté desenchufada.
  • Puentear el JP correspondiente (de manera permanente con estaño o momentaneo con algo metálico).
  • Conectar la CIAA (manteniendo el puente cerrado).
  • Soltar JP (si se hizo con algo metálico de manera momentanea).
  • Ejecutar parado en el raíz del Firmware, el comando 'make erase'
  • Desenchufar la CIAA y soltar JP (si se hizo con estaño).

Si todo anduvo bien, se debería ver al final de la consola un texto similar a:“erased sectors 0 through 14 on flash bank 0 in 0.120510s”

¿Por qué CIAA-Firmware utiliza OSEK-OS como RTOS?

OSEK-OS fue creado por la industria automotriz, pero esa no es la razón para utilizarlo en CIAA-Firmware. La ventaja de OSEK-OS es que es un estándar y por ende existen muchas implementaciones. Hay implementaciones open source y cerradas, las hay con QM hasta SIL 3. Además de que hay muchas empresas que proveen soporte.

Al ser un estándar abierto, quien quiera es libre de usar el estándar, implementarlo, venderlo, comprarlo, etc. OSEK-OS nos genera la libertad de no dependencia.

El RTOS no compila y dice que falta un archivo *_Cfg.h

Estos archivos son generados en base a la configuración OIL. Debe recordar de correr

make generate

o en su defecto con un clean previo haciendo

make clean_generate

para que estos archivos sean generados.

Dice que operand type mismatch for `jmp'

Si aparece

./modules/rtos/src/Schedule.c: Assembler messages:

./modules/rtos/src/Schedule.c:169: Error: operand type mismatch for `jmp'

es porque estás compilando a 32 bits en una arquitectura de 64, tenés que corregir en Makefile.mine, que no está versionado y lo conseguís copiandolo de Makefile.config y modifican de

BOARD ?= ciaa_sim_ia32

a

BOARD ?= ciaa_sim_ia64

PHP Fatal error: Uncaught Error: Call to undefined function split() in Firmware/modules/rtos/generator

Esto es por tener instalado php 7 y estar usando algún branch donde se usa split() en lugar de explode(). En particular al usar release/1.0.x con nuevas distribuciones como Ubuntu 16.04

El siguiente comando corrige el código y es compatible con php 5.x

sed -i modules/rtos/generator/oilParser.php -e "s/split/explode/"

¿Qué es OIL?

OIL es OSEK Implementation Language, es un lenguaje de configuración para indicar al RTOS cuántas tareas hay, qué prioridades tienen, etc. Es parte del estándar. Normalmente, se encuentra el archivo .oil dentro de la carpeta 'etc' del proyecto.

¿Cuál branch de los módulos del Firmware corresponden a los releases, en particular 1.0.0?

En github hay una solapa donde hay branches y tags. Si en tags seleccionás el release y entrás en la carpeta modules, vas a ver que commit del módulo corresponde. Por ejemplo, para 1.0.0:

rtos@fdb5b7ba160d60d3065ebcf7cdc2de3464c3f115

modbus@05cec18fd210ff8f10f6d9689aff0def7d7bf11f

Luego te parás en cada módulo y ejecutás el git checkout correspondiente:

cd modules/rtos
git checkout fdb5b7ba160d60d3065ebcf7cdc2de3464c3f115
cd -
cd modules/modbus
git checkout 05cec18fd210ff8f10f6d9689aff0def7d7bf11f

Error al instalar OpenOCD

Si te aparece el siguiente error

=== configuring in jimtcl (/home/invap/ciaa-ide/openocd-0.9.0/jimtcl)
configure: running /bin/bash ./configure.gnu --disable-option-checking '--prefix=/usr/local'  '--enable-ftdi' --cache-file=/dev/null --srcdir=.
application-specific initialization failed: Can't find a usable init.tcl in the following directories: 
    /tmp/pabuild/tcl8.5.14/lib/tcl8.5 /opt/Xilinx/SDK/2015.2/bin/unwrapped/lib/tcl8.5 /opt/Xilinx/SDK/2015.2/bin/lib/tcl8.5 /opt/Xilinx/SDK/2015.2/bin/unwrapped/library /opt/Xilinx/SDK/2015.2/bin/library /opt/Xilinx/SDK/2015.2/bin/tcl8.5.14/library /opt/Xilinx/SDK/2015.2/tcl8.5.14/library


This probably means that Tcl wasn't installed properly.

invalid command name "clock"
    while executing
"clock millis"
    invoked from within
"set autosetup(start) [clock millis]"
    (file "/home/invap/ciaa-ide/openocd-0.9.0/jimtcl/autosetup/autosetup" line 937)
configure: error: ./configure.gnu failed for jimtcl

No está aún del todo confirmado pero puede ser que se arregle cambiando en openocd-0.9.0/jimtcl/autosetup/autosetup donde dice

set autosetup(start) [clock millis]

por

set autosetup(start) clock


¿Qué es el CIAA-Software-IDE?

El CIAA-Software-IDE es el entorno de desarrollo del CIAA-Firmware, que permite programar la CIAA usando lenguajes C/C++. El CIAA-Software-IDE ofrece a los desarrolladores un instalador con el cual podrán de forma sencilla instalar y configurar automáticamente la gran mayoría de las herramientas necesarias para trabajar con la CIAA.

¿Dónde puedo obtener el CIAA-Software-IDE?

Puede descargar la versión más completa del CIAA-IDE-Suite.

Problemas al instalar los Plug-In GNU-ARM-OpenOCD para eclipse en linux

Si al intentar descargar el plug-in de OpenODC nos aparece el siguiente error: “Cannot complete the install because one or more required items could not be found”, puede ser que la versión de eclipse no sea la actual,y este plug-in no funciona para versiones viejas. En la versión eclipse Kepler 4.3.2 funciona correctamente y el link de descarga es el siguiente:

https://eclipse.org/downloads/packages/release/Kepler/SR2

Al intentar debugear con OpenOCD usando el Eclipse figura el error: Cannot run program "C:\CIAA\cyqwin\usr\local\openocd\bin\openocd.exe": Launching failed

El IDE no encuentra el ejecutable del debugger OpenOCD, verificar que ${openocd_path}/${openocd_executable} esté apuntando al mismo. Este problema puede darse al utilizar una versión no actualizada del IDE, se recomienda instalar la última versión de la CIAA-IDE-Suite.

Al intentar debugear con OpenOCD usando el Eclipse figura en la consola el error: "Error: unable to open ftdi device with vid xxxx, pid xxxx"

Al trabajar en windows, asegurarse de reemplazar el driver del FTDI con la aplicación Zadig, como se indica en aqui

Falla al intentar reemplazar el driver con Zadig

Si Falla Zadig, mostrando el mensaje “The driver installation failed.” entonces intente bajando una versión anterior de Zadig en el siguiente link: http://sourceforge.net/projects/libwdi/files/zadig/zadig_v2.0.1.154.7z/download


¿Cómo generar los archivos de coordenadas X-Y de una plaqueta con kicad?

Es el archivo que Protel y DXP llaman de pick and place

En pcbnew vas a File > Fabrication Outputs > Footprint Position File, te genera dos archivos, uno por cada lado del PCB.

¿Cómo muevo una carpeta entre repositorios?

Falta depurar, pero esto más o menos sirve: https://github.com/ciaa/Firmware/pull/416

Es como se ha movido una carpeta de Firmware/modules/rtos, que es un subproyecto, a Firmware

faq.txt · Última modificación: 2016/11/19 17:59 por cpantelides