Índice
AlternarO que são endereços de ligação e endereços de execução?
Endereço de ligação e endereço de execução: podem ser iguais ou diferentes. No caso do código relacionado com a posição, o endereço de execução durante a execução final e o endereço de ligação indicado durante a compilação e a ligação têm de ser iguais; caso contrário, ocorrerá um erro. No nosso programa anterior para «bare metal», utilizou-se -Ttext 0x0 no Makefile
Especificar o endereço de ligação como 0x0. Isto significa que consideramos que este programa será executado no endereço de memória 0x0 no futuro.
Mas, na verdade, o endereço em que executamos o código é 0xd0020010 (utilizamos o endereço de transferência especificado ao fazer a transferência com o dnw.). Estes dois endereços parecem diferentes, mas são, na realidade, os mesmos. Isto deve-se ao facto de o S5PV210 ter efetuado um mapeamento interno e ter mapeado a SRAM para o endereço 0x0.
Distinguir estes dois conceitos
Endereço de ligação: o endereço especificado durante a ligação (especificado através da opção -Ttext no Makefile ou num script de ligação)N Distinga claramente estes dois conceitos
Endereço de ligação: o endereço especificado durante a ligação (especificado através da opção -Ttext no Makefile ou num script de ligação) N
Endereço de execução: O endereço de execução efetivo do programa (método de especificação: é determinado pela localização na memória em que é carregado durante a execução efetiva)

O que determina o endereço de execução?
O endereço de execução é determinado pelo ambiente de execução. Quando S é compilado e ligado, o endereço de execução não pode ser determinado com certeza absoluta.
O que determina o endereço do link?
O endereço do link é passado pelo programador através do Makefile-Ttext durante o processo de compilação e ligação.
xxx ou especificado no script de ligação. Os programadores irão prever antecipadamente os requisitos de execução do seu programa, definirão um endereço de execução pretendido e utilizarão esse endereço como endereço de ligação. Por exemplo: 1. Programas de aplicação no Linux. gcc hello.c -.
Olá, o endereço de ligação predefinido utilizado neste momento é 0x0, pelo que a aplicação é ligada ao endereço 0. Como a aplicação é executada num processo do sistema operativo, nesse processo a aplicação tem acesso exclusivo ao espaço de endereços virtuais de 4G. Assim, todas as aplicações podem vincular-se ao endereço 0, uma vez que todos os processos começam no endereço 0. (Pode utilizar 0 sem especificar o endereço de ligação durante a compilação)
Palavras-chave relacionadas:
4G DTU