tectijuana / interfaz.old

Lenguajes de Interfaz para ISC
GNU General Public License v3.0
30 stars 46 forks source link

2.1.6 Proyecto de exito mundial: Microbit.org y ARM Toolchain #32

Closed IoTeacher closed 2 months ago

IoTeacher commented 7 months ago

PUBLICACION DE ARM CASOS DE EXITO

https://www.arm.com/company/success-library/arm-designs/microbit

MANUAL OPENSOURCE

https://microbit.org/get-started/user-guide/open-source/

ENSAMBLADOR CON MICROBIT

Para trabajar con micro:bit utilizando código en ensamblador, es importante tener en cuenta que la arquitectura de micro:bit difiere de las configuraciones típicas de Raspberry Pi y otros dispositivos basados en ARM que hemos discutido. El micro:bit V1 está basado en el microcontrolador nRF51822 que utiliza un procesador ARM Cortex-M0, mientras que el micro:bit V2 usa el nRF52833 con un procesador ARM Cortex-M4. Ambos son significativamente diferentes en capacidades y estructura a los procesadores ARM Cortex-A utilizados en Raspberry Pi. Además, la programación en ensamblador para estos microcontroladores se centra más en la interacción con su hardware específico y las capacidades de bajo nivel, como el manejo de GPIO, comunicación serial, y temporizadores, entre otros.

Para comenzar a escribir programas en ensamblador para el micro:bit, necesitarías familiarizarte con:

.section .text
.global _start

_start:
  1: b 1b

El conjunto de instrucciones específico del ARM Cortex-M0 o Cortex-M4, dependiendo de la versión de tu micro:bit. Esto incluye comprender las instrucciones básicas para operaciones matemáticas, manipulación de datos, y control de flujo.

Los registros específicos del microcontrolador y cómo interactúan con el hardware del micro:bit, incluidos los pines de entrada/salida, el acelerómetro, la pantalla LED, y otros periféricos.

El entorno de desarrollo y las herramientas necesarias para compilar y cargar el código en ensamblador en el micro:bit. Esto podría incluir configurar un entorno de desarrollo cruzado y usar herramientas como arm-none-eabi-gcc para compilar tu código ensamblador en un archivo binario que pueda ser cargado en el micro:bit.

Para adaptar un programa en ensamblador a fin de controlar un LED en un micro:bit (tanto versión 1 como versión 2), es crucial entender cómo el microcontrolador específico maneja los pines de entrada/salida (GPIO). Dado que el micro:bit V1 utiliza el nRF51822 (basado en ARM Cortex-M0) y el V2 utiliza el nRF52833 (basado en ARM Cortex-M4), ambos tienen capacidades similares de GPIO pero pueden diferir en detalles específicos de implementación. A continuación, proporcionaré un ejemplo conceptual para ambos, enfocado en prender y apagar un LED en un bucle infinito.

COMPILACION

Para compilar y subir un programa en ensamblador a un micro:bit, necesitarás seguir varios pasos que involucran la compilación de tu código en ensamblador a un archivo binario o hexadecimal (.hex), y luego transferir este archivo al micro:bit. A continuación, te guiaré a través de un proceso general que se puede adaptar dependiendo de las herramientas específicas que elijas usar y el sistema operativo que estés utilizando.

  1. Preparación del entorno Primero, necesitas tener un entorno de desarrollo cruzado para ARM instalado en tu computadora. Esto incluye el compilador GNU ARM (arm-none-eabi-gcc), el ensamblador (arm-none-eabi-as) y el utilitario para copiar y transformar archivos de objetos (arm-none-eabi-objcopy).

Estas herramientas están disponibles en el paquete GNU ARM Embedded Toolchain.

En Windows, puedes descargar estas herramientas desde el sitio oficial de ARM Developer.

En Linux, estas herramientas a menudo se pueden instalar directamente desde el gestor de paquetes de tu distribución, por ejemplo, en Ubuntu podrías usar:

sudo apt-get install gcc-arm-none-eabi
  1. Escribir el programa en ensamblador Crea un archivo de texto con tu programa en ensamblador, como main.s. Usa el ejemplo de código que te proporcioné anteriormente o cualquier otro código que desees compilar.

  2. Compilación del código en ensamblador Abre una terminal o línea de comandos y navega hasta el directorio donde guardaste main.s. Utiliza el siguiente comando para compilar tu código en ensamblador a un archivo de objeto:

arm-none-eabi-as -mcpu=cortex-m0 -g main.s -o main.o

Este comando especifica que el procesador objetivo es un Cortex-M0, que es el caso para el micro:bit V1. Para el micro:bit V2, que usa un Cortex-M4, cambiarías -mcpu=cortex-m0 por -mcpu=cortex-m4

  1. Enlazar el código objeto a un archivo binario El siguiente paso es enlazar el archivo de objeto a un archivo binario ejecutable
arm-none-eabi-ld -Ttext=0x0 -o main.elf main.o

Este comando enlaza main.o a un archivo ELF ejecutable (main.elf), con la dirección de inicio especificada por -Ttext=0x0. Debes ajustar la dirección de inicio según sea necesario para tu aplicación y entorno de hardware específico.

Finalmente, convierte el archivo ELF a un formato .hex que puede ser cargado en el micro:bit:

arm-none-eabi-objcopy -O ihex main.elf main.hex
  1. Subir el programa al micro:bit Conecta tu micro:bit a tu computadora usando un cable USB. El micro:bit debería aparecer como una unidad de disco USB. Copia el archivo main.hex a la unidad del micro:bit usando el explorador de archivos o un comando de copia en la terminal. La transferencia del archivo hará que el micro:bit se reinicie automáticamente y comience a ejecutar el programa.

Este es un proceso básico y los comandos específicos pueden variar dependiendo de las opciones de tu programa en ensamblador, la versión del micro:bit, y si estás utilizando funcionalidades específicas del microcontrolador o periféricos. Asegúrate de consultar la documentación específica de tu entorno de desarrollo y las herramientas para cualquier ajuste necesario en los comandos.

ARM Toolchain

https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain https://developer.arm.com/downloads/-/gnu-rm

IoTeacher commented 7 months ago

CANAL DE YOUTUBE A SUBSCRIBIRSE

https://www.youtube.com/@LowLevelLearning/videos