Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es la razón por la cual uboot realiza la reubicación?

¿Cuál es la razón por la cual uboot realiza la reubicación?

En primer lugar, debe comprender que el código que se ejecutará debe guardarse primero en la memoria, y la relación de ubicación de almacenamiento de varias funciones y variables en el archivo bin está determinada por el archivo de script de enlace y el compilador. En ejecución, la dirección de enlace del programa debe ser , la dirección de enlace correspondiente a varias etiquetas en el archivo ensamblador o varios nombres de función (dirección de entrada de la función) en el archivo c es la dirección de enlace inicial en el script de enlace, la dirección de enlace y el archivo de destino (archivo .s o .c) relacionado con el orden de colocación. La dirección del enlace se relaciona con el orden en que se colocan los archivos objeto (archivos .s o .c compilados pero aún no vinculados). Estas direcciones de enlace se pueden obtener viendo el archivo xxx.dis del archivo de desensamblado del archivo ejecutable.

La redirección es el proceso de copiar el archivo bin de uboot a su dirección de enlace correspondiente en la memoria (es decir, la dirección de enlace inicial en el script de enlace xx.lds) para que pueda usarse al usar el salto global. instrucción (al llamar a la instrucción ldr xxx en ARM) o la llamada de función en lenguaje C, se puede asignar el valor correcto del registro de la pc, es decir, se puede transferir a la memoria

El valor correcto del registro de la PC se puede asignar al archivo de enlace.

Al registro pc se le puede asignar el valor correcto solo cuando se realiza una llamada de función o ldr xxx en C o RM o C, es decir, el código se puede recuperar de la ubicación correcta en la memoria y ejecutar.

PD: ¡Espero que puedas aceptarlo!