Go Down

Topic: Aiuto per compilazione STK500boot.c (Read 7160 times) previous topic - next topic

Giorgio

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

leo72

E' la prima prova che ho fatto.

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

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?

leo72


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.

lesto

ma provando ad usare la tool-chain contenuta nell'ide 1.0.1?
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Michele Menniti


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?
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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..

Michele Menniti


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? :smiley-roll-sweat:
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

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.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Giorgio

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

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

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

Michele Menniti


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

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 :smiley-mr-green: 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 :smiley-sweat:
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....
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

leo72

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

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


leo72

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

Code: [Select]

-------- 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....

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

Michele Menniti


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

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 ]:D e tu sai quanto sono capace di smrd la gente, se mi provocano colpevolmente 8)

Quote

@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 :smiley-mr-green:) 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 :smiley-sweat:
b - recuperare gli strumenti dell'"epoca" per compilare? 8)
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up