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?
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.
Michele, ci avevo già pensato (l'ho scritto qualche post dopo )
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.
Giorgio:
Michele, ci avevo già pensato (l'ho scritto qualche post dopo )
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 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
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....
@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?
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 ] 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 ) ce ne parlerà lui stesso
@ 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
b - recuperare gli strumenti dell'"epoca" per compilare? 8)
Allo stato attuale sono riuscito a compilarlo ( ] ).
C'è un problema, però. Non appena inserisco le modifiche di Giorgio, mi si crea una pletora di errori.... ora ricontrollo...
@Giorgio:
se ti interessa, oltre alla modifica al file stk500.c che ho messo nel mio primo post, devi modificare anche il file makefile alla riga 127 così:
@LEO
Innanzitutto,comunque vada grazie di cuore.Ora non ho modo di provare perché non ho qui il programmatore,ma domattina proverò.Sei stato davvero gentilissimo, sai mai che magari riesco a compilare anche io?
Avevo letto (e forse l'avevo scritto qui) che dalla 4.3 alcuni comandi tra cui quello erano stati sostituiti,tuttavia avevo corretto la riga jumptable ottenendo in cambio un numero ancora maggiore di imbarazzanti errori.
Ti aggiorno domattina,intanto grazie ancora per il prezioso tempo che mi hai dedicato.
Qualora riuscissi a compilare il file originale,procederò con il collaudato metodo "a tentativi" a commentare quelle righe che causano i problemi descritti.
@lesto:
Ma tu hai una toolchain differente. Ci siamo scambiati i pareri sull'altro thread, ricordi? Io uso quella presente in AUR patchata Atmel (con binutils-avr ripatchato ulteriormente da me).
Riguardo alla toolchain dell'IDE 1.0.1 non so che versione sia, ma se è successiva alla 4.3, quel flag è stato tolto per cui tocca modificare.
Sul recuperare gli strumenti dell'epoca la vedo dura, avendo un MAC OS è un sistema simil-Unix per cui credo debba installare la toolchain sul sistema levando però quella che ha. Forse sbaglio, non conosco il Mac.
Giorgio: @LEO
Innanzitutto,comunque vada grazie di cuore.Ora non ho modo di provare perché non ho qui il programmatore,ma domattina proverò.Sei stato davvero gentilissimo, sai mai che magari riesco a compilare anche io?
Avevo letto (e forse l'avevo scritto qui) che dalla 4.3 alcuni comandi tra cui quello erano stati sostituiti,tuttavia avevo corretto la riga jumptable ottenendo in cambio un numero ancora maggiore di imbarazzanti errori.
Ti aggiorno domattina,intanto grazie ancora per il prezioso tempo che mi hai dedicato.
Qualora riuscissi a compilare il file originale,procederò con il collaudato metodo "a tentativi" a commentare quelle righe che causano i problemi descritti.
Non mi ringraziare per ora. Fallo se e quando quel bootloader funziona
PS:
credo conti la toolchain differente, per cui magari quello che a te dà errori a me non li dà e viceversa.
lesto:
ma provando ad usare la tool-chain contenuta nell'ide 1.0.1?
recuperare gli strumenti dell'"epoca" per compilare?
tocca a me fare il calimero
ma da quand'è che parlo il cinese mandarino io ?
ed il bello che mi citi pure cioè secondo te quelle due frasi significano la stessa cosa?
tu parli della nuovissima IDE 1.0.1, mentre io mi riferisco agli strumenti con cui quelli di Arduino hanno compilato la prima (e a quanto pare anche ultima) volta il bootloader, che anno era, il 2007?
la toolchain inclusa in arduino 1.0.1 è uguale per tutti i sistemi ed è la versione avr-gcc (GCC) 4.3.2 (quindi suppergiù del 2008, direi che con il periodo ci siamo...)