Cosa sono gli indirizzi di collegamento e gli indirizzi di esecuzione in ambiente embedded

Cosa sono gli indirizzi di collegamento e gli indirizzi di esecuzione

Indirizzo di collegamento e indirizzo di esecuzione: possono essere uguali o diversi. Per il codice legato alla posizione, l'indirizzo di esecuzione durante l'esecuzione finale e l'indirizzo di collegamento fornito durante la compilazione e il collegamento devono essere uguali, altrimenti si verificherà un errore. Nel nostro precedente programma bare metal, nel Makefile è stato utilizzato -Ttext 0x0
Per specificare l'indirizzo di collegamento è 0x0. Ciò significa che il programma verrà eseguito all'indirizzo di memoria 0x0 in futuro.
Ma in realtà l'indirizzo di esecuzione è 0xd0020010 (si usa l'indirizzo di download specificato quando si scarica con dnw). Questi due indirizzi sembrano diversi, ma in realtà sono uguali. Questo perché l'S5PV210 ha eseguito una mappatura interna e ha mappato la SRAM all'indirizzo 0x0.

分清楚这两个概念
链接地址:链接时指定的地址( 指定方式为: Makefile中用-Ttext,或者链接脚本)N
Distinguere chiaramente questi due concetti
Indirizzo di collegamento: l'indirizzo specificato durante il collegamento (specificato da: usando -Ttext nel Makefile o lo script di collegamento) N

Indirizzo di esecuzione: L'indirizzo di esecuzione effettivo del programma (metodo di specificazione: è determinato dalla posizione della memoria in cui viene caricato durante l'esecuzione effettiva).

Cosa determina l'indirizzo di runtime?

L'indirizzo di runtime è determinato dal runtime. Quando S viene compilato e collegato, l'indirizzo di runtime non può essere assolutamente determinato.

Cosa determina l'indirizzo del collegamento?

L'indirizzo di collegamento viene passato dal programmatore attraverso il Makefile-Ttext durante il processo di compilazione e collegamento.
xxx o specificato nello script di collegamento. I programmatori prevedono in anticipo i requisiti di esecuzione del loro programma, hanno un indirizzo di esecuzione desiderato e lo utilizzano come indirizzo di collegamento. Ad esempio: 1. Programmi applicativi in Linux. gcc hello.c -.
Ciao, l'indirizzo di collegamento predefinito utilizzato in questo momento è 0x0, quindi l'applicazione è collegata all'indirizzo 0. Poiché l'applicazione viene eseguita in un processo del sistema operativo, in questo processo l'applicazione ha accesso esclusivo allo spazio degli indirizzi virtuali 4G. Quindi le applicazioni possono tutte collegarsi all'indirizzo 0 perché ogni processo parte dall'indirizzo 0. (È possibile utilizzare 0 senza specificare l'indirizzo di collegamento durante la compilazione).

Parole chiave correlate:

4G DTU

    X

    Abilita JavaScript nel browser per completare questo modulo.
    Inserite i dettagli del prodotto, come la configurazione dell'interfaccia, l'ambiente, ecc. e altri requisiti specifici per ricevere un preventivo accurato.

    it_ITItalian
    Abilita JavaScript nel browser per completare questo modulo.
    Inserite i dettagli del prodotto, come la configurazione dell'interfaccia, l'ambiente, ecc. e altri requisiti specifici per ricevere un preventivo accurato.