Closed IoTeacher closed 7 months ago
Integrar código de ARM32 assembly con C# en un entorno como Raspberry Pi con Linux es un poco más complejo que hacerlo con C, principalmente porque C# se ejecuta en un entorno de ejecución administrado (como .NET Core o .NET Framework) y no tiene una interoperabilidad directa con el código de assembly de la manera en que C lo tiene. Sin embargo, puedes lograr una integración indirecta utilizando la interoperabilidad de plataforma de C# (P/Invoke) para llamar a funciones escritas en C, que a su vez pueden llamar a código de assembly.
Se presentan 8 temas sugeridos para exposiciones sobre ARM32, adecuados para equipos de tres integrantes. Cada tema incluye un breve marco teórico y una idea para un programa ejemplo que claro pueden Uds. adaptar, cada equipo debería alojar su código en GitHub PAGES y asegurarse de que sea compilable y depurable usando GDB en un entorno como Raspberry Pi OS en ARM32 bits.
extern
para llamar funciones Assembly desde C.La parte práctica debe involucrar la compilación del código en Gist y su posterior depuración en GDB, mostrando cómo solucionar problemas comunes y cómo usar GDB para entender mejor el funcionamiento del programa.
ELECCION DEL TEMA:
1.- Estudiante da click link "grupal" de GitHub 2.- Pone nombre a el equipo (encargo ser moderado el nombre) 3.- En caso que Ud sea en numero 9 en acceder y no logra teclear nombre del equipo, se considera uno miembro seleccionar que equipo pertenecer. 4.- Listo ya sea lider o parte del equipo, localizar a los colegas por el nickname.
Todo es dinámico la elección por GitHub Classroom
https://classroom.github.com/a/LubHiFNh
NOTA: Dejese llevar por el RANDOM() de esta exposicion
HolaMundo 1. Introducción a ARM32 y el entorno de desarrollo
Orejitas Chismosas, tema 2
Equipo huevos rancheros
los residentes tema 6
tema 5. Equipo FarsaFC Manipulación de memoria y arrays
7 y 8 quedan
Equipo Burgies
INTEGRACION DE ARM Assembly como MACRO con Leng. C
Para integrar código de ARM32 assembly con C, es importante seguir una convención de llamadas que permita la comunicación entre ambos lenguajes. A continuación, te proporciono un ejemplo simple de cómo hacer esto. El ejemplo consistirá en una función de assembly que suma dos números y una función en C que llama a esta función de assembly.
Primero, creemos la función de assembly que suma dos números. Esta función recibirá dos argumentos y retornará la suma de ambos. La función podría llamarse sumar, y su código en assembly se vería así:
Ahora, necesitas escribir el código en C que llame a esta función de assembly. Para hacer esto, declara un prototipo de la función sumar en tu código C, de modo que el compilador sepa de su existencia y pueda manejar correctamente la llamada. Luego, puedes llamar a sumar desde tu función principal en C o desde cualquier otra parte de tu código C.
El código en C que hace uso de la función sumar se vería así:
Para compilar y enlazar estos dos archivos, puedes usar un Makefile simple que utilice gcc para el código C y as para el assembly, o directamente en la línea de comandos si prefieres. Asegúrate de tener ambos archivos en el mismo directorio y de reemplazar y con los nombres de tus archivos reales.
En la línea de comandos, podrías compilar y enlazar tus archivos de la siguiente manera:
Este es un ejemplo básico para mostrarte cómo integrar ARM32 assembly con C. Puedes expandir esto para incluir llamadas a funciones más complejas y pasar diferentes tipos de datos entre C y assembly.