New Compiler breaks compatibility with older code that uses MODSERIAL library?

15 Aug 2013

I've got a binary compiled with the old compiler (dated july 17th 2013)

july17th.bin ~ 80Kb

After recompiling the same code with the current compiler (today Aug 15th 2013) one of my serial ports no longer seem to work (I was using the MODSERIAL library)

aug15th.bin 70Kb

if I use july17th.bin it works fine...

Is there a way to revert to the old compiler? I really need to add a new feature for my ongoing pilot-run and this couldn't have come in a worse time

Thanks!

Spinola

15 Aug 2013

Hello Diego Spinola,

do you know where it breaks by any chance? You can also change the revision of your used libraries (revision icon in compiler).

Regards,
0xc0170

15 Aug 2013

I'm trying to debug it right now...

The libs i'm using in this project are MODSERIAL , the mbed lib , EthernetInterface+mbed-rtos (but I only use the rtos for the EthernetInterface)

I've tried to update all libraries to their latest revisions but it didn't change anything...

TCP/IP connectivity is fine (connects to the servers and responds to my cmds) The application itself seems to be behaving fine (exept for the timeouts while trying to read it's slave device connected to the serial port)

It seems that the serial on pins (p9,p10) just stopped receiving responses from the slave device it's connected to(but right now I can't even guarantee that it is TXing the queries)... However, if I revert to my older binary (that was generated with the exact same code from my repository about a month ago) everything works fine...

Any Ideas?

15 Aug 2013

And when you do what Martin proposed? Revert libraries to older revisions? (Click on the library, revisisions button, revert/change to older one).

15 Aug 2013

For future reference after a couple of hours I managed to get it working again! I'm not sure why but here's *what* solved it:

Deleting the libraries and Importing them back again (same libraries, same revisions) did the trick...

Cheers!

15 Aug 2013

Hi There Erik,

At first I did try to revert to older library revisions as Martin proposed then I tried to change to newer ones from the interface (library,revision button , revert/change)

But it only worked when I deleted the libs from the project and re-imported them

15 Aug 2013

Hi there,

The compiler semantics are determined by the version of the mbed library which is imported. It's our policy never to make a change which will cause code to stop compiling on it's own - you have to update the mbed library to get different compilation behaviour.

I'm not sure why you had to delete and re-import the library in order to fix things. Is it possible you had modified something in the libraries? The other possible cause is that removing and readding the libraries forces a clean recompile if you had not being doing those already.

Dan

15 Aug 2013

Hi Dan,

I had not modified anything in the libraries themselves ...I did however back the project up before re-importing the libraries , which might allow us to investigate it further....

I'll take a look to see if I can spot any differences between them , then I'll try generate a binary and see if it displays the same behavior as before, if it does I could try to perform a clean recompile on it to see if that was it , does the "Compile All" link forces a clean before building, ?

Spinola