Solo para aclarar estos temas:
Si tuviera que programar un microcontrolador en ASM, usaría un ensamblador, por supuesto. El ensamblador compilaría el código en códigos de operación (¿código de máquina?) (Proporción generalmente 1: 1) que luego se convertiría en un archivo HEX. ¿Es este archivo el que realmente se lee en la memoria y se usa para programar el controlador? Leí que el archivo HEX contiene la ubicación real en la que se almacenarán los datos (parte de ese marco de datos) en la memoria, así como los datos que se escribirán allí.
Si programara un microcontrolador en C (o en algún otro idioma), ¿cuáles son las restricciones? Sería necesario que utilices un compilador de C, por supuesto. Pero, ¿es que debemos usar un compilador de C diseñado específicamente para trabajar con microcontroladores o una arquitectura específica?
Sé que diferentes arquitecturas tienen diferentes conjuntos de instrucciones que son incompatibles con otros, pero ¿cómo se trata esto y cómo se relaciona todo esto con una CPU que existe en una computadora?
Seguramente he confundido los temas aquí y posiblemente me he avergonzado, pero he estado leyendo sobre estos temas por un tiempo hoy y quería aclarar todo al mismo tiempo para mitigar una mayor confusión.
Gracias,