¿Cómo programar una placa BeagleBone?

4

Hasta ahora he usado Microchip PIC, para programar este microprocesador hay un MPLAB. Me gustaría dar un paso adelante y aprender sobre otros microcontroladores.

El BeagleBone Black me pareció tranquilo para mi proyecto de bricolaje porque hay un flash de 2GB y un reloj de 1GHz. Tengo algunas preguntas como principiante: En el eewiki encontré un tutorial donde describen cómo comenzar, pero este tutorial se basa en SD tarjeta. Si quiero usar solo la tarjeta flash de 2GB, ¿cómo puedo cargar mi software en ella sin usar la tarjeta SD?

Vi en esa página que hay un gestor de arranque (UBoot), ¿para qué es esto? Por ejemplo, solo quiero parpadear un led, usando PIC es una línea de código que subo y eso es todo. Si quisiera hacer lo mismo con un BeagleBone Black, ¿qué debo hacer? ¿Necesito UBoot? ¿Cómo puedo escribir este fragmento de código en el eMMC de BeagleBone?

Si tengo una placa sin ningún software precargado (incluido el cargador de arranque), ¿cómo puedo empezar a cargar un software?

    
pregunta OHLÁLÁ

3 respuestas

6

El procesador del BeagleBone no es un microcontrolador, sino un microprocesador (el Sitara AM3359 de Texas Instruments), que no tiene memoria no volátil en el procesador en sí, sino que intenta cargar programas (como un OS) en la RAM a través de una interfaz de comunicaciones (UART, USB, Ethernet) o desde una memoria externa (FLash o tarjeta de memoria). El proceso de inicialización / arranque para este procesador se describe en detalle a partir de la página 4667 de manual de referencia técnica .

Parece que este último (arranque desde un dispositivo de memoria) es el caso de BeagleBone, lo que significa que puede "programar" el BeagleBoard cambiando el contenido del Flash incorporado (eMMC) o forzándolo a arranque desde la tarjeta microSD . De su documentación no queda muy claro lo fácil o difícil que es crear sus propias imágenes de memoria (para la tarjeta SD o el eMMC). Sospecho que no es trivial.

    
respondido por el fm_andreas
2

La forma más fácil de hacer parpadear un LED será escribir un programa y ejecutarlo en el espacio de usuario en Linux. El GPIO debe estar expuesto como archivos en el sistema de archivos, que puede abrir y manipular desde un programa de espacio de usuario, por ejemplo. Un simple programa en C. Podría desarrollar este programa en su PC, compilarlo de forma cruzada y enviarlo al destino y luego ejecutarlo.

O alternativamente, puede intentar escribir un programa en el "metal" para hacer el cambio, es decir, escribir un reemplazo para U-BOOT. Sin embargo, esto sería mucho más trabajo, ya que tendría que inicializar todos los periféricos, pero se podría hacer.

    
respondido por el fred basset
2

En su primera ejecución, el BeagleBone Black no tiene stage1, no stage2 ( U-boot funciona principalmente como un stage2, solo proporciona un stage1, el programa secundario Loader o SPL, pero la mayor parte del trabajo se realiza en el programa secundario ).

Cuando se envía, tiene un SPL, U-boot y linux en su eMMC. ¿Cómo fue flasheado? Probablemente esté usando USB: vea 26.1.8.6 Procedimiento de arranque USB . Un procesador puede arrancar en varios modos de arranque. En el arranque USB, puede cargar un software en la memoria SRAM interna. La memoria RAM interna es 64kB grande (1kB está reservado). El SPL se carga y se ejecuta en la memoria RAM interna. Mientras que el SPL busca el arranque U en eMMC, el stage1 utilizado en la producción probablemente reciba otro programa mediante USB (por lo que puede ejecutar Linux sin usar eMMC o tarjeta SD, y luego actualizar el eMMC con el programa final). El stage1 puede hacer lo que quieras, siempre que quepa en 64kB (instrucciones + datos).

Por lo tanto, si desea hacer que parpadee un LED, puede simplemente escribir un stage1 que realice esto, pero tenga en cuenta que es un uso ineficiente de una placa de corteza-A.

Vinculé el procedimiento de arranque USB, pero no expliqué cómo puede usarlo en su BBB. De hecho, no puedes. El procesador puede, pero el BBB no permite usar este modo de arranque. Permite 2 modos de arranque: eMMC a bordo y tarjeta SD. Esto realmente no cambia lo que dije anteriormente: en lugar de enviar su stage1 en USB, solo tiene que escribirlo en la tarjeta SD (como un archivo llamado MLO).

    
respondido por el Jacen

Lea otras preguntas en las etiquetas