Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza del computer >> software >> ingegneria del Software >> .

Quando si assembla un programma Crea in Editor Codewarrior, viene scaricato in Flash a partire da 0xc000?

Questo non è universalmente vero per i progetti di codewarrior. L'indirizzo iniziale del programma nella memoria flash (0xc000 nel tuo caso) dipende da diversi fattori:

* MicroController target: Diversi microcontroller hanno mappe di memoria diverse. Lo script Linker all'interno del progetto CodeWarrior determina dove risiederanno diverse parti del programma (codice, dati, costanti). 0xc000 è un indirizzo iniziale comune per il codice in alcuni sistemi incorporati, ma non tutti.

* Script linker: Questo file è cruciale. Definisce il layout della memoria. Il linker utilizza questo script per posizionare le sezioni del tuo programma (come `.text`,` .data`, `.bss`) in indirizzi di memoria specifici. Se lo script Linker è configurato per posizionare il punto di ingresso del programma a 0xc000, è lì che andrà.

* Impostazioni del progetto: Le impostazioni del progetto di Codewarrior consentono di specificare varie opzioni di linker e configurazioni di memoria. Queste impostazioni alla fine influenzano la mappa della memoria finale.

* Bootloader: Se il sistema di destinazione utilizza un bootloader, il bootloader stesso potrebbe occupare alcuni indirizzi di memoria più bassi. Il codice dell'applicazione inizierebbe quindi dopo la fine del bootloader.

In breve, mentre 0xc000 è * un possibile indirizzo iniziale, non è inerente al codewarrior. È necessario esaminare lo script e le impostazioni del linker del tuo progetto per confermare l'indirizzo iniziale effettivo. Lo script Linker definirà chiaramente gli indirizzi di memoria utilizzati per diverse sezioni del codice.

 

software © www.354353.com