Re: [CIAA-Firmware] Re: Reorganizacion wiki: caso 1

30 views
Skip to first unread message

Eric Pernia

unread,
Jul 17, 2016, 8:12:20 PM7/17/16
to Carlos Pantelides, CIAA-Firmware, ciaa-ide, ciaa-h...@googlegroups.com, ciaa-linux, CIAA-Software-PLC
Para todos necesitas OpenOCD para aunque sea para bajar un primer programa.

Creo que habría que reorganizar para que el iniciar con la CIAA tenga una guia de instalación con los siguientes pasos:

1 - Elegir sistema operativo
  • Windows
  • Linux
  • Mac OS X
2 - Instalar las herramientas base:
  • Windows
    • Bajar CIAA Suite.
    • Instalar CIAA Suite <1>
    • Cambiar driver con Zadig <2>
    • Probar que funcione desde Cygwin. <3>
  • Linux
    • Bajar e instalar el toolchain (compilador + debugger arm)
    • Bajar e instalar el programa para debug (openOCD)
    • Bajar o clonar el Firmware, recomendar el UPA 1.0.0 o ultimo RELEASE del momento y no el master.
    • Probar que funcione desde Terminal. <3>
  • Mac OS X
    • Bajar e instalar el toolchain (compilador + debugger arm)
    • Bajar e instalar el programa para debug (openOCD)
    • Bajar o clonar el Firmware, recomendar el UPA 1.0.0 o ultimo RELEASE del momento y no el master.
    • Probar que funcione desde Terminal. <3>
    • Ver pasos adicionales Mac.


<1> Aca tenemos que sacar una versión nueva con IDE4PLC nuevo y Firmware 1.0.0 UPA con la modificación del oilParser.php.
<2> Este paso lo queremos ahorrar con el Product ID y Vendor ID que pedimos.
<3> Acá sin ofender tenemos que buscar un ejemplo mucho más simple para arrancar, propongo un blinking bare-metal SIN OSEK. Yo me encargo de armarlo. Asuste mucho el OSEK para arrancar. Ya bastante fiera es la isntalaci{on de estas cosas para alguien que no sabe.

3 - Ahora que probaste que funcionan las herramientas base para programar en C podes seguir en C instalándote las herramientas para programar de forma más sencilla o usar los diferentes lenguajes:
  • Windows
  • Programar la CIAA en lenguaje C/C++ con CIAA-Software-IDE (basado en Eclipse).
    • Configurar Eclipse.
    • Probar Debugger.
    • Formas de programar en C:
      • Bare-Metal
        • Con Biblioteca del Fabricante
        • Con sAPI.
      • Con RTOS FreeOSEK.
        • Con Posix.
        • Con HISIO.
        • Con sAPI. (proximamente)
  • Programar la CIAA en lenguaje Snap! utilizando Firmata4CIAA. Snap! es un lenguaje gráfico similar Scratch, recomendado para quien nunca programó.
    • Pasos.
  • Programar la CIAA en lenguaje LADDER con IDE4PLC (usá la CIAA como PLC).
    • Pasos.
  • Programar la CIAA en lenguaje Python con MicroPython (programación orientada a objetos).
    • Pasos.
  • Programar la CIAA en lenguaje Java (programación orientada a objetos) con CIAA-Java-IDE (basado en Eclipse) y HVM (Hardware near Virtual Machine).
    • Pasos.
  • Linux
    • Descargar Eclipse.
    • Configurar Eclipse.
    • Probar Debugger.
      • Formas de programar en C:
      • Bare-Metal
        • Con Biblioteca del Fabricante
        • Con sAPI.
      • Con RTOS FreeOSEK.
        • Con Posix.
        • Con HISIO.
        • Con sAPI. (proximamente)
    • Programar la CIAA en lenguaje Snap! utilizando Firmata4CIAA. Snap! es un lenguaje gráfico similar Scratch, recomendado para quien nunca programó.
      • Pasos.
    • Programar la CIAA en lenguaje LADDER con IDE4PLC (usá la CIAA como PLC).
      • Pasos.
    • Programar la CIAA en lenguaje Python con MicroPython (programación orientada a objetos).
      • Pasos.
    • Programar la CIAA en lenguaje Java (programación orientada a objetos) con CIAA-Java-IDE (basado en Eclipse) y HVM (Hardware near Virtual Machine).
      • Pasos.
  • Mac OS X
    • Descargar Eclipse.
    • Configurar Eclipse.
    • Probar Debugger.
    • Formas de programar en C:
      • Bare-Metal
        • Con Biblioteca del Fabricante
        • Con sAPI.
      • Con RTOS FreeOSEK.
        • Con Posix.
        • Con HISIO.
        • Con sAPI. (proximamente)
    • Programar la CIAA en lenguaje Snap! utilizando Firmata4CIAA. Snap! es un lenguaje gráfico similar Scratch, recomendado para quien nunca programó.
      • Pasos.
    • Programar la CIAA en lenguaje LADDER con IDE4PLC (usá la CIAA como PLC).
      • Pasos.
    • Programar la CIAA en lenguaje Python con MicroPython (programación orientada a objetos).
      • Pasos.
    • Programar la CIAA en lenguaje Java (programación orientada a objetos) con CIAA-Java-IDE (basado en Eclipse) y HVM (Hardware near Virtual Machine).
      • Pasos.

En 2 y 3 ya estarian dentro del sistema operativo correspondiente.


Saludos.
Eric.


El 15 de julio de 2016, 12:32, Carlos Pantelides <carlos.p...@gmail.com> escribió:
Consultitas:

Necesito que me controlen y completen algunos conceptos y nombres en la siguiente idea alrededor de la cual quiero articular la comunicación con las placas en terminos de download y debug, quitándole el foco a openocd como es actualmente.


*) Lo que está entre paréntesis no es parte del texto.

*) Los [] son para agrupar salvo cuando tienen números.

*) Sé que estoy preguntando cosas que normalmente se aprenden en meses, así que vale links en lugar de respuestas concretas, pero valoro mucho las respuestas concretas pues querría terminar esto en días, jajaja, sin descuidar el aprendizaje, claro.


INICIO

La "programación/comunicación"[1] (en términos de download y debug, no de los programas o de los datos en si ) de las placas CIAA se efectúa mediante la "interfaz" jtag, (que para dummies es ...?)

Cuando se ejecuta un programa, este se puede comunicar con una pc tambien vía usb, [ "compartiendo" la conexión ]/ [simultáneamente en el mismo cable/interfaz[2]]

Tanto el uso de jtag como la comunicación serial se hace por usb [3], requiere de que el sistema operativo tenga los drivers apropiados (en windows hay que instalar tales, en linux ya están, en mac hay que ...)

Para el download y debug, se utliza openocd (que se instala así en cada plataforma) (se usa así básico, si tanto te interesa, openocd.org)

(a futuro: para la comunicacion se puede usar ...., la sAPI uart, etc)

[1]¿Hay otras actuales o previstas? o sea,  es "la programación" o "una de las maneras de programar", leí por ahí que picociaa tiene otra manera o es la misma pero sobre pci-express con openocd tambien?

[2] entiendo  que el ft2232h se "ve" como dos dispositivos usb, sólo que no sé como decirlo lindo, simple y correcto

[3] lo que nos lleva a las instrucciones de conexión http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=repo:conexion:edu_ciaa_nxp
FIN

Los bloques resultantes permitarán documentar estos escenarios:


*) Para meterle programas a la placa tenes que instalar openocd que requiere los drivers.

*) Para usar micropython alcanza con los drivers, pero necesitás openocd para instalar el "agente"

*) Para usar snap lo mismo, no?

*) Para debuggear tus programas tenés que instalar openocd que requiere los drivers y el plugin de eclipse.




2016-07-14 15:47 GMT-03:00 Carlos Pantelides <carlos.p...@gmail.com>:
me va a llevar un ratito, pues estoy entendiendo que por un lado está la instalación de openocd y por el otro los drivers, que actualmente está un poco mezclada.

en una guia de primeros pasos hacen falta las dos, pero en la de python entiendo que sólo la de drivers, pues no usa openocd

en linux no hay drivers

para mac hay una conversación en curso que puedo agregar relativa a drivers

me debato entre:

1) hacer la documentación más precisa, separando claramente "drivers" de "openocd"

2) simplicar manteniendo "drivers" dentro de "openocd", pero instalaría innecesariamente openocd para python

me inclino por 2, igual siempre se puede modificar




2016-07-14 15:14 GMT-03:00 Carlos Pantelides <carlos.p...@gmail.com>:
ok, no se asusten, no voy a preguntar por cada cambio, sólo algunos que me parezcan especialmente significativos

2016-07-14 14:07 GMT-03:00 Ernesto Gigliotti <ernestog...@gmail.com>:
Por mi parte me parece bien reemplazar en 
http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:edu-ciaa:edu-ciaa-nxp:python:comenzar_programar 

 esto:

Instalación de driver para windows

  1. Ingresamos a la página del driver del chip ftdi
  2. En la tabla que aparece en la página, seleccionamos la versión de 32 o 64 bits para Windows.
  3. Descargamos y descromprimimos el archivo ZIP en una ruta conocida (Por ejemplo Mis Documentos)
  4. Conectar la placa y esperar a que Windows comience el proceso de instalación del driver del dispositivo detectado. La instalación fallará.
  5. Click en INICIO → Panel de Control
  6. Dentro del panel de control seleccionamos “Sistema” y luego “Administrador de dispositivos”
  7. Dentro de la categoría “Puertos (COM y LTP)” aparecerán dos puertos “USB serial port” en conflicto.
  8. Hacemos click derecho sobre el primero de los puertos y elegimos “Actualizar software de controlador”
  9. Seleccionamos la opción “Buscar software de controlador en el equipo”
  10. Por último seleccionamos el botón examinar y seleccionamos la carpeta que descomprimimos con el driver. Tildamos el check “Incluir subcarpetas” y presionamos “Siguiente”
  11. Windows instalará el driver correspondiente y aparecerán los dos puertos COM virtuales listos para funcionar.
Por un link a una seccion de "Instalacion de driver para windows" 

saludos!
ernesto


El 14 de julio de 2016, 12:47, Carlos Pantelides <carlos.p...@gmail.com> escribió:
Hola Egigliotti, Nrequejo y Jcecconi


En al menos tres lugares hay instrucciones de instalación de drivers, ¿ok que cree un bloque utilizando la versión con capturas y lo utilice en al menos las siguientes páginas?

http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:edu-ciaa:edu-ciaa-nxp:python:comenzar_programar egigliotti

http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=docu:fw:bm:ide:install

nrequejo

http://www.proyecto-ciaa.com.ar/devwiki/doku.php?id=desarrollo:firmware:instalacion_sw 
jcecconi

Me dirijo a ustedes tres sacándolos del historial, pero que opine quien quiera.

Carlos




--
Has recibido este mensaje porque estás suscrito al grupo "CIAA-Firmware" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a ciaa-firmwar...@googlegroups.com.
Visita este grupo en https://groups.google.com/group/ciaa-firmware.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

Carlos Pantelides

unread,
Jul 17, 2016, 8:38:29 PM7/17/16
to Eric Pernia, CIAA-Firmware, ciaa-ide, ciaa-h...@googlegroups.com, ciaa-linux, CIAA-Software-PLC
Muchas gracias Eric por el trabajo de organizar esta visión. Muy sensato "Para todos necesitas OpenOCD para aunque sea para bajar un primer programa.". Me pongo estas semanas a armar los bloques que permitan armar así las guías.

Y como alumno, de acuerdo con "un blinking bare-metal SIN OSEK", no es que asuste, es que es magia, requiere un salto de fé.


--
--
Carlos Pantelides
@dev4sec
http://seguridad-agile.blogspot.com/

Eric Pernia

unread,
Jul 17, 2016, 8:53:41 PM7/17/16
to Carlos Pantelides, CIAA-Firmware, ciaa-ide, ciaa-h...@googlegroups.com, ciaa-linux, CIAA-Software-PLC
Al contrario, gracias a vos por tomarte todo este laburo!




Carlos Pantelides

unread,
Jul 18, 2016, 9:17:57 PM7/18/16
to Eric Pernia, CIAA-Firmware, ciaa-ide, ciaa-h...@googlegroups.com, ciaa-linux, CIAA-Software-PLC
Éric,

ya que estás considerando   propongo un blinking bare-metal SIN OSEK. , no sé si ya lo han considerado en conversaciones previas: quizás, quizás, estaría bueno que el blinking que quede, el que se graba en las placas nuevas, esté transmitiendo algo por uart. De este modo, blinking te dice que la placa anda y la terminal que te estás pudiendo comunicar, ya tenés otro diagnóstico inicial cubierto. No me ofrezco a hacerlo al menos a la brevedad pues el que mucho abarca poco aprieta, pero me imagino que varios de mis compañeros de curso también ya están en condiciones de hacerlo.

Saludos
Reply all
Reply to author
Forward
0 new messages