Pages: 1 2 [3]   Go Down
Author Topic: procramma in C mac/linux per il controllo di arduino...  (Read 1620 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il bug presente in alcune delle ultime distribuzioni (io personalmente l'ho trovato in ArchLinux ed in K/X/Ubuntu 11.10) impedisce di compilare lo sketch ArduinoISP in maniera corretta. Apparentemente la compilazione avviene in maniera corretta (nessun errore da parte dell'IDE), ma una volta flashato sull'Arduino non è possibile utilizzare l'Arduino come programmatore ISP perché si ricevono diversi errori di sincronizzazione.

In buona sostanza, pare che qualcosa sull'ultima versione di Ubuntu non sia giusta (forse qualche tool della toolchain AVR) per cui vengono introdotti dei bug che nell'uso normale non si manifestano (qualunque sketch compilato a me ha sempre lavorato correttamente) mentre invece se si compila lo sketch ArduinoISP si hanno errori nei tempi di comunicazione della seriale (immagino io, perché l'errore è di "out of synch", se non ricordo male).

Curiosamente le precedenti versioni di K/X/Ubuntu (11.04) non sono affette da questo problema. Che non sembra colpire neanche l'ultima openSUSE 12.1.
« Last Edit: January 29, 2012, 04:52:11 am by leo72 » Logged


Offline Offline
God Member
*****
Karma: 5
Posts: 873
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vabbe ma se si riuscisse ad isolare esattamente il problema
sta nel pacchetto binutils-avr ?
sta nel pacchetto gcc-avr ?
sta nel profilo di gcc-avr che con qualche opzione di ottimizzazione o meno compila male  ?
sta nel pacchetto lib-c-avr &C ?
sta in uno o piu' pacchetti che riguardano la seriale ?
sta eventualmente in qualche modulo del kernel preposto alla gestione della seriale o altro ?
l'IDE da quanti pacchetti e' composto ?


Tutte queste domande fanno venir voglia di una sola cosa: distribuire il sistema di sviluppo arduino per linux sottoforma di miniroot, un po' come si fa sia su MacOSX che su Windows invece di integrarlo nel sistema come si fa su linux.

Della serie te lo scarichi, te lo scompatti in /opt, li c'e' tutto quello che gli serve e tutto resta li dentro senza aver bisogno di altro da nessuna altra parte del sistema e senza inzozzare niente altro nel sistema, e tu vivi felice. (sempre che non sia un problema legato ai driver, quindi ai kernel module, o a qualche opzione che riguarda come i moduli vengono caricati ed inizializzati).
« Last Edit: January 29, 2012, 04:54:31 am by legacy » Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Non so rispondere alle tue domande.

A me pare che sia un insieme di cause, nel senso che quando ho fatto l'indagine e segnalato il bug sul forum internazionale mi pareva di aver visto che le versioni dei tool in Ubuntu 11.10 erano le stesse di quelli di Ubuntu 11.04. L'unica differenza era il kernel 3.0 contro il kernel 2.6.38, difatti inizialmente avevo pensato ad un problema del kernel.
openSUSE 12.1 ha il kernel 3.1, quindi potrebbe anche darsi che sia proprio lui la causa di tutto, bisognerebbe verificare se nella nuova Ubuntu che arriverà ad aprile c'è il 3.1 oppure sempre il 3.0.
Logged


0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

testo io la cosa su ubuntu 11.10
a fra poco
Ritorno ora impressionato dai risultati:

Ubuntu pulito, installato poco fa e quasi mai usato
Installo da software center Arduino (c'e' ancora la vecchia 0.22 e sono 56MB)

Spengo, riaccendo. BieBie ubuntu, non si avvia. schermo nero e trattino lampeggiante in alto a sinistra smiley
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10113
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nuova versione di gcc, 4.6.2... l'avetre provata?
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

0
Offline Offline
Faraday Member
**
Karma: 39
Posts: 5610
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se mi aiutate a far ripartire ubuntu la provo smiley
Logged

- [GUIDA] IDE1.x - Nuove Funzioni - Sketch Standalone - Bootloader - VirtualBoard
http://arduino.cc/forum/index.php/topic,88546.0.html
- [LIBRERIA] ST7032i LCD I2C Controller Library
http://arduino.cc/forum/index.php/topic,96163.0.html

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Riprendo questo thread.
Ecco le versioni degli strumenti dela toolchain Avr a confronto:

openSUSE 12.1 (FUNZIONANTE)
avr-gcc 4.3.3
cross-binutils-avr 2.19.1
avr-libc 1.7.1

Kubuntu 11.04 (FUNZIONANTE)
avr-gcc 4.3.5
binutils-avr 2.20.1
avr-libc 1.6.8

Ubuntu 11.10 (NON FUNZIONANTE
avr-gcc 4.6.0
binutils-avr 2.20.1
avr-libc (??)

Non ho la versione di avr-libc (se qualche anima pia con Ubuntu/Kubuntu 11.10 può controllare la versione...) però, con i dati a confronto, mi viene da pensare che la colpa dell'errata compilazione dello sketch ArduinoISP sia da imputare al compilatore avr-gcc.

Logged


Offline Offline
God Member
*****
Karma: 5
Posts: 873
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo!

Umm, sto pensando che potrebbe benissimo essere gcc il problema, in passato mi sono successe cose bizzarre passando da una versione all'altra, pero' per parlare di gcc bisognerebbe prima considerare le opzioni che gli vengono passate per compilare.

Altra cosa se sospettassimo che sia il kernel invece il problema andrebbe indagato anche lui, verisione per versione.
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo!

Umm, sto pensando che potrebbe benissimo essere gcc il problema, in passato mi sono successe cose bizzarre passando da una versione all'altra, pero' per parlare di gcc bisognerebbe prima considerare le opzioni che gli vengono passate per compilare.
Questo è vero. So per certo che alcune versioni a partire dalla 4.6 sono buggate.

Quote
Altra cosa se sospettassimo che sia il kernel invece il problema andrebbe indagato anche lui, verisione per versione.
Sul forum internazionale dove ho postato il mio primo annuncio/lamentela hanno scartato questa ipotesi, che io inizialmente davo per primaria. Ed hanno anche ragione, alla fine il kernel altro non è che uno strato che gestisce il dialogo fra il software e l'hardware (tra le altre cose) per cui se la lingua è incomprensibile, al "mezzo" (cioè il kernel) poco gliene importa se l'ascoltatore non sa capire cosa il relatore sta dicendo...  smiley-sweat
Logged


0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10113
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Riprendo questo thread.
Ecco le versioni degli strumenti dela toolchain Avr a confronto:

openSUSE 12.1 (FUNZIONANTE)
avr-gcc 4.3.3
cross-binutils-avr 2.19.1
avr-libc 1.7.1

Kubuntu 11.04 (FUNZIONANTE)
avr-gcc 4.3.5
binutils-avr 2.20.1
avr-libc 1.6.8

Ubuntu 11.10 (NON FUNZIONANTE
avr-gcc 4.6.0
binutils-avr 2.20.1
avr-libc (??)

Non ho la versione di avr-libc (se qualche anima pia con Ubuntu/Kubuntu 11.10 può controllare la versione...) però, con i dati a confronto, mi viene da pensare che la colpa dell'errata compilazione dello sketch ArduinoISP sia da imputare al compilatore avr-gcc.



su linux arch ho binutils a 2.22 e gcc a 4.6.2, esiste un modo per fare un test senza dover flashare un at-mega?
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
God Member
*****
Karma: 5
Posts: 873
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@leo
ipotizzando che sia gcc-avr di una certa versione ad avere problemi, ipotizzando che per sfiga non se la siano beccata tutti ma solo quelli che si sono installati distro/versione "meno fortuata", e ipotizzandoo che questi problemi non siano nemmeno risolvibili cambiando le opzioni di compilazione (per esempio il tipo di ottimizzazione -o2 -o3 ecc), concentrandoci sul compilatore e' possibile downgradarlo nelle distro ubuntu dove non funziona ?

non conosco ubuntu e altre se non gentoo, non so se sia indolore o possibile fare downgrade di un pacchetto, su gentoo non e' proprio indolore, costa fatica ed ha un certo margine di rischio.

se si, se si puo' fare il downgrade senza spaccare tutto, si possono fare delle prove e vedere se e' proprio quello il problema ?

perche' capito cio' si inizia a lavorare su gcc, magari e' una stupidata da qualche parte nel suo intricato sottobosco che se fatta notare ai ragazzi del progetto GNU ci mettono meno di 5 minuti a risolvere =P
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

@lesto:
l'unico modo è provare l'ArduinoISP durante la flashatura di un altro micro. Altri test non ci sono perché "apparentemente" funziona tutto bene.

@legacy:
in teoria io credo di sì, che si possa fare su Ubuntu, perché le dipendenze sono 2 e basta. Nel senso che binutils-avr è legato ad avr-gcc e viceversa. Mi pare che binutils-avr 2.20 richieda avr-gcc >=4.5. Però non ho memoria sicura di questi valori.


Forse chi ha la 11.10 potrebbe provare ad installare binutils-avr e gcc-avr della 11.04 e vedere che succede. Io non ho la 11.10, potrei provare stasera su una macchina virtuale.
Logged


Pages: 1 2 [3]   Go Up
Jump to: