Stiamo provando a caricare un'immagine Linux nella nostra DRAM in una posizione specifica, l'indirizzo finale DRAM è 0x80000000 che conosciamo dal log di avvio che dice "terminazione dispositivo mem" l'indirizzo è 0x80000000" .Siamo caricando la nostra immagine all'indirizzo '0x5000000' e prima che la sezione Variuos nell'immagine sempre caricato ad un certo indirizzo, che è maggiore di '0x80000000', per eaxmple di nuovo da tronchi di avvioCome caricare l'immagine Linux per appropriarsi della posizione nella memoria
loading section to address 0xc5000000 from file position 0x1000, size is 0x5ac13e
cosa è significato di "dalla posizione del file 0x1000" nella riga sopra.
prima sezione che ha caricato è la sezione .text, qui di seguito è il nostro vmlinux discarica immagine della sezione di intestazione
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .text PROGBITS c5000000 001000 5ac13e 00 AX 0 0 4096
[ 2] .notes NOTE c55ac140 5ad140 000168 00 AX 0 0 4
[ 3] __ex_table PROGBITS c55ac2b0 5ad2b0 000fe0 00 A 0 0 4
[ 4] .rodata PROGBITS c55ae000 5af000 20a930 00 A 0 0 64
[ 5] __bug_table PROGBITS c57b8930 7b9930 0075fc 00 A 0 0 1
[ 6] .pci_fixup PROGBITS c57bff2c 7c0f2c 001a90 00 A 0 0 4
[ 7] .builtin_fw PROGBITS c57c19bc 7c29bc 0000cc 00 A 0 0 4
È piuttosto una grande lista, in modo da non inviare alta uniforme, ma una cosa che possiamo vedere qui. la sezione di testo è maggiore dell'indirizzo di fine DRAM, quindi l'immagine non dovrebbe essere presentata correttamente anche se non riceviamo alcun errore dopo aver caricato la prima sezione che continua a caricare altre sezioni ma dopo questo messaggio si blocca.
program load complete, entry point: 0x5000000, size: 0x92e7fc
La mia domanda è come posso allineare queste diverse sezioni affrontano al nostro indirizzo DRAM, è programma di utilità objcopy potrebbe essere usato qui per cambiare l'indirizzo di queste sezioni diverse.
C'è un modo per impostare questi indirizzi di sezione prima della compilazione ?? Seconda cosa può essere la ragione per cui il caricamento del programma Hang afer è completo.
Una taglia è buona, ma non è necessariamente andare a farti una soluzione perché la questione non è abbastanza informativo e perché non possiamo vedere il tuo codice. In pratica stai chiedendo alle persone di sparare al buio. –
Sì, Alexey, hai già risposto molto bene alla mia domanda, ho pensato che avere una visione più ampia di questa domanda è una buona idea. Non voglio che la gente risolva il mio problema perché poi non imparerò da solo, volevo solo avere una coppia di buone idee –
Buon punto, in realtà. –