Programación de C de metal desnudo en el brazo
Este repositorio contiene un libro electrónico tutorial sobre programar un sistema de brazo de metal desnudo. Más específicamente se trata de una versión ARMV7A de la plataforma ARM Versatile Express, emulada en una PC normal a través de QEMU. Puede explorar el repositorio o leer cosas en orden.
Tabla de contenido
También está disponible una versión PDF actualizada.
Los siguientes capítulos pueden considerarse como la primera edición del libro electrónico, proporcionando una ruta completa desde comenzar a un programa de trabajo que utiliza funciones de hardware.
- Capítulo 0: Introducción. Una breve introducción al sujeto y al libro electrónico.
- Capítulo 1: Configuración. Un capítulo corto que trata sobre la preparación de un entorno Linux para un mayor desarrollo.
- Capítulo 2: El primer arranque. Uso básico de QEMU y la cadena de herramientas de compilador cruzado, obteniendo el código más simple posible para ejecutar.
- Capítulo 3: Agregar un cargador de arranque. Construyendo el muy popular gotador de botas U-Boot y que lo haga para que arrance nuestro propio código.
- Capítulo 4: Preparación de un entorno C. Este capítulo trata el trabajo necesario para obtener del código de ensamblaje en el código de ensamblaje a C.
- Capítulo 5: Sistema de construcción y depuración. Aquí mostramos cómo el trabajo se puede optimizar agregando un sistema de compilación basado en CMake y cómo se puede depurar el programa de metal desnudo.
- Capítulo 6: Desarrollo del conductor UART. En este capítulo, se escribe un controlador de dispositivo para un UART.
- Capítulo 7: Interrupciones. El capítulo pasa por configurar el controlador de interrupción genérica del brazo, usándolo para recibir y responder a las interrupciones. Además, el controlador UART se adapta para usar interrupciones.
- Capítulo 8 - WIP: Programación. Trabajo en progreso.
Estructura de repositorio
El repositorio consta de dos carpetas de nivel superior. La carpeta doc contiene los capítulos tutoriales reales. La carpeta src contiene el código fuente correspondiente a cada capítulo. Entonces, por ejemplo, SRC/04_CenV contiene el código fuente tal como se ve después de completar el Capítulo 4.
Además, la carpeta src tiene algunas cosas compartidas. src/common_uboot contiene una versión despojada de U-Boot utilizada en los ejemplos.
¡Diviértete y siéntete libre de ajustar y experimentar, siendo una excelente manera de aprender!