Nuovi sviluppi IDE 1.8.x

lesto, io ho la rxtx presa dal repo di Arch ma ho i dispositivi /dev/ttyACM elencati senza problemi nell'IDE. Perché dici che la rxtx deve essere patchata per gestirli?

guarda che arduino carica la RXTX dalla sua cartella locale.e NON funziona come per il compilatore che se non lo trova nel path locale (cancleli la cartella) lo cerca nel path globale.

dovresti sostituire il file RXTX.jar e RXTX.so con i collegamenti a quella installata.

La sua installazione è una cosa controversa secondo me, è vero che linux cerca di installare i pezzi a parte per risparmiare sullo spazio , ma renderebbel’uso delle librerie fortemente SO based, cosa contro la natura di java.

Io sto usando quella bugfixata scritta qualche pagina fa e funziona benissimo, vai a capire l' Arduino Team.... adesso cancello quella originale :*

lesto:

Ha anche proposto la modifica nell’IDE ufficiale ma è stata rifiutata perché il problema c’è solo sotto windows.

qusta mi sembra una cosa strana. Una fix è una fix, indipendentemente per quale SO.

Lesto, la proposta di Eried e la successiva risposta che ha ricevuto si trovano proprio in questo forum.
Sulle prime Eried ci è rimasto male tanto che aveva cancellato tutti i post al riguardo, poi per fortuna ci ha ripensato. Credo che la fix forse avrebbe influenzato gli altri SO, ora non ricordo bene. A me interessava risolvere il problema e per fortuna la soluzione c’è.
Non sono riuscito a trovare la discussione ma c’è l’issue aperto qui
http://code.google.com/p/arduino/issues/detail?id=200
Risale a febbraio 2010 ma è ancora aperto.

Anche il team che sviluppa Energia (l’IDE per il Launchpad MSP430 e Stellaris clone dell’Arduino) non ha applicato la modifica di Eried che ha sviluppato anche una mod di Energia.

Io da un po’ uso sia la sua DLL che il suo IDE, a volte quello di Code::Blocks, ottimo per emulare pezzi di codice.

Se il team ufficiale ha deciso così, pazienza, uso le alternative. Avranno i loro buoni motivi.

Non dimentichiamo che la rxtx patchata rimuove anche l autore set alla apertura della seriale. Questo per qualcuno è un bene ma per il team è un alterazione al normale funzionamento che richiederebbe un cambio anche alla documentazione.

Prosegue il lavoro del Team E' stato integrato nella beta 1.5.3 l'IDE 1.0.5 più altre migliorie che riguardano la DUE. Questo IDE è al momento disponibile solo come nightly build.

ARDUINO 1.5.3 BETA

[ide] * Removed useless baud rates from serial monitor * Fixed some minor IDE UI bugs (Shigeru Kanemoto) * Added support for new 1.5 Library format (https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification) * Pass board type from boards.txt (https://github.com/arduino/Arduino/issues/308) * Display estimated RAM usage after compile (Loren M. Lang)

[arduino core] * sam: Fixed delayMicrosecond() when interrupts are disabled * sam: Upgraded libsam, and added missing modules (CAN, ETH, etc.) (Thibaut Viard) * sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen) * sam: Added serialEvent*() support * sam: Fixed micros() to work with inside interrupts. (stimmer) * avr: Added support for Flash strings on String class (Jantje) * Added support for floating point numbers in String class (Tevin Zhang, SebiTimeWaster) * sam: Fixed String buffer overflows (Paul Stoffregen) * avr: Added recipe for assembly files (C. A. Church)

[libraries] * sam: Added CAN library (still in early stage of development) (Palliser) * sam: Bugfix SPI library: begin() after end() now works (stimmer) * sam: Bugfix SPI library: incorrent pin configuration in non-extended mode.

[firmwares] * Arduino Due: fixed USB2Serial garbage at startup (https://github.com/arduino/Arduino/pull/1267)

[other] * Merged all improvements made in Arduino IDE 1.0.5

Tra le novità la pgmspace sulla DUE. :grin:

Testualmente dice : "Added compatibility for avr/pgmspace.h (Paul Stoffregen)" ... non so se hanno implementato una qualche tipo di pgmspace per ARM o ... più semplicemente hanno usato il trucchetto, già usato in molte lib, di ridefinire tutte le funzioni della pgmspace come NORMALI funzioni che fanno riferimento alla memoria standard ... XD

Hai mica un link che mi porti dove andare ad esaminare cosa è stato realmente fatto (senza che mi scarichi tutto e installi il tutto) o sai rispondere tu ?

Guglielmo

Ok ... trovato, e ... mi sembra che sia come supponevo ... nessuna pgmspace su ARM ... :grin: :grin: :grin:

Guarda qui : https://github.com/arduino/Arduino/blob/ide-1.5.x/hardware/arduino/sam/cores/arduino/avr/pgmspace.h

... in pratica non hanno fatto altro che ridefinire le funzioni ed i tipi che sugli AVR usavano la FLASH e che invece, sugli ARM, usano la RAM :(

Esempio :

#define memcpy_P(dest, src, num)   memcpy((dest), (src), (num))

... sporco trucco per evitare gli errori di compilazione ma non per risparmiare memoria RAM XD :grin: XD :grin:

Guglielmo

Ti stavo per postare il link. Sei stato più rapido. :sweat_smile:

E' il prezzo da pagare per rendere il codice scritto per le Uno/Mega/Leonardo compatibile con le Due senza modifiche.

Personalmente avrei preferito separate due versioni di IDE e creato un software di "traduzione" o "acquisizione" per la DUE, alla fine si imbordelliranno le cose temo, a favore della DUE e a danno della UNO & Co

al contrario, arduino DUE può fare tutte le cose di arduino più qualcosa. Quindi le cose che possono fare entrambe lo fanno con le stesse classi (come poi sia implementato il codice specificatamente chissene), le cose in più che può fare la due avranno delle librerie a parte.

La stessa cosa vale per la leonardo!

  • Pass board type from boards.txt (https://github.com/arduino/Arduino/issues/308)
  • Display estimated RAM usage after compile (Loren M. Lang) Queste due sono interessanti, la prima la notai tempo fa quando testai l ultima versione di optiboot, lo feci presrnte a westwm, o come si chiama :-) La seconda è utilissima, richiesta piu e piu volte. Poi leggo molti bugfix su String, ci volevano, spero vi rientri quello strano difetto che sbaglia i concatenamenti in alcuni casi. A questo punto si passi tutyi a 1.5 e via, io la uso da sempre e va bene

Ci sono utenti che rimangono inchiodati alla 0.22/23 e snobbano la 1.0.x, e tu gli proponi di passare alla 1.5.x che è in beta? :astonished:

sono stato renziano :)

revision.txt:
Updated arm gcc to 4.7.4

Hanno cambiato la versione del compilatore per la DUE.

Il file completo è

ARDUINO 1.5.3 BETA

[ide]

[arduino core]

  • sam: Fixed delayMicrosecond() when interrupts are disabled
  • sam: Upgraded libsam, and added missing modules (CAN, ETH, etc.) (Thibaut Viard)
  • sam: Added compatibility for avr/pgmspace.h (Paul Stoffregen)
  • sam: Added serialEvent*() support
  • sam: Fixed micros() to work with inside interrupts. (stimmer)
  • avr: Added support for Flash strings on String class (Jantje)
  • Added support for floating point numbers in String class (Tevin Zhang, SebiTimeWaster)
  • sam: Fixed String buffer overflows (Paul Stoffregen)
  • avr: Added recipe for assembly files (C. A. Church)
  • avr: Use analogPinToChannel if it’s defined (Kristian Sloth Lauszus)
  • avr: Optimized HardwareSerial buffer (Matthijs Kooijman)

[libraries]

  • sam: Added CAN library (still in early stage of development) (Palliser)
  • sam: Bugfix SPI library: begin() after end() now works (stimmer)
  • sam: Bugfix SPI library: incorrent pin configuration in non-extended mode.
  • Ported all libraries to new 1.5 format

[firmwares]

[other]

  • Merged all improvements made in Arduino IDE 1.0.5

Comunque stanno segnando sempre più differenze tra la 1.0.x e le 1.5.x.
A cominciare ad esempio alle librerie che dovranno essere completamente riviste nel nuovo formato.
Non basterà aggiungere #ifdef ARDUINO > 100 :grin: :grin:

Come dici giustamente, hanno cambiato compilatore ma solo per la versione ARM, quindi solo nel caso in cui si usi la DUE.

Nel caso si compili per i vecchi chip AVR, deduco che la versione sia la stessa, quindi ci sono sempre i problemi del limite della memoria per chip con tanta Flash.

leo72: Come dici giustamente, hanno cambiato compilatore ma solo per la versione ARM, quindi solo nel caso in cui si usi la DUE.

Nel caso si compili per i vecchi chip AVR, deduco che la versione sia la stessa, quindi ci sono sempre i problemi del limite della memoria per chip con tanta Flash.

ma infatti io non comprendo perchè trascurare questo limite ed aggiornare questo benedetto compilatore....a sto punto era inutile produrre la MEga 2560,tanto valeva restare con la 1280!!!... PS: a compilazione del mio sketch domotico l'IDE mi restituisce: Dimensione del file binario dello sketch: 68.116 bytes (su un massimo di 258.048 bytes) .....e ce ne devo ancora mettere di roba,ci starà??....

Perché le nuove versioni di compilatori per AVR hanno altri problemi che devono essere prima risolti su tutte e tre le piattaforme di riferimento: Windows, Linux e Mac. E' non è una cosa facile. Se usi Windows o Linux, puoi già aggiornare la toolchain con l'ultima disponibile (aprile 2013). Ci sono 2 topic distinti per piattaforma in Megatopic. Per Mac nisba.

PaoloP: Perché le nuove versioni di compilatori per AVR hanno altri problemi che devono essere prima risolti su tutte e tre le piattaforme di riferimento: Windows, Linux e Mac. E' non è una cosa facile. Se usi Windows o Linux, puoi già aggiornare la toolchain con l'ultima disponibile (aprile 2013). Ci sono 2 topic distinti per piattaforma in Megatopic. Per Mac nisba.

appunto..Mac