Go Down

Topic: Arduino IDE build 1.5.8 vs 1.5.6r2 (Read 1 time) previous topic - next topic

tongo

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

ODwyerPW

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...

westfw

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.

tongo

#3
Feb 01, 2015, 10:18 am Last Edit: Feb 01, 2015, 10:56 am by tongo Reason: added more info
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):

Code: [Select]
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.

bobcousins

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.
Please ask questions in the forum so everyone can benefit. PM me for paid work.

tongo

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.

Go Up