Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué programa se ejecuta en diferentes direcciones en STM32?

¿Qué programa se ejecuta en diferentes direcciones en STM32?

El compilador convierte la instrucción C LED0 = 0 del programa que se ejecuta en diferentes direcciones en STM32 en tres instrucciones de ensamblaje MOVS, LDR y STR. El código de máquina correspondiente a estas tres líneas de ensamblaje es 2000. ,490B,6008.

Cuando una computadora general funciona con diferentes direcciones STM32, el programa y los datos primero deben enviarse a la memoria a través del circuito de interfaz de entrada y el bus de datos a través de dispositivos externos, y luego extraerse uno por uno para su ejecución. Sin embargo, el programa en el microcontrolador generalmente se ha solidificado de antemano en la memoria del programa dentro o fuera del chip a través del escritor. Por lo tanto, las instrucciones se pueden ejecutar tan pronto como se enciende la computadora.

Modo big-endian de diferentes direcciones STM32:

El llamado modo big-endian (Big-endian) de diferentes direcciones STM32 se refiere al byte alto de datos que se almacena en la dirección baja de la memoria, y el byte bajo de datos se almacena en la dirección alta de la memoria. Este modo de almacenamiento es algo similar a procesar los datos como una cadena secuencialmente: la dirección aumenta de pequeña a grande, y el byte bajo de la memoria se almacena en la dirección alta de la memoria. Los datos se colocan de mayor a menor.

Ejemplo: 0000430: e684 6c4e 0100 1800 53ef 0100 0100 0000. 0000440: b484 6c4e 004e ed00 0000 0000 0100 0000. En modo big-endian, los primeros 32 bits deben leerse así: e6 84 6c 4e (suponiendo que int ocupa 4 bytes).