Autor Tema: SoC, SBC y otros Sistemas Embebidos  (Leído 39983 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado manwenwe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2211
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #90 en: 16 de Noviembre de 2013, 19:13:24 »
Asegúrate de que la partición que le pasas al kernel para arrancar sea la correcta (root=/dev/mmcblk0p1 ó 2 etc. ).

Si no es esto puede ser que el kernel no soporte ext4, ahí tienes dos soluciones:

1. Reformatear el sistema de archivos en ext2. Peor solución ya que si no cierras bien el sistema siempre te acabarás cargando el sistema de archivos.
2. Habilitar ext3/ext4 en el kernel. Haz un "make menuconfig" y buscas esta opción. Luego yo haría un "make clean" antes de rehacer el kernel.

Un saludo y suerte!
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #91 en: 17 de Noviembre de 2013, 05:46:52 »
Asegúrate de que la partición que le pasas al kernel para arrancar sea la correcta (root=/dev/mmcblk0p1 ó 2 etc. ).

Si no es esto puede ser que el kernel no soporte ext4, ahí tienes dos soluciones:

1. Reformatear el sistema de archivos en ext2. Peor solución ya que si no cierras bien el sistema siempre te acabarás cargando el sistema de archivos.
2. Habilitar ext3/ext4 en el kernel. Haz un "make menuconfig" y buscas esta opción. Luego yo haría un "make clean" antes de rehacer el kernel.

Un saludo y suerte!


Que grande manwenwe!!  :-/  ya funciona, el problema era que había creado la partición en ext4, al pasarla a ext3 ya arranca.

Ahora debería estudiarme para que sirve cada opción de buildroot para crear una configuración aceptable ya que ahora mismo la que tengo funcionando no me detecta el ethernet (el usb si) y no reconoce muchos comandos como sudo, apt-get install y otros. Vamos que seguro que me he dejado muchas cosas por configurar.

Bueno, una vez visto el buidroot, creo que voy a volver a centrarme en el compilador cruzado. Instalaré la versión estandard de RPi y a probar el QT.

Tengo que decir que intente en varias ocasiones hacer una compilación de la configuración de Buildroot con las librerías de QT5 incluidas, pero me daba error...

Ya iré informando.


PD: Me he encontrado esta web googleando GNUBLIN parece que te fabrican SBC a medida... lo que me da la impresión de que son algo simples. Lo dejo como info por si a alguien le pueda interesar.

BitPIC

Desconectado manwenwe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2211
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #92 en: 17 de Noviembre de 2013, 08:02:40 »
Si quieres que te detecte todo el hardware de forma automática habilita udev en el menuconfig y recompila, eso sí: tardará en arrancar unos segundos más. La ethernet no se levanta sola si no lo tienes configurado. Con "ifconfig eth0 up" debería levantarse.

Suerte con Qt: esto no va a ser nada fácil.

suerte!

PD.: Si quieres un Sbc a medida ves preparando XXXXX€ jejeje.
« Última modificación: 17 de Noviembre de 2013, 08:48:12 por manwenwe »
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #93 en: 17 de Noviembre de 2013, 08:42:35 »
Enhorabuena por conseguirlo bitpic. Llevo leyendo el hilo desde su creación porque me parece muy interesante la experiencia con estos sistemas, de los que no tengo ni idea, pero creo que el destino me obligará a lidiar con ellos tarde o temprano.

A propósito, ¿qué significan las siglas SoC y SBC?

Desconectado manwenwe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2211
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #94 en: 17 de Noviembre de 2013, 08:51:27 »
A propósito, ¿qué significan las siglas SoC y SBC?

Mea culpa, ya lo corregí: no quería decir SoC sino SBC.

SoC: System On Chip (el processador).
SoM: System On Module (una placa con el procesador + RAM y pocas cosas, se monta en una carrier board).
Carrier board: La placa base dónde se monta un SoM (lleva los perifericos y conectores).
SBC: Single Board Computer (SoM + Carrier en una sola placa, un pc completo).
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #95 en: 17 de Noviembre de 2013, 13:52:31 »
Hola Nocturno, Gracias, pero estoy iniciándome, todavía me queda mucho por aprender. Aquí quien sabe es manwenwe, a ver si un día que tenga tiempo nos deleita con un proyecto suyo  :P. Yo voy haciendo y siguiendo sus consejos  :D

La idea de los SBC y SOM es tener un PC en nuestro sistema y hacer el control de TFT con touch, comunicaciones a través de la red, gestiones de ficheros con memoria USB, SD, etc más fácil que hacerlo con un microcontrolador. Digamos que sería más o menos como hacer un programa para PC.

Eso si, es más fácil porque el programa en si es como si programases en C o C++, pero arrancar el sistema y conseguir que todo funcione es lo complicado (al menos es mi experiencia hasta ahora).

Yo he estado trasteando estos días con el Buildroot que es un configurador del SO que instalas dentro de la SBC o SOM, pero en principio el fabricante debería darte un SO preparado para tu tarjeta. Esto lo he hecho más que nada para entender un poco el funcionamiento del Buildroot por si un día quiero configurar mi SO a medida.

O sea, que en principio en lo que nos deberíamos centrar es en hacer una compilación cruzada entre una IDE tipo QT o Eclipse para crear un programa en nuestro PC y ejecutarlo en la SBC o SOM.

Yo voy a probar con QT porque varía gente de este foro me lo ha recomendado y porque te permite hacer interfaz gráfica de manera más sencilla que con Eclipse.

A ver si esta semana que entra consigo hacer la compilación cruzada con QT y un RPi. En cuanto tenga un poco controlado esto seguramente intente hacerme con una SOM con carrier board para intentar dominarla y luego portarla a alguna carrier board que me haga yo, pero eso ya se vera, todavía queda un largo camino  :lol:.

Manwenwe una pregunta: ¿Hacer la compilación cruzada con QT es siempre tan complejo o es solo con la RPi?

Saludos!!
BitPIC

Desconectado manwenwe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2211
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #96 en: 17 de Noviembre de 2013, 16:15:10 »
No sabría que decirte bitpic. Yo es que solo trasteo con el kernel y con u-boot ya que como diseño yo el hardware es más fácil para mi lo de tocar los registros y cortar/pegar código: parecido a lo que se hace con un PIC. Y me lo dan todo ya configurado.

Mi socio es el que programa. Creo que compilar en Qt para ARM no es demasiado dificil. Lo jodido es instalar Qt con todos los complementos: que QML vaya acelerado por hardware, que funcionen todos codecs, etc. En esto si lo he visto tirarse dias: y eso que tiene muchos años de experiencia en Linux.  
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #97 en: 22 de Noviembre de 2013, 17:46:48 »
Bueno yo sigo con lo mio, no he parado (aunque no dispongo de todo el tiempo que me gustaría)

Antes de nada decir que plantea999 ha conseguido hacer compilación cruzada desde windows. Dejo aquí el link porque esta muy interesante Compilación cruzada desde Windows

A ver si consigo hacerlo funcionar para poner un tutorial de como hacerlo desde Ubuntu.

Ahora estoy encallado con la compilación de librerias de QT para ARM. Para compilarlas para ARM hago lo siguiente:

Código: [Seleccionar]
./configure -embedded arm -little-endian -xplatform qws/linux-arm-gnueabi-g++
Parece que todo el proceso va bien, luego hago un make y un make install. Pero el problema me surge en el QTCreator.

Cuando voy a definir el compilador y el qmake, me dice que el qmake es para x86 y no para arm


Como podéis ver el ABI me lo define como x86-linux-generic-elf-64bit y todo lo demás (qmake, QT_HOST...) como arm. Aunque tengo que decir que el directorio de qmake es uno y el de los QT_HOST_... es otro, no se si esto es normal.

Creo que es un problema, pero como soy principiante no estoy del todo seguro ¿Alguien sabe si esto es normal o no? ¿Como puedo solucionarlo?

La cuestión es que si lo dejo el ABI en x86 no puedo crear el Kit porque me dice que el compilador es para ARM y que el qmake es para x86 y no son compatibles.

 :(
BitPIC

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #98 en: 23 de Noviembre de 2013, 16:00:13 »



A mi también me da un error de ese tipo, pero no es más que un warning, me compila perfectamente, ya lo tengo todo resuelto y me funciona al 100% con RPI, solo tengo un problemilla de librerias con BBB, pero lo fundamental me va bien.

Lo importante es que tengas bien configurado el Compilador, la versión de QT y el Kit, con las vías de acceso correctas al compilador cruzado y a las librerías. No le hagas mucho caso al ABI, puedes editarlo y poner practicamente lo que quieras, debe de ser algo meramente informativo.



Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #99 en: 24 de Noviembre de 2013, 14:01:45 »
Bueno he avanzado algo  :-/

He conseguido compilar las librerias sin errores. Antes tenía ese problema por que me daba dos errores al compilar las librerías.
El problema era que no había definido correctamente la ruta del compilador dentro del archivo qmake.conf que he creado para la RPi.

Ahora QT me reconoce correctamente el qmake y me aparece como "Qt version 4.8.5 for Embedded Linux"



Puedo crear bien el Kit de QT y me compila, aunque no me conecta por SSH directamente el QT para  enviar el programa a la RPi. Tengo configurado el dispositivo en las opciones de QT para que conecte con la RPi por SSH y haciendo un test manual conecta correctamente, pero por alguna razón todavía no conecta automaticamente para enviar el programa. Me lo mirare tranquilamente.

He compilado, parece que funciona bien, y he subido el programa por SSH a mano, pero al tratar de ejecutarlo en la RPi me da un error de "Violación de segmento"  :o

Por su puesto algo mal he hecho o me he dejado algo por configurar, pero tengo que averiguar el qué todavía. Si alguien tiene alguna idea será bien venida  :)

BitPIC

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #100 en: 24 de Noviembre de 2013, 21:03:41 »
Puedo crear bien el Kit de QT y me compila, aunque no me conecta por SSH directamente el QT para  enviar el programa a la RPi. Tengo configurado el dispositivo en las opciones de QT para que conecte con la RPi por SSH y haciendo un test manual conecta correctamente, pero por alguna razón todavía no conecta automaticamente para enviar el programa. Me lo mirare tranquilamente.

Yo tampoco he conseguido, por el momento, configurar el Deployment del Run Settings, para que QT suba automáticamente el binario compilado, nada más terminar la compilación, además sin esa configuración creo que tampoco se puede hacer Debug, porque los dos iconos para Ejecutar y Ejecutar con Debug aparecen apagados.


Citar
He compilado, parece que funciona bien, y he subido el programa por SSH a mano, pero al tratar de ejecutarlo en la RPi me da un error de "Violación de segmento"  :o
Por su puesto algo mal he hecho o me he dejado algo por configurar, pero tengo que averiguar el qué todavía. Si alguien tiene alguna idea será bien venida  :)

Comprueba que las librerías y cabeceras sean exactamente las mismas en el PC y en la placa, o aunque compile en el PC, luego casca al intentar ejecutar el binario en la placa, a mi me está pasando con la BBB, porque hay una librería compartida con un nombre distinto, y aunque he sincronizado PC y BBB, el problema es al contrario, hay una librería de QT en el PC, que en la BBB tiene añadida una E como sufijo al nombre.

 

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #101 en: 25 de Noviembre de 2013, 10:26:12 »

Puedo crear bien el Kit de QT y me compila, aunque no me conecta por SSH directamente el QT para  enviar el programa a la RPi. Tengo configurado el dispositivo en las opciones de QT para que conecte con la RPi por SSH y haciendo un test manual conecta correctamente, pero por alguna razón todavía no conecta automaticamente para enviar el programa. Me lo mirare tranquilamente.


Acabo de resolver ese tema, después de darle mil vueltas y buscar parámetros por todos los lados, lo he probado y va de narices, ahora ya sube automáticamente el ejecutable a la RPI tras la compilación y también hace debug. En un ratillo subo la solución al post que he abierto para QT con Windows, creo que te funcionará igual en Linux.

Lo que me ha llamado la atención, es que el ejecutable cuando lo ruedas desde Qt, el formulario y los botones se muestran en la pantalla que tengo conectada al RPI, no en la pantalla del PC, con VisualGDB es al revés, cuando ruedas el ejecutable desde Visual Studio, el formulario y los botones del programa salen en la pantalla del PC, que curioso.

También he conseguido una parametrización mejor de qmake, para que se pueda usar el que crea QT por omisión en el proyecto.
La verdad es que esto de Qt con RPI o BBB, va de cojones. Lo próximo que quiero hacer es pincharle unos LED al GPIO y hacer un programita sencillo con varios botones en pantalla que enciendan los led con varias secuencias.

 :-/ :-/

« Última modificación: 25 de Noviembre de 2013, 10:30:13 por planeta9999 »

Desconectado bitpic

  • PIC18
  • ****
  • Mensajes: 402
    • BitPIC
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #102 en: 25 de Noviembre de 2013, 12:05:58 »
Que bueno planeta999! Me alegro por todos los avances que has hecho en tan poco tiempo.

Ahora estoy trabajando, pero en cuanto llegue a casa si tengo tiempo pruebo lo de las librerías
 
Viendo lo que has conseguido en tan poco tiempo en windows estoy por volver a él porque en Linux me estoy volviendo loco  :D. Además que los demás IDEs y herramientas que uso los tengo en windows.

Una cosa, veo que con el GNUTOOLCHAINS dependes un poco de SysProg en cuanto a compilador GCC. Mi idea principal para iniciarme en el mundo QT era para aprender a programar SOM y SBC de uso profesional.

Me surgen las siguientes dudas:

¿Es posible desde windows programar una SBC o SOM profesional con las herramientas que has usado en windows?
¿El compilador es genérico para todas lass SBC o SOM o hay que usar uno especifico que proporcionará el fabricante?
¿Los toolchais que ofrece Sysprog sirven para gran cantidad de SBC y SOM o es un poco limitado?


Como hasta ahora lo estoy haciendo todo a mano en Linux supongo que más o menos la complejidad será parecida, pero si con las toolchais de Sysprog tienes un buen abanico de opciones me plantearía usar de momento esas herramientas por la facilidad de uso.

Quizá alguien con experiencia en estas tarjetas nos pueda iluminar mejor, pero cuando me pongo a mirar manuales de TARGETs profesionales como por ejemplo el de este link Manual ves que es bastante complejo iniciarse y te planteas si es necesario comerse tanto la cabeza...

Buenso pongo aquí un resumen de lo aprendido hasta ahora, a ver si van quedando claras las ideas:

HOST:
- Instalar QT
- Instalar compilador GCC para correr en tu TARGET
- Instalar las librerías QT Embedded
- Configurar el qmake con los parámetros de tu TARGET y las librerías GCC que vas a usar (Especificar directorios de las librerías GCC correctamente)
- Configurar en QT el compilador y el qmake de tu TARGET y crear el KIT

TARGET:
- Instalar librerías GCC en el mismo directorio que en el HOST
- Instalar librerías QT Embedded en el mismo directorio que en el HOST

- Y por ultimo crear tu aplicación en el HOST y transferirlo al TARGET.


BitPIC

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #103 en: 26 de Noviembre de 2013, 11:53:52 »
Viendo lo que has conseguido en tan poco tiempo en windows estoy por volver a él porque en Linux me estoy volviendo loco  :D. Además que los demás IDEs y herramientas que uso los tengo en windows.

A mi ya me funciona al 100% bajo Windows, si no eres linuxero, vale la pena seguir con Windows.
 

Citar
Una cosa, veo que con el GNUTOOLCHAINS dependes un poco de SysProg en cuanto a compilador GCC. Mi idea principal para iniciarme en el mundo QT era para aprender a programar SOM y SBC de uso profesional.


No, que va, no dependes para nada de Sysprogs, date cuenta de que lo que facilita Sysprogs son realmente "instaladores", ellos han cogido todo el software gratuito (GCC, GDB y Binutils), lo han empaquetado y han creado un instalador, para facilitar la tarea de instalarlo todo del tirón, pero TODAS las herramientas las puedes conseguir individualmente en las web correspondientes, y totalmente gratis.

Por ejemplo GCC para ARM que también incluye GDB (gestor para hacer Debug), lo tienes en esta web: https://launchpad.net/linaro-toolchain-binaries
De hecho el instalador de Sysprogs te está instalando la versión 4.6.3 de GCC, cuando la versión actual ya va por la 4.8.2, quiero bajarla y probarla para tener siempre la última versión.

Y en cuanto al QTCrosstool, no es más que un programa que conecta con la tarjeta por SSH y se descarga al PC, varios directorios de usuario, para tenerlos sincronizados, eso mismo lo puedes hacer a mano conectando con Smartty, Putty o cualquier otro programa con soporte SSH, y bajarte archivos o directorios completos.


Citar
Me surgen las siguientes dudas:

¿Es posible desde windows programar una SBC o SOM profesional con las herramientas que has usado en windows?

Seguro que si, solo tienes que conseguir el compilador adecuado, a mi me parece que GNU GCC para ARM, soporta todos los procesadores ARM, y si sale alguno nuevo, lo van añadiendo en nuevas versiones del compilador. Por ejemplo, he visto en la web de Sysprogs, que también facilitan un instalador del Toolchain para los STM32, lo quiero probar porque me parece que con Qt también se podrían trabajar con estos micros, el entorno es muy cómodo e infinitamente más fácil de configurar que Eclipse.
 
No creo que los fabricantes de micros, se dediquen a diseñar compiladores, creando productos cerrados que les van a matar el mercado.


Citar
¿El compilador es genérico para todas lass SBC o SOM o hay que usar uno especifico que proporcionará el fabricante?

No se ahora mismo que familias de micros ARM soporta GCC, por ejemplo la versión ARM Embedded soporta Cortex-M0/M0+/M3/M4, Cortex-R4/R5/R7, y el linaro soporta seguro los SOC de la RPI y la BBB. Tengo la sensación de que cualquier micro ARM, se puede trabajar con GCC.


Citar
¿Los toolchais que ofrece Sysprog sirven para gran cantidad de SBC y SOM o es un poco limitado?

Sysprogs, como he comentado, lo que facilita son instaladores de toolchains que incluyen GCC, GDB y Binutils, puedes prescindir de esos instaladores e instalar manualmente cada producto por separado, aquí tienes compiladores GCC  ARM para varias plataformas:
https://launchpad.net/linaro-toolchain-binaries
https://launchpad.net/gcc-arm-embedded

Las Binutils: http://www.gnu.org/software/binutils/
Make: http://www.gnu.org/software/make/




Citar
Como hasta ahora lo estoy haciendo todo a mano en Linux supongo que más o menos la complejidad será parecida, pero si con las toolchais de Sysprog tienes un buen abanico de opciones me plantearía usar de momento esas herramientas por la facilidad de uso.

Para la instalación inicial es lo ideal, te lo dan todo mascado, si luego quieres actualizar a versiones más actuales, ya habrá que ir a las web de cada proyecto (GCC, GDB, Binutils, Qmake, Make).


Citar
Buenso pongo aquí un resumen de lo aprendido hasta ahora, a ver si van quedando claras las ideas:

HOST:
- Instalar QT
- Instalar compilador GCC para correr en tu TARGET
- Instalar las librerías QT Embedded
- Configurar el qmake con los parámetros de tu TARGET y las librerías GCC que vas a usar (Especificar directorios de las librerías GCC correctamente)
- Configurar en QT el compilador y el qmake de tu TARGET y crear el KIT

TARGET:
- Instalar librerías GCC en el mismo directorio que en el HOST
- Instalar librerías QT Embedded en el mismo directorio que en el HOST

- Y por ultimo crear tu aplicación en el HOST y transferirlo al TARGET.


En el kit también tienes que definir el path de mkspecs, para que el compilador encuentre el qmake.conf adecuado, y en el proyecto (archivo .pro) hay que definir unos parámetros para que funcione el deployment para el vuelco automático del binario a la tarjeta y para el Debug.

Por cierto, ayer estuve probando el Debug, y va de fábula.
« Última modificación: 26 de Noviembre de 2013, 12:21:59 por planeta9999 »

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re: SoC, SBC y otros Sistemas Embebidos
« Respuesta #104 en: 26 de Noviembre de 2013, 22:25:55 »


Si quieres probar lo del traspaso automático del programa compilado desde Qt a la RPI y el Debug, acabo de añadirlo en el manual que he posteado, también he hecho algunos cambios en la configuración del kit para el make y el qmake. http://www.todopic.com.ar/foros/index.php?topic=41770.msg347539;topicseen#msg347539

Yo creo que te funcionará igual en Linux, pero si prefieres hacerlo en Windows, ya va todo al 100%. Mi próximo reto es conseguir que Qt también pueda compilar para los ARM STM32 de la Discovery.






 

anything