Limit Meaning
Siempre ha habido una comprensión plausible de los datos de RO, RW y ZI descritos en el sistema ARM. Durante este tiempo, lo entendí cuidadosamente y encontré algunas reglas. He entendido algunas cosas que estaban en los libros anteriores pero no entiendo. Creo que debería haber muchas personas que tengan la misma confusión que yo. Por eso escribiré algunos de mis entendimientos sobre RO, RW y ZI, espero poder tener algo para todos. Ayuda Para comprender RO, RW y ZI, primero debe comprender los siguientes conocimientos:
La composición del programa ARM
El "programa ARM" al que se hace referencia aquí es el sistema ARM. El programa que se está ejecutando, no el archivo de imagen bin guardado en la ROM, presta atención a la diferencia. Un programa ARM consta de tres partes: RO, RW y ZI RO son las instrucciones y constantes del programa. RW es la variable inicializada en el programa. ZI es la variable no inicializada en el programa. Los tres puntos anteriores se pueden entender como: RO es de solo lectura, RW es de lectura /escritura, ZI es cero
La composición del archivo de imagen ARM El llamado archivo de imagen ARM se refiere al archivo bin grabado en la ROM, y también se convierte en el archivo de imagen. Lo siguiente usa el archivo de imagen para llamarlo. El archivo de imagen contiene datos de RO y RW. La razón por la que el archivo de imagen no contiene datos de ZI es porque los datos de ZI son 0, no es necesario incluir, siempre que el programa esté en ejecución, el área donde se ubican los datos de ZI siempre se borra. Incluyendo se desperdicia espacio de almacenamiento. P: ¿Por qué la imagen debe contener RO y RW? R: Debido a que los comandos y las constantes en el RO y las variables inicializadas en el RW no son como el ZI, no hay nada en el medio.
El proceso de ejecución del programa ARM
De los dos puntos anteriores, se puede saber que el archivo de imagen grabado en la ROM no es completamente compatible con el programa ARM en la operación real. Lo mismo Por lo tanto, es necesario entender cómo el programa ARM alcanza el estado de ejecución real de la imagen en la ROM. De hecho, las instrucciones en la ROM deben tener al menos una función de este tipo: 1. Mueva el RW de la ROM a la RAM. Dado que RW es una variable, la variable no puede existir en la ROM. 2. Borre el área de RAM donde se encuentra ZI. Debido a que el área de ZI no se encuentra en la imagen, el programa debe borrar el área de RAM correspondiente de acuerdo con la dirección y el tamaño de ZI que proporciona el compilador. La ZI también es una variable. Del mismo modo, la variable no puede existir en la ROM. En la etapa inicial del programa en ejecución, el programa C puede acceder a la variable normalmente después de completar las dos instrucciones. De lo contrario solo puedes ejecutar código sin variables.
rt_system_heap_init ((void *) &
Imagen RW I RAM1
Límite ZI $$, (void *) STM32_SRAM_END);
Imagen editorial
RW I RAM1
ZI $$ Limit
Este es un símbolo exportado por el vinculador, que representa el final del segmento ZI, es decir, después de que finalice la RAM del área de ejecución del programa (tenga en cuenta que ‘ ’; una pequeña dirección i ++ y ++ i), a su vez, es la dirección de inicio del área no utilizada de RAM en nuestra área de ejecución (de hecho, esto es un poco exagerado, ya que este entendimiento es a menudo solo un estándar para casi encontrar, pensando en RAM El uso del área ZI suele ser el final de todo el programa, tal vez lo entiendo mal aquí). Imagen &Imagen Tomar la dirección.
RW I RAM1
ZI $$ Limit
GRUB es el gestor de arranque predeterminado para la mayoría de los sistemas Linux. Puede optar por
El programa en ejecución se llama proceso. Cuando un programa se almacena en un archivo ejecutable y
Muchos medios y expertos creen que Linux cree que Linux es más seguro que Windows
Usar un terminal de Linux es más que solo ingresar comandos. Después de aprender e
¿Utilizas la línea de comandos de Linux?
Rutinas de servicio del kernel de Linux e interfaz de llamada al sistema
Cómo agregar controladores al kernel de Linux
Comandos comunes de Unix detallados
Tres estructuras de datos importantes del controlador de dispositivo de caracteres de linux
Modificar la zona horaria utilizando la línea de comandos en Linux
Método práctico de seguridad y limpieza de cuentas de usuario de Linux
Los controladores de dispositivos I2C asociación
CentOS /RHEL minimiza la instalación e instala la herramienta de configuración
Tutorial básico sobre configuración de servicios FTP y TFTP bajo Linux
Cambie rápidamente Nginx como un servidor proxy de front-end de sitio web
Windows7 /8.1 inserta un nuevo parche KB3123862 Este parche no toca
Windows 7 no puede abrir varias carpetas en una ventana. Consejos de reparación
CNET recomienda que Microsoft Windows 8 brinde herramientas de administración de proyectos de inicio
Maneras de resolver la falla de la máquina de fax en Vista
Expertos comparten el funcionamiento de la grabadora de pasos de problemas de Win 7
Cómo proteger la privacidad del usuario bajo el sistema Win10
¿Cómo reemplazar el fondo de la computadora del sistema win10?
Usando Windows para administrar archivos en Windows
Win10 cómo hacer que el archivo muestre el nombre del sufijo no se muestra de forma predeterminada