lunes, 1 de octubre de 2012

Primer sistema operativo para Raspberry Pi

Siguiendo el tutorial de la Universidad de Cambridge que mencionaba en otro post anterior (link), he instalado en mi máquina Windows lo siguiente:
- Yagarto tools: con herramientas accesorias pero necesarias como make, sh o touch.
- Yagarto GNU ARM toolchain: con el compilador cruzado ARM  EABI para el micro ARM1176JZF-S, que es la CPU que se encuentra en la placa Broadcom BCM2835 system on a chip (SoC) con el que está equipado la Raspberry Pi.
En los dos paquetes es importante no elegir rutas con espacios al instalar, porque sino podemos tener errores en el funcionamiento.
Existen también herramientas de compilación para Linux o Mac y puedes encontrar los detalles de las descargas en el tutorial.
Finalmente, he comenzado ha compilar los dos primeros ejemplos y el primero la verdad es que no me dio mucho juego, simplemente enciende el led de OK de la placa. En realidad no sabía si lo había encendido mi código o venía ya de serie...Por eso, el ejemplo 2 me dio más tranquilidad ya que se supone que después de cargarlo el led de OK comenzaría a parpadear y, efectivamente, después de subirlo a la placa ¡la luz parpadea!!
Comentar por último que para subir nuestro software a la Pi se necesita una tarjeta SD de al menos 2Gb con algún sistema operativo de los que trae la Pi de serie (link), ya que la forma de desplegar nuestro propio sistema operativo es sobrescribiendo el fichero kernel.img que viene en estos sistemas.


6 comentarios:

  1. Me esta volviendo loco el tema del led en ensamblador. ¿con que sistema operativo trabajas?, ¿como lo has hecho?. Yo ejecuto el código y no me hace nada, he hecho 1000 pruebas y nada, desesperado. Si me echas una mano te estaría muy agradacido

    ResponderEliminar
    Respuestas
    1. Cuando escribí esta entrada toda la compilación la hice con las herramientas Yagarto sobre Windows Vista y la verdad es que no tuve muchos problemas. Si estás desesperado te recomiendo lo siguiente:
      - Instala de nuevo la distribución Raspbian "Wheezy" desde la página de Raspberry en la tarjeta SD y verifica que puedes arrancar la Pi normalmente
      - Desde la página del tutorial de Cambridge descargate la solución completa para la lección 1 y compílala
      - En la tarjeta SD sustituye el fichero kernel.img por el que acabas de compilar
      Y finalmente arrancar la Pi de nuevo con la tarjeta SD ¡Seguro que funciona!

      Eliminar
  2. Muchas gracias, la probaré. Más que nada es que estoy teniendo problemas en cuanto compilo con RPI y no se porqué. Lo último que he conseguido es llegar a compilar sin errores, pero cuando intento ejecutar casca. Con C y línea de comandos no he tenido problemas.
    Estoy haciendo el proyecto final de carrera sobre esto y tengo en mente luego poner todos los códigos en sourceforge http://rpiplus.sourceforge.net, pero de momento no he colocado nada. Un saludo y gracias;
    Miguel

    ResponderEliminar
  3. te cuento, me he instalado todo en windows, lo he compilado a priori sin problemas (con make). Lo he llevado a la RPI y ahora como se ejecuta?, he probado a ir al directorio build, les he dado a los dos permisos de ejecución y los he ejecutado como root, pero no se ilumina nada (he probado todos los pines de la GPIO). Por otra parte, ¿que led es el que se debería iluminar?. Un saludo

    ResponderEliminar
  4. Para ejecutarlo tienes que hacer lo que te decía en mi respuesta anterior. Lo que compilas en un sistema operativo completo, muy simple, pero un SO. Copias el kernel.img a la tarjeta SD que ya tenga el booloader de la Raspbian y conectas la corriente. En unos segundos verás que se ilumina el LED de OK, que al menos en mi Pi modelo B está junto al de PWR. No verás nada más, ni se puede ejecutar desde la máquina donde se ha hecho la compilación, ni desde la Pi con el Linux corriendo. Hay que arrancar en frío con el nuevo kernel.
    De todas maneras si sigues teniendo problemas escribeme a antonio.royo en gmail punto com y comentamos más en detalle porque no me hago una idea clara de tus problemas mirando el site de RPI.

    ResponderEliminar
  5. ahhhhhhh, muchas, muchas y muchas gracias. Yo es que intentaba compilar directamente el ensamblador y luego ejecutarlo. Además, pensaba que el LED estaba conectado a través de los pines programables de la GPIO, de ahí que preguntara por el PIN. Básicamente, en mi proyecto final de carrera, lo que estoy haciendo es con la RPI programar en una protobard los pines de la GPIO para que se iluminen LEDs, recibir señales de botones, escribir en una pantalla LCD.... de momento lo tengo hecho en C y ahora quiero realizarlo en ensamblador. Luego quiero publicarlo todo en la web y dejar el código en sourceforge. Un saludo

    ResponderEliminar