Nuovi sviluppi IDE 1.8.x

Io compilo dai repo ogni settimana, ho sempre la versione più aggiornata :stuck_out_tongue:

Aggiungo che, secondo me, le versione precedenti alla 1.0 dovrebbero essere considerate ormai deprecate. :blush:

1 Like

PaoloP:
Aggiungo che, secondo me, le versione precedenti alla 1.0 dovrebbero essere considerate ormai deprecate. :blush:

Le versioni antecedenti alla 1.0.1, tra quelle deprecate ci metterei anche la 1.0 per i noti problemi relativi al bug dello sketch ArduinoISP.

PaoloP:
Aggiungo che, secondo me, le versione precedenti alla 1.0 dovrebbero essere considerate ormai deprecate. :blush:

NON SIA MAIIIIII!!! Ogni volta che qualcosa non va, cambio percorso e tiro fuori dalla sua cartella avvolta nel velluto, la mia fiera 0022, compagna di tante avventure e mai un tradimento :smiley:
La 1.0 NON ha mai avuto il piacere di incontrare i miei computer ]:smiley: ne sono stato sempre fieramente alla larga.
Invece questo aggiornamento lo farò appena ho un minuto (circa Ferragosto, credo :disappointed_relieved:)

Neanch'io ho mai messo la 1.0, a dire il vero neanche la 0022, e sono passato direttamente alla 1.0.1.
Ma da quando ci fu quel problema con il menu a tendina di selezione della velocità seriale dell'IDE compilo sempre dai sorgenti.

leo72:
Ma da quando ci fu quel problema con il menu a tendina di selezione della velocità seriale dell'IDE

Problema presente solo se usi la versione localizzata invece di quella in Inglese, mi pare sia ancora presente anche sulla 1.0.3, non ne sono sicuro perché io uso solo la versione in Inglese e mai quella localizzata in Italiano.

E' stato risolto, non mi ricordo se nella 1.0.2 o nella 1.0.3

1.0.2, l'ho scaricata apposta :slight_smile:

Fondamentale questo:

  • Fixed memory leak when calling Ethernet.begin() multiple times

uhmm in teoria la begin la dovresti chiamare una volta, e poi il resto sono server.available()..

QUETSO! -----> Fixed malloc bug <------ è il vero bug fix della versione

lesto:
uhmm in teoria la begin la dovresti chiamare una volta, e poi il resto sono server.available()..

QUETSO! -----> Fixed malloc bug <------ è il vero bug fix della versione

No, sei fuori strada :wink:
La 1.0.4 è stata rilasciata per introdurre la libreria GSM per il nuovo shield dell'Arduino di cui si parla qui XD

lesto:
QUETSO! -----> Fixed malloc bug <------ è il vero bug fix della versione

Opinione personale, usare la malloc su un sistemino basato su una modesta mcu 8 bit con 2k di ram è come pestarsi le dita con una mazza da 5 kg :grin:

Tra l'altro, secondo una roadmap apparsa tempo fa sulla mailing list, questa dovrebbe essere l'ultima versione della serie 1.0.x
Le prossima sarà la versione stabile della 1.5.x che ingloberà (com'è già adesso) anche il core di Arduino, oltre che quello della DUE.
Inoltre stanno sviluppando un repository unificato per le librerie di terze parti.

astrobeed:

lesto:
QUETSO! -----> Fixed malloc bug <------ è il vero bug fix della versione

Opinione personale, usare la malloc su un sistemino basato su una modesta mcu 8 bit con 2k di ram è come pestarsi le dita con una mazza da 5 kg :grin:

ma se non erro la malloc viene usata molto spesso nelle librerie arduino, in primis la String, che usiamo praticamente tutti.

lesto:
ma se non erro la malloc viene usata molto spesso nelle librerie arduino, in primis la String, che usiamo praticamente tutti.

Direi proprio di no, il core di Arduino non usa la malloc() e nemmeno la String che è solo un tipo dato del C++, la definizione è allocata nello stack, i dati nel heap, idem per le varie funzioni della avrlibc.

in arduino-1.0.4/hardware/arduino/cores/arduino/ c'è la classe WSrtring.hpèerò mi son sbagliato perchè usa solo la realloc() e non la malloc(), però per intenderci la malloc viene usata e spesso, tanto che anche l'operatore "new" la usa (che poi anche l'uso della new sia deprecabile è un'altra storia)

lesto:
però per intenderci la malloc viene usata e spesso, tanto che anche l'operatore "new" la usa (che poi anche l'uso della new sia deprecabile è un'altra storia)

Ok, fammi vedere il codice sorgente dove viene usata la malloc, io dico che non lo trovi.

trovata in:
libraries/Firmata/Firmata.cpp
libraries/SD/File.cpp

(e nel firmware della wifiShield ma non credo che lì venga usata la malloc() "di arduino")

lesto:
ma non credo che lì venga usata la malloc() "di arduino"

Non esiste la malloc() di Arduino, è una funzione del C ben definita e fa parte dello standard del linguaggio, poi tocca vedere come viene implementata dai vari compilatori.

Se si sta parlando di AVR libc l'implementazione C++ è parziale Frequently Asked Questions le funzioni new e delete non sono implementate anche se con poche righe è possibile sopperire, mi sembra comunque un segno chiaro che sono da evitare

Sulla funzione malloc c'è qualche info su avr-libc: Memory Areas and Using malloc() non capisco che bug possa aver fissato Arduino essendo parte della libc