Pages: 1 ... 22 23 [24] 25 26 ... 40   Go Down
Author Topic: UECIDE: A New Fork of the IDE  (Read 34930 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Jr. Member
**
Karma: 3
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

you're welcome

terry
Logged

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Leo on order.  Should be here next day or so.  That should make this easier.  I will check the command the leo board def is generating and tweak it accordingly.  Not sure baout this 1200 baud thing though.

I'm just looking into compiling 4.8.1 for AVR - see how it goes.  If it works I may bundle it as default for Linux users.  I may do the same for the msp430 and arm-eabi targets too.
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Matt,

I've been using the gcc4.8.0/avr-libc1.8 toolchain for 2 or 3 months. The only thing I've come across is a slight difference with PROGMEM. I don't have the details at hand but can dig them up. I don't recall that it broke any of the Arduino libs but it did break some demos on how to use PROGMEM.

terry
Logged

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Matt,

I've been using the gcc4.8.0/avr-libc1.8 toolchain for 2 or 3 months. The only thing I've come across is a slight difference with PROGMEM. I don't have the details at hand but can dig them up. I don't recall that it broke any of the Arduino libs but it did break some demos on how to use PROGMEM.

terry
For now I am only looking at replacing gcc and binutils, not libc.  I am now wondering if there is a way I can have multiple compilers associated with multiple cores...  That'd be interesting...
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Easy now, I'm having enough trouble keeping my various boards and cores straight as it is. Along with where the bits and pieces are hiding, it's getting to much for my feeble old mind.

terry
Logged

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well, 4.8.1 just compiled blink.ino...  I can't compare compilation times or anything fancy like that as my computer is busy converting a 320GB raw disk image into a VDI image, and has been the best part of the evening.
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Matt,

One thing you will find is a pretty substantial decrease in the size of the hex files. One example I can remember is the size of the standard arduino bootloader was 5.0K with gcc4.3 and 4.2K with 4.8. It works with avr-gcc 1.6?  I thought you had to sort of keep the latest gcc with the latest avr-libc. Maybe not.

terry
Logged

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Matt,

One thing you will find is a pretty substantial decrease in the size of the hex files. One example I can remember is the size of the standard arduino bootloader was 5.0K with gcc4.3 and 4.2K with 4.8. It works with avr-gcc 1.6?  I thought you had to sort of keep the latest gcc with the latest avr-libc. Maybe not.

terry
Nah, that'd be like replacing your car for a newer one just cus they'd brought out a fancy new kind of oil smiley-wink

I'm looking at integrating a build of the latest libc into my build script too - see if I can make an entire clean compiler distribution completely from source smiley
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Right, leo is here, and I think I now have it sussed.

I have had to add a new reboot method to the IDE, so you will need to upgrade the IDE before it will work, but now the Leonardo (and similar boards) has:

Code:
upload.using=usbcdc
upload.reset.baud=1200

which tells it to try rebooting by opening the serial port without worrying about toggling DTR/RTS (upload.using=usbcdc) and setting it to a specific baud rate (upload.reset.baud=1200).  It then delays for 1 second (I'm not sure on that timing TBH - I may make it more variable / dynamic in some way) for the serial port to reappear, then continues the upload.

The core has also been tweaked to allow the right upload protocol (for some reason I'd had a brain fart and hard coded -carduino even though there is a perfectly good upload.protocol variable that I always used in the past ...  smiley-eek-blue )
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well, that was fun, getting my 4.8.1 build script to put things in the right places...  For a while there it was insisting on running /usr/bin/as instead of the as in the compiler's dir.  Fail smiley-wink  That's only because binutils doesn't put it by default where gcc expects to find it ... Still, it's in the right place now.

Blink, with the standard Arduino compiler:
Code:
Program Size:
  Flash: 16% (4826 bytes out of 28672 bytes max)
    RAM: 157 bytes
         (text: 4782, data: 44, bss: 113)
Blink with arduino-gcc-481:
Code:
Program Size:
  Flash: 16% (4766 bytes out of 28672 bytes max)
    RAM: 157 bytes
         (text: 4722, data: 44, bss: 113)
Saved 60 bytes just on blink...  Wonder what it'd do with a more complex sketch...? smiley-wink
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Well alright !

Leonardo sketches compile, upload and work. By the way I had to change the core.txt file upload.command from -carduino to -c${upload.protocol} so it would pick up the correct protocol from the board.txt.
The binary sizes from the different toolchains is sort of a crapshoot. When I was fiddling around with optiboot the 4.8.0toolchain produced the largest binaries while the ubuntu4.3.3 toolchain produced the smallest. Smaller even than the binaries distributed with optiboot, go figure.
I compile the toolchain packages with prefix=SomeDir, the same for each package and I place it first in the PATH during the compile. Everything seems to work just fine and you can place it where you want later on.

thanks,
terry
Logged

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Well alright !

Leonardo sketches compile, upload and work. By the way I had to change the core.txt file upload.command from -carduino to -c${upload.protocol} so it would pick up the correct protocol from the board.txt.
The binary sizes from the different toolchains is sort of a crapshoot. When I was fiddling around with optiboot the 4.8.0toolchain produced the largest binaries while the ubuntu4.3.3 toolchain produced the smallest. Smaller even than the binaries distributed with optiboot, go figure.
I compile the toolchain packages with prefix=SomeDir, the same for each package and I place it first in the PATH during the compile. Everything seems to work just fine and you can place it where you want later on.

thanks,
terry
I compiled GCC using the flags from the original Arduino compilation (run avr-gcc -v to get them) - I guess they didn't have things quite as "default" as I thought smiley-wink  (typical Arduino - anyone'd think they were owned by Microsoft or something... smiley-grin )

I just had to tweak the --execprefix so .../avr was changed to .../lib/avr

I am now looking at installing MinGW on a Windows 7 VM to try and get a windows version going.  I tried cross-compiling on Linux, but it threw an absolute fit about missing libraries, and I gave up smiley-wink
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

I have now got it working on the Raspberry Pi.  The PIC32 compiler is working on the Pi, and is self-contained like the others.  The AVR compiler, though, is just a "stub" compiler which points to system-installed binaries, so you have to have the avr-gcc package installed for it to work.  The chipKIT and arduino cores both have the arm versions of avrdude with them now though.  I will do the same for the other AVR cores too.
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

Offline Offline
Jr. Member
**
Karma: 3
Posts: 77
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Matt,

For what it's worth here is what the avr-libc manual recommends:

binutils:
../configure --prefix=/toolchain --target=avr --disable-nls

gcc:
../configure --prefix=/toolchain --target=avr --enable-languages=c,c++  --disable-nls --disable-libssp --with-dwarf2

only for 4.7.x:
--with-avrlibc=yes

avrlibc:
./configure --prefix=/toolchain --build=`./config.guess` --host=avr


put the new avr-gcc bin dir first in path while compiling:
PATH=/toolchain/bin:$PATH
export PATH

Try compiling the toolchain on the pi smiley-twist

terry
Logged

UK
Offline Offline
Faraday Member
**
Karma: 92
Posts: 3969
Where is your SSCCE?!?!
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Matt,

For what it's worth here is what the avr-libc manual recommends:

binutils:
../configure --prefix=/toolchain --target=avr --disable-nls

gcc:
../configure --prefix=/toolchain --target=avr --enable-languages=c,c++  --disable-nls --disable-libssp --with-dwarf2

only for 4.7.x:
--with-avrlibc=yes

avrlibc:
./configure --prefix=/toolchain --build=`./config.guess` --host=avr


put the new avr-gcc bin dir first in path while compiling:
PATH=/toolchain/bin:$PATH
export PATH
That's pretty much what I had.
Quote
Try compiling the toolchain on the pi smiley-twist

terry
Funny you should say that...  4.8.1 is part way through compiling as we speak smiley-wink
Code:
arm-linux-gnueabihf-gcc -c -DHAVE_CONFIG_H -g -O2  -I. -I../../../gcc-4.8.1/libiberty/../include  -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic  ../../../gcc-4.8.1/libiberty/regex.c -o regex.o
Logged

Why not visit my eBay shop? http://stores.ebay.co.uk/Majenko-Technologies
Replacement for the Arduino IDE: UECIDE - Proper serial terminal, graphing facilities, plugins, overhauled internals.
Java isn't bad in itself, but it has enabled morons to write programs.

Pages: 1 ... 22 23 [24] 25 26 ... 40   Go Up
Jump to: