Comprender el significado del código, datos RO, datos RW y datos ZI que aparecen al compilar programas en el compilador Keil

**

1: Código, datos RO, datos RW y datos ZI

**
Después de compilar el microcontrolador STM32 en el entorno de desarrollo Keil, se mostrará:
Tamaño del programa: Código=xxxx Datos RO=xxxx Datos RW=xxxx Datos ZI=xxxx

La ventana de visualización compilada se muestra en la figura: ¿
inserte la descripción de la imagen aquí
Qué significan Código, datos RO, datos RW y datos ZI?

Código: representa el código ejecutado, todas las funciones del programa;

Datos RO: significa Datos de solo lectura, los datos constantes globales definidos en el programa;

RW-data: representa datos de lectura y escritura inicializados (Read And Write Data), variables globales y variables estáticas definidas e inicializadas en el programa;

Datos ZI: representa datos legibles y grabables definidos pero no inicializados. ZI English es cero inicial, que es la cantidad de bytes de variables utilizadas en el programa e inicializadas en 0 por el sistema. El compilador Keil tiene como valor predeterminado que no ha inicializado todas las variables. se les asigna un valor de 0, y estas variables se almacenan en la RAM cuando el programa se está ejecutando.

O también podemos analizar el archivo .map.
El archivo de mapa se encuentra en la carpeta Listings del proyecto generado. (El archivo name.map del proyecto es un archivo generado al compilar el proyecto. Puede guardar el archivo en otro directorio configurando el proyecto De forma predeterminada, está en la carpeta de archivos Listings, o en la carpeta OBJ), puede ver el contenido de la pantalla como se muestra en la figura (en la parte inferior del archivo):
inserte la descripción de la imagen aquí

Se puede ver que después de compilar KEIL, muestra los totales generales/totales ELFImage en la figura, pero los datos realmente almacenados en la ROM no incluyen los datos ZI (debido a que los datos ZI no se inicializan, no es necesario proporcionar una dirección separada para que MDK guarde sus datos de inicialización).

  1. El tamaño del archivo HEX compilado = el valor del Tamaño total de ROM = (Código + Datos RO + Datos RW); la Figura 2 muestra que el tamaño del archivo HEX compilado es 454,82 KB, que es el tamaño del archivo de programa realmente grabado en el flash del microcontrolador. Preste atención a la capacidad Flash de la microcomputadora de un solo chip al seleccionar el tipo.


  2. El tamaño real de los datos del programa que se ejecuta en la RAM de un solo chip = el valor del tamaño total de RW = (datos RW + datos ZI);

Supongo que te gusta

Origin blog.csdn.net/m0_50862404/article/details/128946384
Recomendado
Clasificación