Integrazione di un altro binario


8

Sto costruendo un binario per ARM usando GCC e Crossworks. Ho un'immagine binaria secondaria che deve essere caricata su un altro IC durante l'avvio.

Mi piace integrare questo binario nella mia catena di strumenti, in altre parole, faccio di questo binario parte della mia immagine e ogni volta che lo costruisco questo binario viene integrato nel file binario finale che verrà caricato nella CPU. Qual è la migliore pratica per questo?

Grazie

Risposte:


3

È possibile utilizzare objcopyper trasformare l'immagine binaria in un file oggetto. Il file oggetto conterrà simboli a cui è possibile accedere dal codice C. Dì quindi a GCC di collegare il file oggetto e puoi accedere ai simboli nel file oggetto usando externper caricare i dati nell'altro IC.

Ecco un buon tutorial su come collegare in un BLOB binario, incluso come archiviare le opzioni che è necessario passareobjcopy all'utilizzo objdump.

E ovviamente la objcopypagina man e la objdumppagina man .


super risposta .. mi ci sono voluti 5 minuti per far funzionare tutto questo.
Ktc

Domanda aggiuntiva. Il file obj funziona bene, tuttavia la toolchain lo colloca nella RAM, il che sta diventando un problema a causa delle dimensioni del file. Come posso forzare questo oggetto a essere posizionato su Flash?
Ktc,

risolto .. fondamentalmente, objcopy -I binario -O elf32-littlearm -B arm --rename-section .data = .rodata, alloc, load, readonly, data, content fpga.bin fpga.o questo rende il tutto. rodata e linker si posizionano correttamente nel flash.
Ktc,

objcopyha un numero enorme di opzioni. Probabilmente può fare tutto quello che vuoi. Richiede solo molto a fissare quella pagina man. Grazie per aver condiviso la tua soluzione poiché sono sicuro che sarà una domanda comune per le persone che vogliono fare quello che stai facendo.
embedded.kyle
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.