Aiuto per compilazione STK500boot.c

Appunto, è quello che ti dicevo. Forse è un codice vecchio, e non sarebbe la prima volta. Anche il bootloader della UNO contenuto nell'IDE 0022 non è compilabile :stuck_out_tongue_closed_eyes:

Ah.Caspita.Non lo sapevo.
E c'e' speranza che un comune mortale possa correggere tale errore,oppure bisogna aspettare qualche release ufficiale?
Per la cronaca io ho provato sia con la 1.0 che con la 1.1

Ho provato ora con la 1.0.1 sempre sotto Linux: niente da fare.

Prova a segnalare la cosa nella sezione internazionale per vedere se è una cosa nota e/o risolta.

Forse è il problema è proprio l'anzianità del codice:

/usr/lib/gcc/avr/4.3.4/../../../avr/bin/ld: avr:51 architecture of input file `stk500boot.o' is incompatible with avr:6 output

Qui dice appunto che ci sono problemi di incompatibilità fra architetture

Ho postato nella sezione internazionale.
Con la 22 hai già provato?

E' la prima prova che ho fatto.

leo72:
In questo momento sono su Ubuntu 10.04, ho compilato il file prelevandolo dall'Arduino 0022 e con i tool di sistema.

In effetti non posso fare a meno di notare che il file è inalterato ;(
Ma scusa..vuoldire che dai tempi delle 022 NESSUNO ha più ricompilato il bootloader di Arduino Mega2560?

Giorgio:
In effetti non posso fare a meno di notare che il file è inalterato ;(
Ma scusa..vuoldire che dai tempi delle 022 NESSUNO ha più ricompilato il bootloader di Arduino Mega2560?

Non so che dire. Forse compilano su altri SO o con altri strumenti (esempio AvrStudio)... boh.

ma provando ad usare la tool-chain contenuta nell'ide 1.0.1?

Giorgio:
In effetti non posso fare a meno di notare che il file è inalterato ;(
Ma scusa..vuoldire che dai tempi delle 022 NESSUNO ha più ricompilato il bootloader di Arduino Mega2560?

Possibilissimo, d'altra parte a chi dovrebbe interessare modificare un software che fa la sua parte senza troppi problemi? A te, certamente, ma io non ne avevo mai sentito parlare e se un big del calibro di Leo non riesce, la vedo malissimo. Forse BB, che ricordo smanettò un po' per ricompilare l'AVRDUDE.EXE ai tempi del 328 noP, se passa può dirci qualcosa.
Ma, a proposito, se è lecito chiedere, perché vuoi modificare il bootloader?

Speriamo di trovare una soluzione.Ieri ho trovato la bellezza di 16 moduli bloccati causa temporale..

Michele,questo è io motivo che mi porta a volerlo modificare (l'avevo scritto nel post #2)
Il bootloader di arduino,si blocca se durante la fase di boot riceve dei dati sulla seriale (perché si mette in attesa di un nuovo firmware).Siccome ho molti moduli custom hardware basati su arduino 2560 su una unica dorsale RS485,
qualora manchi alimentazione ad uno di questi moduli, il grande traffico modbus che c'e' sulla dorsale non gli permette più di far partire lo sketch.Ecco perché ho bisogno di ignorare questa funzione e forzare l'avvio dello sketch.
Purtroppo non posso più cambiare porta com di Arduino perché il pcb è fatto così..ci avessi pensato prima..

Giorgio:
Speriamo di trovare una soluzione.Ieri ho trovato la bellezza di 16 moduli bloccati causa temporale..

Michele,questo è io motivo che mi porta a volerlo modificare (l'avevo scritto nel post #2)
Il bootloader di arduino,si blocca se durante la fase di boot riceve dei dati sulla seriale (perché si mette in attesa di un nuovo firmware).Siccome ho molti moduli custom hardware basati su arduino 2560 su una unica dorsale RS485,
qualora manchi alimentazione ad uno di questi moduli, il grande traffico modbus che c'e' sulla dorsale non gli permette più di far partire lo sketch.Ecco perché ho bisogno di ignorare questa funzione e forzare l'avvio dello sketch.
Purtroppo non posso più cambiare porta com di Arduino perché il pcb è fatto così..ci avessi pensato prima..

Scusami, mi era sfuggito che l'avessi spiegato, quindi stai tentando di disabilitare la fase di attesa del firmware. A questo punto, sempre che non dico una caxxt storica, il mio parere è che tu ti liberi del bootloader, che non ti serve a nulla e programmi i tuoi moduli via ISP, recuperi memoria flash, tempo di riavvio e ti levi dalle b... il problema. Cosa ti impedisce (al di là della rottura di sc...) di fare questa operazione una-tantum? L'eventuale aggiornamento software lo faresti sempre via ISP, non vedo contro-indicazioni, cosa mi sfugge? :cold_sweat:

Può essere che non compila perchè non è quello il bootloader per la Mega 2560?
Io ricordo che tempo addietro ebbi una discussione con Astrobeed e lui mi confermo che il bootloader della mega è molto diverso da quello presente sulla 2009 che implementa il protocollo stk500 versione 1, mentre la mega implementa il protocollo stk500v2.

Prova se questo compila.
http://www.avr-developers.com/bootloaderdocs/index.html

Ciao.

Michele, ci avevo già pensato (l'ho scritto qualche post dopo :smiley: :smiley: )

In effetti la soluzione funziona,flashando direttamente il programma il problema si risolve, però come spiegavo perdo la possibilità di effettuare aggiornamenti sul posto e non ultimo devo completamente smontare tutto il modulo,aprirlo e collegare il programmatore. Questi moduli custom che ho realizzato e commercializzato sono dotati di scatola metallica con dentro 2 pcb, e la presa usb è sulla porta anteriore.

Purtroppo può capitare di doversi recare sul posto e aggiornare al volo il modulo mediante usb.

Mauro,sono certo che quello sia il bootloader adatto, tuttavia domattina proverò a compilare i file da te suggeriti..

Giorgio:
Michele, ci avevo già pensato (l'ho scritto qualche post dopo :smiley: :smiley: )

In effetti la soluzione funziona,flashando direttamente il programma il problema si risolve, però come spiegavo perdo la possibilità di effettuare aggiornamenti sul posto e non ultimo devo completamente smontare tutto il modulo,aprirlo e collegare il programmatore. Questi moduli custom che ho realizzato e commercializzato sono dotati di scatola metallica con dentro 2 pcb, e la presa usb è sulla porta anteriore.

Purtroppo può capitare di doversi recare sul posto e aggiornare al volo il modulo mediante usb.

ok, sto collezionando figurimm :grin: ma onestamente all'inizio non ho seguito la cosa perché non è materia in cui posso mettere parola, capito che si trattava di compilare il bl ho solo guardato se risolvevi o meno, senza scendere nel dettaglio di ciò che scrivevi :sweat_smile:
Certo, con le cose fatte per bene è ovvio che tu cerchi la soluzione software. Ma se, malauguratamente, non dovessi farcela, al tuo posto troverei delle belle prese compatibili meccanicamente con l'USB, a 6 poli (se hai usato l'USB mini p.es ti basterebbe quello per il 3.0 che mi pare ne abbia 8). Internamente porterei alla presa i segnali ISP ed il gioco è fatto. Certo dovrai smontarli per fare un "aggiornamento" hardware, ma alla fine da fuori non si vede nulla. Più facile a dirsi, certo....

@Mike:
"big del calibro di Leo"... che fai, sfotti? :stuck_out_tongue:

@Mauro:
quello è il bootloader denominato Stk500v2, dovrebbe essere lui.

@Giorgio:
sono adesso a casa, su Arch Linux, con avr-gcc versione 4.5.3 e patch Atmel.
Lanciando la compilazione, ottengo:

-------- begin --------
avr-gcc (GCC) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


Compiling: stk500boot.c
avr-gcc -c -mmcu=atmega2560 -I. -gdwarf-2 -DF_CPU=16000000UL  -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -mno-tablejump  -Wall -Wstrict-prototypes -Wa,-adhlns=stk500boot.lst  -std=gnu99 -D_MEGA_BOARD_ -MD -MP -MF .dep/stk500boot.o.d stk500boot.c -o stk500boot.o 
cc1: error: unrecognized command line option "-mno-tablejump"
make: *** [stk500boot.o] Errore 1

Ho fatto una ricerca su Google e ti trovo che dalla versione 4.4 in poi di avr-gcc l'opzione -mno-tablejump è deprecata. Questo avalla la mai tesi che quel codice è vecchio e che ultimamente nessuno lo ha provato a ricompilare con i tool più recenti....

Document the -mno-tablejump option as deprecated in the GCC 4.4 and removed
in the GCC 4.5, for AVR target.

leo72:
@Mike:
"big del calibro di Leo"... che fai, sfotti? :stuck_out_tongue:

quando mai? i miei "sentimenti" per te sono ormai noti a tutti, quasi non c'è articolo su Elettronica in cui non appaia il tuo nome con ringraziamenti e scappellamenti (nel senso di levate di cappello :D), posso ben dire che ti reputo un big o no? Che czz devi dimostrare ancora dopo tutto ciò che hai fatto per te stesso e soprattutto per il Forum? Ora non arrossire e domani manda il bonifico promesso in MP, altrimenti aggiungo un post di smentita in cui ti trasformo in un incrocio nucleare tra un verme ed una sanguisuga, altro che pinguino ]:smiley: e tu sai quanto sono capace di smrd la gente, se mi provocano colpevolmente 8)

@Mauro:
quello è il bootloader denominato Stk500v2, dovrebbe essere lui.

speriamo, il nostro Giorgio è uno che decisamente merita di risolvere il suo problema, da quanto intuisco ha fatto qualcosa di notevole; magari a cose fatte (non prima, mai parlare di cose che non funzionano :grin:) ce ne parlerà lui stesso :wink:

@ Leo: leggo in diretta del nuovo insuccesso e da fatale ignorante ragiono: qualcuno questo bl deve pur averlo compilato visto che ce lo forniscono; non si può semplicemente:
a - scrivere a Uwe chiedendo supporto della band per la ricompilazione :sweat_smile:
b - recuperare gli strumenti dell'"epoca" per compilare? 8)

Allo stato attuale sono riuscito a compilarlo ( ]:smiley: ).
C'è un problema, però. Non appena inserisco le modifiche di Giorgio, mi si crea una pletora di errori.... ora ricontrollo... :sweat_smile: