Go Down

Topic: Strano problema con signature scrivendo il bootloader (Read 14 times) previous topic - next topic

astrobeed


Uhm... qui non vorrei allora che fosse solo un problema di Windows dato che la toolchain AVR su Linux si installa a parte e non usando software distribuito con Arduino: l'unico strumento che su Linux uso dell'IDE è avrdude perché Arduino usa una versione patchata per far riconoscere l'Arduino come programmatore ISP.


Potrebbe anche essere, la cosa la puoi verificare in meno di 10 secondi, prova a compilare un qualunque sketch modificando in board.txt la mcu da atmega328p in atmega328, se non ti da errori vuole dire che sotto Linux è supportato e a questo punto deve funzionare anche lo sketch ISP con la board virtuale di Michele.


niki77



Ora io non vorrei fare il bastian contrario e darti contro, astro, ma qui c'è scritto che il 328nonP è supportato da avr-libc:


Ma certo che si, ho pure detto chiaramente che in AVRstudio con la toolchain avrgcc c'è il 328 senza p, però non è presente nel compilatore/librerie abbinate ad Arduino.


Anche con WinAVR-20100110 è riconosciuto quel chip.
Risolvere il problema dell'errore in fase di build di arduino non è niente di complicato.
La cosa difficile è capire se poi quello che viene fuori è corretto.
Stò facendo alcune prove in merito ma i risultati ottenuti mi lasciano molto perplesso.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Michele Menniti

Beh se con Linux funziona metto una "postilla" alla Guida.

@Niki77: questa cosa del WinAVR-20100110 mi ha fatto venire in mente la tecnica che consigliò BrainBooster a Daniele, che aveva anche lui 4 328 da utilizzare. Ora ricordo che lui disse di aver risolto, ma allora non avevo modo di provare; visto che le prove le stai facendo tu, cerchiamo di capire cos'è che non va, se vuoi se ne parla qui, tanto il Topic è tuo  :D
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

astrobeed


Anche con WinAVR-20100110 è riconosciuto quel chip.


La versione allegata con Arduino è del 2008.

Quote

Risolvere il problema dell'errore in fase di build di arduino non è niente di complicato.


Stai scherzando vero ?
Se manca nel compilatore non basta modificare qualche file .h, .ini, .conf, qui parliamo di una differenza hardware nel core e il compilatore ne deve tenere debitamente conto, tocca modificare il compilatore stesso e ricompilarlo.

leo72

Non va.
Messo atmega328 al posto di atmega328p nella voce dell'Arduino UNO, alla compilazione appare:
Code: [Select]

/usr/bin/avr-ld: crtm328.o: No such file: No such file or directory
collect2: ld returned 1 exit status

avr-ld è il linker per AVR.

niki77


La versione allegata con Arduino è del 2008.


Verissimo, ma a far usare ad ardunino la versione 2010 ci vogliono 5 secondi netti.



Stai scherzando vero ?
Se manca nel compilatore non basta modificare qualche file .h, .ini, .conf, qui parliamo di una differenza hardware nel core e il compilatore ne deve tenere debitamente conto, tocca modificare il compilatore stesso e ricompilarlo.


Non ho mai detto quello che ho fatto nello specifico per risolvere il problema.
La prima cosa che mi viene da pensare a monte di questa osservazione è che lei  è molto prevenuto con la gente nuova.

@Michele.
Come accennato prima, per fare in modo che l'ide di arduino (ATTENZIONE IO PARLO DI ARDUINO ON WINDOWS!!) non generi errore mandando a compilare uno sketch con direttive per m328 non è un problema, il punto è che non sono assolutamente sicuro di quel cavolo che combina il compilatore.
Non ne sono sicuro in particolar modo perchè tentando di compilare codice che utilizza lo sleep, quest'ultimo lo compila senza errori ugualmente, e questo secondo me non dovrebbe accadere.

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

leo72

Ma gli sleep funzionano perché sono già parte del core del 328.
Se leggi il datasheet, difatti, non parla di una distinzione fra 328 e 328p:

Quote
Figure 8-1 on page 26 presents the different clock systems in the
ATmega48A/48PA/88A/88PA/168A/168PA/328/328P, and their distribution.

(pag. 39)

I problemi vengono quando vuoi agire sui singoli moduli. Ad esempio, pag. 40:
Code: [Select]
BOD Disable(1)
(....)
Note: 1. BOD disable only available in [b]picoPower[/b] devices ATmega48PA/88PA/168PA/328P

E questo è un caso.


niki77



I problemi vengono quando vuoi agire sui singoli moduli. Ad esempio, pag. 40:
Code: [Select]
BOD Disable(1)
(....)
Note: 1. BOD disable only available in [b]picoPower[/b] devices ATmega48PA/88PA/168PA/328P

E questo è un caso.




Si esattamente quello intendevo Leo, scusate la superficialità della precedente spiegazione.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Michele Menniti

Ma perché forse è come dice Astrobeed, bisogna capire cosa hai fatto per riuscire a compilare, però tu non lo dici e quindi diventa difficoltoso capire cosa succede.
Il problema che stiamo dicendo tutti in forme differenti, è sempre lo stesso: o il compilatore HA le info hardware del 328 "liscio" oppure ogni metodo va bene ma considerando che probabilmente si compila per l'hardware del 328P, con tutte le conseguenze del caso.
Ora io sto parlando al "buio", non sapendo se tu invece sei riuscito a trovare o meno una tecnica che compili correttamente. Il fatto che non ti dia errore con i comandi di power saving FORSE non è un problema vero: mi pare di ricordare che Astrobeed disse che la circuiteria interna c'è ma non è collegata (spero di non aver riportato una czzt :smiley-red:), questo forse giustificherebbe il comportamento che dici. Invece le prove forse andrebbero rivolte verso i due comandi che sempre Astrobeed dice che mancano nel 328 liscio: jump e call, se non ricordo male.

PS: non devo essere io a difendere Astrobeed, le sue conoscenze sono tali da non lasciare molto spazio a contraddittori, in più la sua disponibilità è tale che nessuno, in genere, si lamenta dei suoi toni a volte perentori, sono dettati dalle certezze spesso inconfutabili di chi è un professionista del settore, contrariamente ad uno come me, che sono di ignoranza fatale. :smiley-mr-green:
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

astrobeed


Verissimo, ma a far usare ad ardunino la versione 2010 ci vogliono 5 secondi netti.


Con Linux probabilmente si, con Windows il discorso è decisamente più complesso.

Quote

Non ho mai detto quello che ho fatto nello specifico per risolvere il problema.
La prima cosa che mi viene da pensare a monte di questa osservazione è che lei  è molto prevenuto con la gente nuova.


Io sono prevenuto contro chi afferma di aver risolto problemi che sono più grossi di lui, in tutto questo thread ho visto una "faciloneria" esagerata con soluzioni che si basano su compromessi di vario genere che portano solo ad altri problemi.


niki77



Con Linux probabilmente si, con Windows il discorso è decisamente più complesso.



Io non uso linux con arduino ... l'ho scritto pure sopra.

Quote


Io sono prevenuto contro chi afferma di aver risolto problemi che sono più grossi di lui, in tutto questo thread ho visto una "faciloneria" esagerata con soluzioni che si basano su compromessi di vario genere che portano solo ad altri problemi.



Ok, se qualcuno ha intenzione di sapere quello che ho fatto me lo chieda in privato, vedo che non a tutti interessa, e lo capisco benissimo.
Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Michele Menniti


......in tutto questo thread ho visto una "faciloneria" esagerata con soluzioni che si basano su compromessi di vario genere che portano solo ad altri problemi.

questo mi ricorda tanto quelle mega-scazzottate in cui Bud Spencer (mi scuso con Pelletta) picchiava tutti indistintamente, e spesso le buscava anche Terence Hill (e viceversa :smiley-yell:).
Beh, insomma, alla fine si è concordato che quella trovata era una onorevole soluzione parziale, il cui funzionamento va verificato, sì, ma che comunque ha le sue possibilità di riuscita.
Ho già "testimoniato" che da alcuni giorni sto usando il 328 liscio su Arduino 2009, con su caricato ArduinoISP, per programmare chip con sketch di ogni genere; finora NON ho avuto problemi, almeno in apparenza. Quindi se alla fine i problemi non ci sono, o se, pur essendoci, non inficiano il funzionamento del micro, la conclusione a cui ero arrivato è "meglio così che buttarli". Tutto ciò detto ho affermato di essere un perfezionista e che neanche a me piacciono le cose non precise, ma io ho cercato di dare una mano, l'hai fatto anche tu, p.es. compilando il bootloader o creando il progetto per un programmatore AVR, quest'ultima soluzione certamente funzionale. Ognuno fa quel che può :)
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

gcblack

Io capisco la posizione di astro che non condivide l'uso di questi micro, ma io sono moooooolto contento per i risultati raggiunti grazie a tutti voi che avete eseguito i vari test e le moltitudini di prove. Da parte mia non posso che essere soddisfatto di poter usare questi micro oggetto di erroneo acquisto anch se sono consapevole di poterli sfruttare con sketch non troppo complicati, proprio per non risciare di richiamare funzioni non riconosciute dal micro.
Per il resto devo solo che RINGRAZIARVI!  :smiley-mr-green:


Ok, se qualcuno ha intenzione di sapere quello che ho fatto me lo chieda in privato, vedo che non a tutti interessa, e lo capisco benissimo.

Non sono daccordo con Niki invece perchè penso che la community sia fatta per condividere, sia le cose giusete, le sbagliate, che quelle a metà strada, proprio perchè può diventare uno spunto per altri o semplicemente per correggere convinzioni sbagliate

GH_Blackout

beh pter usare sketch non troppo complicati va piu che bene
del resto mica dobbiamo controllare la temperatura dei noccioli di una centrale nucleare!!

quel grado di approssimazione va piu che bene


@astro: sei laureato in matematica?
~blackout~ @ grayhats.org

ratto93


beh pter usare sketch non troppo complicati va piu che bene
del resto mica dobbiamo controllare la temperatura dei noccioli di una centrale nucleare!!


Magari non in un vero nocciolo ma nel core di un fusor  forse si :P
Se corri veloce come un fulmine, ti schianterai come un tuono.

Go Up