Go Down

Topic: UECIDE: A New Fork of the IDE (Read 61848 times) previous topic - next topic

KDMcM


You missed it in a fart of other questions. 

Humbly, and sincerely - that was a typo. I had meant to use the expression "raft of other...." ! D'oh!

The editor is a third party plugin and I have yet to work out all the colour tweaking interface to it.

Hopefully, it's of some help that this is the only colour I've observed not to be effective. I've got quite a decent "light on grey-ish" scheme to work. As soon as we figure out how to change the colour of the literals, I think I'll be flying!

majenko



You missed it in a fart of other questions. 

Humbly, and sincerely - that was a typo. I had meant to use the expression "raft of other...." ! D'oh!

I think I prefer "fart of other questions" personally...  ;)

Tom Carpenter

Does UECIDE suppress all warnings in the verbose output? I've been noticing that when compiling the same code that the Arduino IDE shows gcc warnings in the verbose output, but UECIDE never shows any.

As a simple test:
Code: [Select]

#warning boo
void setup(){

}
void loop(){

}

In the Arduino IDE, that emits "warning: #warning boo", whereas in UECIDE nothing appears. The same is true for example if you use a signed variable type as an array index, Arduino IDE tells you, UECIDE doesn't.
~Tom~

majenko

UECIDE doesn't, but the core or compiler might.

majenko

#499
Oct 06, 2013, 12:16 am Last Edit: Oct 06, 2013, 12:20 am by majenko Reason: 1
Just thought I'd take a moment to mention the new version I am just releasing - 0.7.5b

The big changes in this version are to the library and tab systems.

Recursive library inclusion now works.  If a library requires another library to function, that library is automatically included in the build process.  So no need to include SPI along with the Ethernet library any more (and other similar situations).

If you manually add a library to your libraries folder in your sketchbook you now no longer need to restart the IDE.  You can now select the "Rescan Libraries" menu entry in the "Sketch -> Import Library" menu.

Tabs now open in a specific order.  First comes any .ino files in alphabetical order, followed by .pde files.  Then come the other source files .cpp, .c and .S also in alphabetical order.  Finally come header (.h) files in alphabetical order.

The "New File" routine has been completely re-written and now uses a nice little popup window to enter the new filename instead of a text entry in the status line.  Much nicer.

A "Rename Tab" routine has been written, which uses a similar popup box to edit the filename of the currently selected tab.

There are a few other bug fixes, including the but that stopped you properly selecting a serial port when more than one window was open.

As always, you can download the latest version from http://www.uecide.org.

Tom Carpenter

#500
Oct 06, 2013, 12:22 am Last Edit: Oct 06, 2013, 12:28 am by Tom Carpenter Reason: 1
I was trying to get the:
#pragma parameter cflags
thing to work, but it didn't add the additional flags to the compiler string.

edit: I figured out why warnings are missing. The cppflags and cflags for the avr-gcc compiler.txt file have '-w' in them which suppresses all warnings.
edit2: you beat me too it.
~Tom~

majenko

#501
Oct 06, 2013, 12:27 am Last Edit: Oct 06, 2013, 12:31 am by majenko Reason: 1
The warnings are being suppressed by a setting in the compiler.txt file in avr-gcc:
Quote

cflags=-g::-Os::-w::-ffunction-sections::-fdata-sections
cppflags=-g::-Os::-w::-fno-exceptions::-ffunction-sections::-fdata-sections

If you try this sketch:
Code: [Select]

#pragma parameter cflags=-g::-Os::-Wall::-Werror::-ffunction-sections::-fdata-sections
#pragma parameter cppflags=-g::-Os::-Wall::-Werror::-fno-exceptions::-ffunction-sections::-fdata-sections

#warning moo

void setup() {
}

void loop() {
}

this is the output you get:
Code: [Select]

cc1plus: warnings being treated as errors
Error at line 1 in file untitled12.ino:
    ignoring #pragma parameter cflags
Error at line 2 in file untitled12.ino:
    ignoring #pragma parameter cppflags
untitled12.ino:4:2: error: #warning moo


I thought I had added code to convert spaces into :: in the #pragma lines, but evidently not  :smiley-roll-sweat: so you have to separate your parameters with :: at the moment.

Edit: The fix to allow spaces instead of :: is a very simple one - it will be in the next release.

pito

#502
Oct 06, 2013, 10:14 am Last Edit: Oct 06, 2013, 03:32 pm by pito Reason: 1
With 0.7.5b when compiling my standard stuff:
Code: [Select]
.. -LD:\ProgramFiles\arduino\uecide\hardware\cache\my_arduino\mighty1284p -Wl,--start-group -lNilTimer1 -lSPI -lNilAnalog -lTime -lNilRTOS -lSerialPort -lSdFat -lWire -lRtc_Pcf8563 -lTwiMaster -lcore -Wl,--end-group -lm
D:\ProgramFiles\arduino\uecide\hardware\cache\my_arduino\mighty1284p\libTwiMaster.a(WireMaster.o): In function `TwoWireMaster':
C:\MyCode\Arduino\libraries\TwiMaster/WireMaster.cpp:56: multiple definition of `Wire'
D:\ProgramFiles\arduino\uecide\hardware\cache\my_arduino\mighty1284p\libWire.a(Wire.o):C:\MyCode\Arduino\libraries\Wire/Wire.cpp:48: first defined here
D:\ProgramFiles\arduino\uecide\hardware\cache\my_arduino\mighty1284p\libTwiMaster.a(TwiMasterCore.o): In function `__vector_26':
C:\MyCode\Arduino\libraries\TwiMaster/TwiMasterCore.cpp:172: multiple definition of `__vector_26'
D:\ProgramFiles\arduino\uecide\hardware\cache\my_arduino\mighty1284p\libWire.a(twi.o):C:\MyCode\Arduino\libraries\Wire\utility/twi.c:364: first defined here


WireMaster.cpp does not include Wire (ORG_FILE = 0):
Code: [Select]
#if ORG_FILE
extern "C" {
 #include <stdlib.h>
 #include <string.h>
 #include <inttypes.h>
 #include "twi.h"
}
#include "Wire.h"
#else  // ORG_FILE
#include <TwiMasterCore.h>
#include <TwiState.h>
#include <WireMaster.h>
#endif  // ORG_FILE

The same error with the original arduino core updated now.

PS: the twiDS1307Utility.ino compiles fine:
Code: [Select]
-LD:\ProgramFiles\arduino\uecide\hardware\cache\my_arduino\mighty1284p -Wl,--start-group -lWire -lTwiMaster -lcore -Wl,--end-group -lm

majenko

What do you call you "standard stuff"?  I just compiled all the TwiMaster examples fine, and the NilRTOS TWI example.

pito

#504
Oct 06, 2013, 02:02 pm Last Edit: Oct 06, 2013, 02:47 pm by pito Reason: 1
"My standard stuff" is a source (or better several versions of it) which compiled fine with 0.7.4g :)
Upgrading to 0.7.5b stops with above issue (without touching the sources).. The only point where Wire.h is included is in above code chunk.
My includes in main are:
Code: [Select]
#include <Time.h>
#include <SerialPort.h>
#include <NilRTOS.h>
#include <NilTimer1.h>
#include <NilAnalog.h>
#include <TwiMaster.h>
#include <SdFat.h>
#include <SdFatUtil.h>
#include <NilFIFO.h>
#include <Rtc_Pcf8563.h>
#include "formatDOSfilename.h"
#include "ads1110.h"

Tom Carpenter

#505
Oct 06, 2013, 02:36 pm Last Edit: Oct 06, 2013, 02:44 pm by Tom Carpenter Reason: 1
I can't make the ldflags parameter work.

I've tried this line:
Code: [Select]
#pragma parameter ldflags=-Os::-Wl,--gc-sections::-Wl,--relax::-Wl,--section-start=.text=1700
But it has no effect. In the verbose output I see:
Code: [Select]
avr-gcc -Os -Wl,--gc-sections ...
Which is the default ldflags from compiler.txt




There is also a weird glitch where UECIDE won't open .c files in the sketch directory into tabs.
If I rename my c file to .cpp, it appears as a tab. If I then rename that tab to be .c, it remains as a tab. However next time I open the project, the c file again doesn't appear.
~Tom~

pito

#506
Oct 06, 2013, 03:28 pm Last Edit: Oct 06, 2013, 03:34 pm by pito Reason: 1
Quote
If a library requires another library to function, that library is automatically included in the build process.

It seems your new include mechanism includes and links wire.h probably automatically, even we do not include it from within the sources. Therefore above double def of "Wire" (as we do define Wire in TwiMaster lib instead)..

majenko

When parsing a file for includes it is unable to handle any #if macros, so the "#if ORG_FILE" is being ignored and Wire.h is being included regardless.

I have no idea what can be done about that, as the parser has no concept (and neither do I) of ORG_FILE.

pito

#508
Oct 06, 2013, 03:37 pm Last Edit: Oct 06, 2013, 03:39 pm by pito Reason: 1
I commented out the stuff with that ORG_FILE (including the wire include) and the same issue.. Not sure you can scan files for #includes and based on that include the libs.. The key is it worked with 74g, so you know the difference..

majenko


There is also a weird glitch where UECIDE won't open .c files in the sketch directory into tabs.
If I rename my c file to .cpp, it appears as a tab. If I then rename that tab to be .c, it remains as a tab. However next time I open the project, the c file again doesn't appear.

Oops, my bad.  Fixing that now.  The same happens for .S files.

Go Up