Newsgroup: it.comp.os.linux.development
Titolo: gcc e cross compilare da i368 o sparc per 68000

 F-up su .development.
mmm... come dire.... Non so quale sia il s.o. che ci gira. Sono dei
bussolotti con processore un po' di ram, quattro led e una ventolina che
si puň far girare se si vuole.
Ho dimenticato, da pirla, di dire che devo fare dei programmi su questo
coso in assembler per l'universitŕ. Mi sembra che gcc compili
l'assembler. Ho visto le binutils per m68k. sono quelle che devo usare?
e poi, visto che č assembler il programma va bene indipendentemente dal
s.o?
Insomma, ho un po' di casino nella testa....
-- 
Non c'č piů forza nella normalitŕ, c'č solo monotonia.

 l'assembler. Ho visto le binutils per m68k. sono quelle che devo usare?
Se contengono un `gas' eseguibile su i386 che assembla codice m68k, si`.
Molto probabilmente non ti servira` il linker: in questi casi infatti
devi stare attento a far generare il codice oggetto piu` "nudo"
possibile, che non faccia riferimento a librerie esterne. L'interfaccia
col mondo (LED, interruttori, ecc. sulla breadboard) sara` costituita da
letture e scritture dirette in memoria, roba come
 *LED_port|=0x01; /* accende il primo LED */
Ciao
 David
-- 
<d.santinoli presso mi . flashnet . it>

  *LED_port|=0x01; /* accende il primo LED */
ok, ma allora, cercando di diro in parole semplici, che devo fare? Mi
devo installare queste binutils? Poi le librerie esterne non mi servono
(quindi non mi dovrebbe servire nemmeno il linker, giusto?) e alora se
compilo su i386 e poi "travaso" quello che ottengo sul coso dovrebbe
andare, giusto?
Ho un casino in testa.....


 Ho un casino in testa.....
Allora, quello che devi fare č compilare le binutils per 68k (quelle per
AmigaOS vanno benissimo 
http://www.ninemoons.com/GG/index.html
). In
questo modo ottieni m78k-amigaos-as che ti consentirą di produrre codice
oggetto a partire dal sorgente assembly. Poi utilizzi
m68k-amigaos-objcopy infile.o -O binary outfile.bin. In questo modo
ottieni la versione "depurata" da tutti i simboli del file oggetto nel
file .bin.
Ciao,
Fabio Alemagna

 file .bin.
e questa la posso far andare direttamente sull'altra macchina, giusto?
-- 
Non c'č pił forza nella normalitą, c'č solo monotonia.

 e questa la posso far andare direttamente sull'altra macchina, giusto?
dovresti :) Prova...
Ciao,
Fabio Alemagna

 e questa la posso far andare direttamente sull'altra macchina, giusto?
Affinche' il tuo codice (che immagino verra` scaricato su una EPROM o
qualcosa di simile) venga eseguito, la locazione 4 di quella EPROM
dovra` contenere l'indirizzo della prima istruzione del tuo programma
(occhio quindi: nel testo assembler dovra` comparire una direttiva che
specifica questo indirizzo, qualcosa come "ORG $indirizzo" - ma la
sintassi dipendera` dall'assembler). La locazione 0 della stessa EPROM
dovra` invece contenere la locazione cui inizializzare lo stack pointer
(deve puntare in RAM ed essere abbastanza lontana dalla zona di memoria
che contiene il tuo programma - sai come funziona uno stack, vero?).
Questo perche' le prime cose che fa un 68000 quando si sveglia sono
inizializzare lo stack pointer con quello che c'e` a 0x0000 e il program
counter con quello che c'e` a 0x0004.
Bye
 David
-- 
<d.santinoli presso mi. flashnet. it>

 counter con quello che c'e` a 0x0004.
capito tutto :-)


 andare, giusto?
Non so se questo puo' andare per le tue esigenze (tra l'altro le
istruzioni sono per PPC), ma qui trovi le istruzioni per mettere su un
cross-compiler:
http://members.home.net/mmporter/linux/cross/
ovviamente devi cambiare i target con m68k. 
Io sono riuscito a fargli compilare il kernel per la VME su un normale
PC, la cosa piu' complicata e' stato trovare delle versioni
"compatibili" dei vari pacchetti (ti conviene vedere cosa hai sulla tua
distribuzione e usare quelli).
Ciao
-- 
Simone Piccardi
Microsoft is NOT the answer. Microsoft is the Question.
The answer is: "NO!"

 inizializzare lo stack pointer con quello che c'e` a 0x0000 e il program
per la precisione: il Supervisor stack pointer. l'USP deve essere
inizializzato dal programma dopo essere passato in modalità utente.
Ciao,
Fabio Alemagna