Arduino IDE build 1.5.8 vs 1.5.6r2

Hy when i compile my project with IDE 1.5.8 the Arduino freeze and want to run, but when i build with 1.5.6 IDE, the Arduino run correctly.

The code of the project is hosted on Github:

https://github.com/tongo/OpenLapTimer

This is my hardware:

  • Arduino DUE
  • Adafruit Ultimate GPS v3
  • Adafruit 2.8 resisteve touchscreen TFT
  • Arduino IDE 1.5.8 on MAC OSX 10.10 Yosemite (Java 7)

I used the Adafruit library to develop this project (as you can see in the project's wiki).

I tried the 2 IDE versions on Windows with the same issue.

What is the problem ?

Thanks

Tongo, you probably won't get much response on this.... ALLOT of work is moving forward with the Full Release (nonbeta) of Arduino IDE 1.6.0 In fact, it's already in it's 2nd reléase candidate. Lots of changes, including a full refactoring...

That might be about the time the new compiler version got included? I hadn't heard of any major problems, you'll pRobably have to do some debugging.

Thanks for reply.
My goal is project run with the latest IDE build.

I have done some debug, but i can’t understand why the code compile OK and start,
but at a certain point (in Chrono.cpp constructor):

lcdTft->begin();

it stop and freeze the Arduino.

The strange thing is that with 1.5.6 build the project run OK.

What can i try to solve the problem?
I thought a memory problem (too many RAM used or some pointer problem),
i thought that my Arduino DUE board was broken.

Maybe there is a problem with the Adafruit library (maybe TFT) with 1.5.8 compiler.

How i can verify it?

An other clue is that if i load a separate sketch with only a TFT test (like the library’s example) runs OK with the 1.5.8 version.

I guess this is a problem with C++ constructors, namely you must not rely on execution order of constructors. You should do as little as possible in a constructor, certainly not reference any other class.

The Chrono constructor does a lot of stuff, including calls to lcd, which is definitely bad.

The correct way is put initialisation work into a begin() method, and you then explicitly specify the initialisation sequence by calling begin() methods in the right order.

I have found that the Adafruit_ILI9341 constructor have 3 parameter, with the RST parameter optional (that was not valorized). I have connected the RST pin on the arduino and i have configured it and then it work fine.

It can be only this ?

Thanks for the support.