PaoloP:
Aggiungo che, secondo me, le versione precedenti alla 1.0 dovrebbero essere considerate ormai deprecate.
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
La 1.0 NON ha mai avuto il piacere di incontrare i miei computer ] ne sono stato sempre fieramente alla larga.
Invece questo aggiornamento lo farò appena ho un minuto (circa Ferragosto, credo )
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.
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.
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.
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
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.
Si, nella 1.0.4 hanno creato una funzione che si chiama malloc() che quindi va a sovrascrivere quella definita dalle librerie standard.
Il file è il nuovo malloc.c all'interno del core di Arduino.
Mumble, il malloc() l'hanno preso dalla libc con piccolissime modifiche, ho notato anche che il "new" è implementato nel core di arduino nel file new.h