Go Down

Topic: Ottimizziamo il codice del core di Arduino (Read 28341 times) previous topic - next topic

Maurotec

Io ho scaricato la 1.5.x ma non riesco a trovare dentro il tree dei sorgenti la verisone precisa di ciò che ho scaricato.
Comunque, il core di ciò che ho scaricato non contiene queste modifiche.

Se a te non da questi warning abilitando da preference vuol dire che hanno disabilitato i warning (forse).

Riguardo a questo:

Quote
l'esempio di WebServer della Ethernet ... va in errore ...  smiley-cry smiley-cry smiley-cry


gpb01 aveva iniziato ad apportare la modifica a IPAddress in base al mio suggerimento iniziale ma non avevo
modificato Ethernet.cpp per cui riceveva errori.

Ciao.


gpb01

#46
Dec 09, 2013, 11:06 pm Last Edit: Dec 09, 2013, 11:11 pm by gpb01 Reason: 1
Paolo ... ho idea che stai sbagliando da qualche parte la verifica ...
... IPAddress per AVR è identico sulla 1.5.5 e sulla 1.0.5 ... e se da problemi da una parte, deve dare problemi anche dall'altra !!!

Quindi ...
... ricontrolla che effettivamente stai usando la toolchain 3.4.3 e che non l'hai messa nel posto sbagliato (e quindi continua a usare la vecchia), controlla di aver messo verbose nella compilazione, ecc. ecc.

Essendo il compilatore lo stesso .. ti rendi conto che NON può in un caso segnalare un problema ed in un altro no ... visto che i due sorgenti sono gli stessi ! ;)

Guglielmo

Edit : Su Mac ( ma su Win è simile) il percorso per il core AVR è :
Code: [Select]
/Applications/Arduino 1.5.5.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino
Search is Your friend ... or I am Your enemy !

nid69ita

#47
Dec 09, 2013, 11:16 pm Last Edit: Dec 09, 2013, 11:29 pm by nid69ita Reason: 1
Confermo che sono quasi identici tra 1.0.5 e.1.5.5
C'e' solo una differenza, nella 1.5.5 c'e' all'inizio questo include che manca nella 1.0.5
Code: [Select]
#include <stdint.h>
Uso il programma BeyondCompare per trovare le differenze di codice tra stessi file in due cartelle.
my name is IGOR, not AIGOR

gpb01

#48
Dec 09, 2013, 11:27 pm Last Edit: Dec 09, 2013, 11:35 pm by gpb01 Reason: 1
Ok Paolo, effettivamente ho sostituito la toolchain nella 1.5.5 ed ho provato a compilare il WiFiServer e ... chiedo scusa,  HAI RAGIONE !!!  XD XD XD

Ma, controllando la compilazione ... mi sembra di NON vedere più usato IPAddress.cpp  :smiley-eek: :smiley-eek: :smiley-eek:

Ecco perché non ti da errore !!!  Probabilmente hanno cambiato la libreria WiFi e la Ethernet per non includerlo più ...  :smiley-roll: :smiley-roll: :smiley-roll:

Occorre una verifica delle lib ...

Guglielmo
Search is Your friend ... or I am Your enemy !

gpb01

Mi correggo di nuovo LO USA, ma con la seguente stringa di compilazione :

Code: [Select]

/Users/gpb01/Desktop/Prove Toolchain/Arduino 1.5.5 TL 3.4.3.app/Contents/Resources/Java/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=155 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/Users/gpb01/Desktop/Prove Toolchain/Arduino 1.5.5 TL 3.4.3.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino -I/Users/gpb01/Desktop/Prove Toolchain/Arduino 1.5.5 TL 3.4.3.app/Contents/Resources/Java/hardware/arduino/avr/variants/standard /Users/gpb01/Desktop/Prove Toolchain/Arduino 1.5.5 TL 3.4.3.app/Contents/Resources/Java/hardware/arduino/avr/cores/arduino/IPAddress.cpp -o /var/folders/td/xjbgg2n97rl9wsy40_rsj90h0000gn/T/build6874946970987828386.tmp/IPAddress.cpp.o


... Mauro .. ti dicono qualche cosa tutte quelle direttive ???:smiley-eek: :smiley-eek: :smiley-eek:

Guglielmo
Search is Your friend ... or I am Your enemy !

nid69ita

#50
Dec 09, 2013, 11:34 pm Last Edit: Dec 09, 2013, 11:39 pm by nid69ita Reason: 1
@Guglielmo, nelle 2 cartelle del core 1.0.5 e 1.5.5 i file che mi risultano diversi sono:
Arduino.h     (aggiunta funzione void yield(void) come dichiarazione)
CDC.cpp
HardwareSerial.cpp e .h
IPAddress.h
USBAPI.h
USBCore.cpp
wiring.c             (nella delay() richiama la yield() !?!)
wiring_analog.c
WString.cpp e .h    (hanno aggiunto un pò di metodi per le stringhe in flash ram)
(Eliminato malloc.c e aggiunto hooks.c)
Tutto il resto è identico.
my name is IGOR, not AIGOR

gpb01

Si nid, ma ho fatto adesso la comparazione dei due IPAddress.h (utilizzando DeltaWalker, e non ad occhio) e, l'unica differenza, è appunto l'include :

Code: [Select]
#include <stdint.h>

Guglielmo
Search is Your friend ... or I am Your enemy !

lestofante

IPAddress è usata, e si è "spostata" nelle librerie core (o forse è sempre stata lì?)
ora controllo...


BALORDI!!! -w è di default, ora nascondono tutti i warning!! MALOOO!!!! apro subito un bug

edit: nid prossima volta controlla bene, se metti su verbose vedesisubito il maledetto -w
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

nid69ita

#53
Dec 09, 2013, 11:45 pm Last Edit: Dec 09, 2013, 11:48 pm by nid69ita Reason: 1
Code: [Select]

/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=155 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/...

\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L  -DARDUINO=105 -DUSB_VID=null -DUSB_PID=null  -I/...


@Guglielmo ho messo anche la compilazione da me della 1.0.5  e la tua, togliendo dagli include in poi
Han solo tolto "all" da -W
Le altre define che fanno? I vari -D qualcosa ?
my name is IGOR, not AIGOR

gpb01


...
BALORDI!!! -w è di default, ora nascondono tutti i warning!! MALOOO!!!! apro subito un bug
...


Ma sono matti ??? E' vero, guarda la riga di copilazione che ho messo QUI ... nonostante il verbose ... c'è proprio il -w ... che Dio li fulmini !!!

@Paolo : ecco perché non vedi warning  :smiley-mr-green: :smiley-mr-green: :smiley-mr-green:

Guglielmo
Search is Your friend ... or I am Your enemy !

PaoloP

#55
Dec 09, 2013, 11:50 pm Last Edit: Dec 09, 2013, 11:52 pm by PaoloP Reason: 1

BALORDI!!! -w è di default, ora nascondono tutti i warning!! MALOOO!!!! apro subito un bug

:smiley-eek-blue:

Si risolve facilmente editando nel file platform.txt la riga
Code: [Select]
compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD
parlo sempre della versione 1.5.5

Maurotec

Quote
BALORDI!!! -w è di default, ora nascondono tutti i warning!! MALOOO!!!! apro subito un bug

:smiley-mr-green:

@PaoloP
Si risolve facilmente editando nel file platform.txt la riga
Ottimo, la 1.55 allora permette di modificare i flags, prova ad aggiungere -save-temps, ti tornerà utile in molte occasioni.

Ciao.

gpb01

C'è comunque un problema ... anche se metti verbose, non mette la -Wall ...  =( =( =(

Tocca metterla a mano ...

Guglielmo

P.S. : Ovviamente, mettendola, saltano fuori TUTTI i warning che Mauro ha risolto ;)
Search is Your friend ... or I am Your enemy !

PaoloP

Si Mauro.
E' altamente customizzabile e ci sono flag per tutti i gusti e tutte le situazioni
Code: [Select]
compiler.c.cmd=avr-gcc
compiler.c.flags=-c -g -Os -w -ffunction-sections -fdata-sections -MMD
compiler.c.elf.flags=-Os -Wl,--gc-sections
compiler.c.elf.cmd=avr-gcc
compiler.S.flags=-c -g -assembler-with-cpp
compiler.cpp.cmd=avr-g++
compiler.cpp.flags=-c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD
compiler.ar.cmd=avr-ar
compiler.ar.flags=rcs
compiler.objcopy.cmd=avr-objcopy
compiler.objcopy.eep.flags=-O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0
compiler.elf2hex.flags=-O ihex -R .eeprom
compiler.elf2hex.cmd=avr-objcopy
compiler.ldflags=
compiler.size.cmd=avr-size
# this can be overriden in boards.txt
build.extra_flags=


Guglielmo hai fatto la modifica anche per il compilatore cpp?

lestofante

grazie paolo, provvedo subito.
In tatnochi ha account dia mano forte a far apparire il bug: https://github.com/arduino/Arduino/issues/1728

Quote
quanto tempo che perdete con la roba GNU!

con roba ARDUINO vorrai dire...
Guida per principianti http://playground.arduino.cc/Italiano/newbie
Unoffical Telegram group https://t.me/genuino

Go Up