Go Down

Topic: IDE 1.6.0 is now available for download (Read 39007 times) previous topic - next topic

mkfloria


common_ground

#91
Feb 17, 2015, 07:14 pm Last Edit: Feb 17, 2015, 11:27 pm by common_ground
I find solution for changing gcc flags from IDE directly.

In board.txt add :

Code: [Select]

# Add on top file
menu.flag=GCC_Flags

###############################


attiny13at48.menu.flag.Os=Default
attiny13at48.menu.flag.Os.compiler.c.extra_flags=
attiny13at48.menu.flag.Os.compiler.c.elf.extra_flags=
attiny13at48.menu.flag.Os.compiler.cpp.extra_flags=

attiny13at48.menu.flag.O1=-O1
attiny13at48.menu.flag.O1.compiler.c.extra_flags=-O1
attiny13at48.menu.flag.O1.compiler.c.elf.extra_flags=-O1
attiny13at48.menu.flag.O1.compiler.cpp.extra_flags=-O1

attiny13at48.menu.flag.O3=-O3
attiny13at48.menu.flag.O3.compiler.c.extra_flags=-O3
attiny13at48.menu.flag.O3.compiler.c.elf.extra_flags=-O3
attiny13at48.menu.flag.O3.compiler.cpp.extra_flags=-O3


attiny13at48 is just example board.

This is new menu for board that have added this extra flags.



And it works fine for ATMEGA328P(USnooBie,Lilly), ATTINY85, ATTINY13 and probably for others too , but i did not try.

IDE 1.6.0 is excellent. Many thanks for Authors:)

common_ground

#92
Feb 18, 2015, 12:53 am Last Edit: Feb 18, 2015, 01:18 am by common_ground
Some experimenting :

adafruit TFT graphictest sketch Benchmark ( atmega328 - 8MHz )

Code: [Select]

                        1.0.6(-0s flag)-22,522 byte            1.6.0(-0s flag)-17,692 byte           1.6.0(-03 flag)-23,288 byte
------------------------------------------------------------------------------------------------------------------------------
Screen fill                       1147968                                 2098880                             1108680
Text                                77888                                  109912                               67208
Lines                              650464                                  864640                              505448
Horiz/Vert Lines                    81616                                  146648                               76160
Rectangles (outline)                68568                                  120688                               63320
Rectangles (filled)               1387080                                 2611264                             1353080
Circles (filled)                   282680                                  454544                              248120
Circles (outline)                  273960                                  365312                              220720
Triangles (outline)                276056                                  365528                              213968
Triangles (filled)                 580880                                  968696                              534912
Rounded rects (outline)            174216                                  250568                              141496
Rounded rects (filled)            1555888                                 2872608                             1492352
Done!

result is in microseconds.

With new compiler default settings -Os optimisation flag, hex file is much smaller and much slower then it is in older (1.0.6 IDE ) compiler.
With -O3 flag is few % bigger and about 10-30% faster.


common_ground

#94
Feb 18, 2015, 03:04 pm Last Edit: Feb 18, 2015, 03:05 pm by common_ground
What about the -flto option ? http://forum.arduino.cc/index.php?topic=262231.0
Great.Thanks :)

With 1.6.0( -03 -Wextra -flto ) is 18,914 bytes.

That is 16 % smaller and 10-30% faster then it is in older (1.0.6 IDE ) compiler. Very good.

Peter_n

Thanks for testing it. The -flto doesn't work with a large sketch for the Arduino Mega 2560. I'm gonna add the options to the menu.

jopiek

#96
Feb 18, 2015, 08:42 pm Last Edit: Feb 18, 2015, 08:44 pm by jopiek
Why is 1.6.0 so ugly on a Mac?!



Versus the much better, OS X compliant 1.0.6 Opening / Saving window:

c

Ed15

Hello
I installed IDE 1.6.0 and have troubles with compiling the webserver example in the ethernet library. Below is what the ide returns.
Thanks. Ed.




Arduino: 1.6.0 (Windows 7), Board:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Bibliotheek SPI in map: C:\Users\Ev\Documents\Arduino\libraries\SPI (legacy) wordt gebruikt

Bibliotheek Ethernet in map: C:\Users\Ev\Documents\Arduino\libraries\Ethernet (legacy) wordt gebruikt



D:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega -IC:\Users\Ev\Documents\Arduino\libraries\SPI -IC:\Users\Ev\Documents\Arduino\libraries\Ethernet C:\Users\Ev\AppData\Local\Temp\build4628962112386045359.tmp\WebServer.cpp -o C:\Users\Ev\AppData\Local\Temp\build4628962112386045359.tmp\WebServer.cpp.o

Vorige gecompileerde bestand C:\Users\Ev\AppData\Local\Temp\build4628962112386045359.tmp\SPI\SPI.cpp.o wordt gebruikt.

Vorige gecompileerde bestand C:\Users\Ev\AppData\Local\Temp\build4628962112386045359.tmp\Ethernet\Dhcp.cpp.o wordt gebruikt.

Vorige gecompileerde bestand C:\Users\Ev\AppData\Local\Temp\build4628962112386045359.tmp\Ethernet\Dns.cpp.o wordt gebruikt.

D:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega -IC:\Users\Ev\Documents\Arduino\libraries\SPI -IC:\Users\Ev\Documents\Arduino\libraries\Ethernet -IC:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp -o C:\Users\Ev\AppData\Local\Temp\build4628962112386045359.tmp\Ethernet\Ethernet.cpp.o

C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp: In member function 'void EthernetClass::begin(uint8_t*, IPAddress, IPAddress, IPAddress, IPAddress)':
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:65:39: error: no matching function for call to 'W5100Class::setIPAddress(IPAddress::<anonymous union>&)'
   W5100.setIPAddress(local_ip._address);
                                       ^
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:65:39: note: candidate is:
In file included from C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:1:0:
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility/w5100.h:392:6: note: void W5100Class::setIPAddress(uint8_t*)
 void W5100Class::setIPAddress(uint8_t *_addr) {
      ^
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility/w5100.h:392:6: note:   no known conversion for argument 1 from 'IPAddress::<anonymous union>' to 'uint8_t* {aka unsigned char*}'
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:66:38: error: no matching function for call to 'W5100Class::setGatewayIp(IPAddress::<anonymous union>&)'
   W5100.setGatewayIp(gateway._address);
                                      ^
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:66:38: note: candidate is:
In file included from C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:1:0:
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility/w5100.h:368:6: note: void W5100Class::setGatewayIp(uint8_t*)
 void W5100Class::setGatewayIp(uint8_t *_addr) {
      ^
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility/w5100.h:368:6: note:   no known conversion for argument 1 from 'IPAddress::<anonymous union>' to 'uint8_t* {aka unsigned char*}'
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:67:38: error: no matching function for call to 'W5100Class::setSubnetMask(IPAddress::<anonymous union>&)'
   W5100.setSubnetMask(subnet._address);
                                      ^
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:67:38: note: candidate is:
In file included from C:\Users\Ev\Documents\Arduino\libraries\Ethernet\Ethernet.cpp:1:0:
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility/w5100.h:376:6: note: void W5100Class::setSubnetMask(uint8_t*)
 void W5100Class::setSubnetMask(uint8_t *_addr) {
      ^
C:\Users\Ev\Documents\Arduino\libraries\Ethernet\utility/w5100.h:376:6: note:   no known conversion for argument 1 from 'IPAddress::<anonymous union>' to 'uint8_t* {aka unsigned char*}'
Fout bij compileren.

Peter_n

The folder Documents\Arduino\libraries\ should contain custom libraries. Can you tell what is in there ?

Ed15

Thanks for your reply. Mean while i was trying some other things. When i installed the new ide i did not delete the 'óld' library folder. After deleting this folder and re-install the ide it compiles ok. Now i will try to compile my previous made sketches..

Ed15

Mmm, still no luck. To come back at your first question. When i installed the new ide in the library map there is only a txt file.

Peter_n

#101
Feb 19, 2015, 03:17 pm Last Edit: Feb 19, 2015, 03:18 pm by Peter_n
That means that you don't have the same error messages now ?

There was only a txt file, but what did you do then ? did you install custom libraries there ? which ones ?

Ed15

Below the new error. There seems to be trouble with the location of the libraries...



Arduino: 1.6.0 (Windows 7), Board:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

Bibliotheek SPI in map: D:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI  wordt gebruikt

Bibliotheek Ethernet in map: D:\Program Files (x86)\Arduino\libraries\Ethernet  wordt gebruikt

Bibliotheek SD in map: D:\Program Files (x86)\Arduino\libraries\SD  wordt gebruikt

Bibliotheek Wire in map: D:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire  wordt gebruikt



D:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI -ID:\Program Files (x86)\Arduino\libraries\Ethernet\src -ID:\Program Files (x86)\Arduino\libraries\SD\src -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire C:\Users\Ev\AppData\Local\Temp\build4424977948809441831.tmp\Verlichting_automatisch_experimenteel_versie_9_0.cpp -o C:\Users\Ev\AppData\Local\Temp\build4424977948809441831.tmp\Verlichting_automatisch_experimenteel_versie_9_0.cpp.o

Verlichting_automatisch_experimenteel_versie_9_0.ino:4:18: fatal error: Time.h: No such file or directory
compilation terminated.
Fout bij compileren.

Ed15

Got the libraries in the right place. Now got this compiling error:

Arduino: 1.6.0 (Windows 7), Board:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

d:\Program Files (x86)\Arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10600 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI -ID:\Program Files (x86)\Arduino\libraries\Ethernet\src -ID:\Program Files (x86)\Arduino\libraries\SD\src -ID:\Program Files (x86)\Arduino\libraries\Time -ID:\Program Files (x86)\Arduino\libraries\TimeAlarms -ID:\Program Files (x86)\Arduino\libraries\DS1307RTC -ID:\Program Files (x86)\Arduino\libraries\DHT22 -ID:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -ID:\Program Files (x86)\Arduino\libraries\NewRemoteSwitch -ID:\Program Files (x86)\Arduino\libraries\LiquidCrystal_I2C -ID:\Program Files (x86)\Arduino\libraries\InterruptChain -ID:\Program Files (x86)\Arduino\libraries\Time\utility D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp -o C:\Users\Ev\AppData\Local\Temp\build3079122577574886222.tmp\Time\DateStrings.cpp.o

In file included from D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:10:0:
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:18:18: error: variable 'monthStr1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr1[] PROGMEM = "January";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:19:18: error: variable 'monthStr2' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr2[] PROGMEM = "February";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:20:18: error: variable 'monthStr3' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr3[] PROGMEM = "March";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:21:18: error: variable 'monthStr4' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr4[] PROGMEM = "April";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:22:18: error: variable 'monthStr5' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr5[] PROGMEM = "May";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:23:18: error: variable 'monthStr6' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr6[] PROGMEM = "June";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:24:18: error: variable 'monthStr7' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr7[] PROGMEM = "July";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:25:18: error: variable 'monthStr8' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr8[] PROGMEM = "August";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:26:18: error: variable 'monthStr9' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr9[] PROGMEM = "September";

                  ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:27:19: error: variable 'monthStr10' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr10[] PROGMEM = "October";

                   ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:28:19: error: variable 'monthStr11' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr11[] PROGMEM = "November";

                   ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:29:19: error: variable 'monthStr12' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthStr12[] PROGMEM = "December";

                   ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:31:22: error: variable 'monthNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 PGM_P monthNames_P[] PROGMEM =

                      ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:37:26: error: variable 'monthShortNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec";

                          ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:39:16: error: variable 'dayStr0' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr0[] PROGMEM = "Err";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:40:16: error: variable 'dayStr1' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr1[] PROGMEM = "Sunday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:41:16: error: variable 'dayStr2' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr2[] PROGMEM = "Monday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:42:16: error: variable 'dayStr3' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr3[] PROGMEM = "Tuesday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:43:16: error: variable 'dayStr4' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr4[] PROGMEM = "Wednesday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:44:16: error: variable 'dayStr5' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr5[] PROGMEM = "Thursday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:45:16: error: variable 'dayStr6' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr6[] PROGMEM = "Friday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:46:16: error: variable 'dayStr7' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayStr7[] PROGMEM = "Saturday";

                ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:48:20: error: variable 'dayNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 PGM_P dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7};

                    ^
D:\Program Files (x86)\Arduino\libraries\Time\DateStrings.cpp:49:24: error: variable 'dayShortNames_P' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
 char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";

                        ^
Fout bij compileren.

Ed15

Problem solved! (Still thanks Peter_n).

Changed this lines in DateStrings.ccp :

const char monthStr1[] PROGMEM = "January";
const char monthStr2[] PROGMEM = "February";
const char monthStr3[] PROGMEM = "March";
const char monthStr4[] PROGMEM = "April";
const char monthStr5[] PROGMEM = "May";
const char monthStr6[] PROGMEM = "June";
const char monthStr7[] PROGMEM = "July";
const char monthStr8[] PROGMEM = "August";
const char monthStr9[] PROGMEM = "September";
const char monthStr10[] PROGMEM = "October";
const char monthStr11[] PROGMEM = "November";
const char monthStr12[] PROGMEM = "December";

const char * const monthNames_P[] PROGMEM =
{
    "",monthStr1,monthStr2,monthStr3,monthStr4,monthStr5,monthStr6,
   monthStr7,monthStr8,monthStr9,monthStr10,monthStr11,monthStr12
};

const char monthShortNames_P[] PROGMEM = "ErrJanFebMarAprMayJunJulAugSepOctNovDec";

const char dayStr0[] PROGMEM = "Err";
const char dayStr1[] PROGMEM = "Sunday";
const char dayStr2[] PROGMEM = "Monday";
const char dayStr3[] PROGMEM = "Tuesday";
const char dayStr4[] PROGMEM = "Wednesday";
const char dayStr5[] PROGMEM = "Thursday";
const char dayStr6[] PROGMEM = "Friday";
const char dayStr7[] PROGMEM = "Saturday";

const char * const dayNames_P[] PROGMEM = { dayStr0,dayStr1,dayStr2,dayStr3,dayStr4,dayStr5,dayStr6,dayStr7};
const char dayShortNames_P[] PROGMEM = "ErrSunMonTueWedThrFriSat";

Go Up