Go Down

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

majenko


No problem. I'm patient :D

By the way, I notice that the avr-gcc compiler hasn't had the linker fix applied that I asked about a while back (https://github.com/TCWORLD/ATTinyCore/tree/master/PCREL%20Patch%20for%20GCC). This is needed for it to work with Attiny8x processors and won't have any affect any other processor :). I've made the change myself for now.

I'll get on it - it slipped from my tiny mind
Quote

The other thing is, is there any guidance on the new programmer stuff in core.txt? I will need to add options for various programmers for the Tiny core.

It's basically as it was before, but with a .programmername. added in there, and a  .name=Blah Blah entry as a requirement:
Code: [Select]

upload.arduino.name=Upload direct to an Arduino board
upload.arduino.command.linux_arm=${core.root}/tools/linux_pi/avrdude::-D::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/linux_pi/avrdude.conf::-c${upload.protocol}::-Uflash:w:${build.path}/${filename}.hex:i::${verbose}
upload.arduino.command.linux_amd64=${core.root}/tools/linux64/avrdude::-D::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/linux64/avrdude.conf::-c${upload.protocol}::-Uflash:w:${build.path}/${filename}.hex:i::${verbose}
upload.arduino.command.linux_i386=${core.root}/tools/linux32/avrdude::-D::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/linux32/avrdude.conf::-c${upload.protocol}::-Uflash:w:${build.path}/${filename}.hex:i::${verbose}
upload.command.macosx=${core.root}/tools/macosx/avrdude::-D::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/macosx/avrdude.conf::-c${upload.protocol}::-Uflash:w:${build.path}/${filename}.hex:i::${verbose}
upload.arduino.command.windows=${core.root}/tools/windows/avrdude::-D::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/windows/avrdude.conf::-c${upload.protocol}::-Uflash:w:${build.path}/${filename}.hex:i::${verbose}

upload.arduino.using=serial
upload.arduino.verbose=-v
upload.arduino.quiet=-q::-q
upload.arduino.dtr=yes
upload.arduino.rts=yes

Plus you now have the entry "sketch.upload=" for defining the list of applicable programmers:
Code: [Select]

sketch.upload=arduino

You can have multiple programmers with, say,
Code: [Select]

sketch.upload=arduino::avrisp

If you haven't selected one for a board before, then the first one in the list is picked as default.

I'd define the available programmers in core.txt, along with a "default" sketch.upload - then in the boards you just add a custom sketch.upload with the programmers that are applicable to that specific board.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

majenko

And now, just for you poor little windows users, there is a nice easy .exe installer for you :P

The -full version contains JRE.  The -lite version can be used to upgrade a -full installation, or on a system with JRE 7 already installed.

I have scrapped the upgrade package as it's pointless now with the smaller packages.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

Tom Carpenter

#437
Aug 10, 2013, 10:10 pm Last Edit: Aug 10, 2013, 10:12 pm by Tom Carpenter Reason: 1
just a quick  question about the lite version which uses a preinstalled java folder. I tried that but it doesn't work on my computer.

I am using Win7 x64 and have both the 32bit and 64bit JRE7 installations (one C:\Program Files\Java\jre7, and the other C:\Program Files (x86)\Java\jre7). Neither work with the IDE for some reason. When I double click on the uecide.exe file, nothing happens.

I've tried the debug.bat file and get this:

Code: [Select]
C:\Users\Thomas>java -Xms128m -Xmx128m -classpath "lib;lib\uecide.jar;lib\uecide.jar;lib\jna.jar;lib\ecj.jar;lib\RXTXcomm.jar;lib\log4j-1.2.16.jar;lib\log4j.properties" uecide.app.Base
Error: Could not find or load main class uecide.app.Base


Interestingly if I copy the java folder in from the full version, the uecide.exe runs fine and java loads, but the debug.bat file still gives the same error.

It doesn't matter for me as I don't mind having a java folder in the uecide folder (I just download the lite version and keep the existing java folder), I just thought I should bring it to your attention.
~Tom~

pito

#438
Aug 10, 2013, 10:23 pm Last Edit: Aug 10, 2013, 10:28 pm by pito Reason: 1
I've installed the -lite version and it works nice :) (XP SP3, no idea which java version "1.7.0_25" here..)
PS: the plugin manager indent still not good, but acceptable..

majenko


I've installed the -lite version and it works nice :) (XP SP3, no idea which java version here..)
PS: the plugin manager indent still not good, but acceptable..

Yeah, I'll get round to fixing that.  I want to add some kind of spinner thingy while it's updating, too.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

majenko


just a quick  question about the lite version which uses a preinstalled java folder. I tried that but it doesn't work on my computer.

I am using Win7 x64 and have both the 32bit and 64bit JRE7 installations (one C:\Program Files\Java\jre7, and the other C:\Program Files (x86)\Java\jre7). Neither work with the IDE for some reason. When I double click on the uecide.exe file, nothing happens.

I've tried the debug.bat file and get this:

Code: [Select]
C:\Users\Thomas>java -Xms128m -Xmx128m -classpath "lib;lib\uecide.jar;lib\uecide.jar;lib\jna.jar;lib\ecj.jar;lib\RXTXcomm.jar;lib\log4j-1.2.16.jar;lib\log4j.properties" uecide.app.Base
Error: Could not find or load main class uecide.app.Base


Interestingly if I copy the java folder in from the full version, the uecide.exe runs fine and java loads, but the debug.bat file still gives the same error.

It doesn't matter for me as I don't mind having a java folder in the uecide folder (I just download the lite version and keep the existing java folder), I just thought I should bring it to your attention.

Debug only uses the system installed JVM.  I'll install the JRE into the system at some point (my windows VM is just installing 106 updates... urk...) and try it out.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

majenko

Ok, this is a bittiness problem.  The JNA that's bundled with UECIDE has no 64-bit support in it.  I have an updated version that I'm going to look at using instead, but it still doesn't cure the entire problem - once JNA works you then have the problem that rxtxSerial.dll is 32-bit, so won't work on Java 64-bit.

You can "hack" your own setup by downloading the latest jna.jar (avilable on github: https://github.com/twall/jna/raw/master/dist/jna.jar) and the 64-bit version of rxtxSerial.dll (http://jlog.org/v4/windows/win64/rxtxSerial.dll) and replacing them in your install's lib folder and root folder respectively.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

majenko

Any update to the tiny core I should integrate into the distribution packages?  Programmer definitions?
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

Tom Carpenter

I haven't had a chance yet to look at it. Should be able to come up with something this weekend.
~Tom~

majenko


I haven't had a chance yet to look at it. Should be able to come up with something this weekend.

That's cool.  There was another Q on here about programming the ATTiny, and I was going to recommend they try UECIDE, but then thought they wouldn't be able to program it, so didn't ;)
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

pito

When I disconnect Teraterm in order to upload a sketch it takes sometimes 3-6 attempts to upload (COMx not available etc.). Sometimes it uploads immediately. It seems there is still something with the COM stuff. BTooth and XP (your favorite combination). Otherwise uecide works fine.. :)

Tom Carpenter

I was just browsing around and came across this:
http://andybrown.me.uk/wk/2011/01/15/the-standard-template-library-stl-for-avr-with-c-streams/
http://andybrown.me.uk/wk/files/avr-stl-1.1.zip

Some neat features from the C++ standard libraries have been implemented (sets, maps, hash maps, vectors, lists, bitset, etc).

Not tried it yet, but it might be interesting to include somehow.
~Tom~

Tom Carpenter

I still don't follow how this programmer stuff works.

Do you have more than one example so that I have something to compare/work from
~Tom~

majenko

It's pretty simple really.

A programmer is a block of definitions:

Code: [Select]

upload.progname.name=My Programmer Name
upload.progname.command.[os]=path/to/my/command::and::the::arguements
upload.progname.using=serial (or usb, or uscbdc)

Have one command.[os] entry for each os:
Code: [Select]

upload.progname.command.linux=blah::blah::blahh
upload.progname.command.windows=blah::blah::blahh
upload.progname.command.macosx=blah::blah::blahh

You can include the archetecture too:
Code: [Select]

upload.progname.command.linux_amd64=blah::blah::blahh

You can also, for serial devices, have
Code: [Select]

upload.progname.dtr=yes
upload.progname.rts=yes

and for usbcdc devices, have
Code: [Select]

upload.progname.reset.baud=1200


You can have as many blocks like that as you like, replacing progname for each block.

The blocks can go in the core.txt or in the board.txt, whichever is more suitable - if it's common to multiple boards, put it in the core.txt.  If it's specific to just one board, put it in the board.txt.

Then, in the core.txt and, if it differs for a board, the board.txt, you specify which programmers are applicable:
Code: [Select]

sketch.upload=progname::otherprogname

And that's it.

Here's an avrdude/mphid combination:
Code: [Select]

upload.mphid.name=Upload using Microchip HID bootloader
upload.mphid.command.windows=${core.root}/tools/windows/mphidflash::-w::${filename}.hex
upload.mphid.command.macosx=${core.root}/tools/osx/mphidflash::-w::${filename}.hex
upload.mphid.command.linux=${core.root}/tools/linux/pic32prog::-p::${filename}.hex

upload.avrdude.name=Upload to chipKIT board
upload.avrdude.command.linux_arm=${core.root}/tools/linux_arm/avrdude::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/linux_arm/avrdude.conf::-cstk500v2::-Uflash:w:${filename}.hex:i::${verbose}
upload.avrdude.command.linux_i386=${core.root}/tools/linux32/avrdude::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/linux32/avrdude.conf::-cstk500v2::-Uflash:w:${filename}.hex:i::${verbose}
upload.avrdude.command.linux_amd64=${core.root}/tools/linux64/avrdude::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/linux64/avrdude.conf::-cstk500v2::-Uflash:w:${filename}.hex:i::${verbose}
upload.avrdude.command.windows=${core.root}/tools/windows/avrdude::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/windows/avrdude.conf::-cstk500v2::-Uflash:w:${filename}.hex:i::${verbose}
upload.avrdude.command.macosx=${core.root}/tools/macosx/avrdude::-V::-p${build.mcu}::-P${port}::-b${upload.speed}::-C${core.root}/tools/macosx/avrdude.conf::-cstk500v2::-Uflash:w:${filename}.hex:i::${verbose}
upload.avrdude.verbose=-v
upload.avrdude.quiet=-q::-q
upload.avrdude.dtr=yes
upload.avrdude.rts=yes

sketch.upload=avrdude::mphid

The first one in the sketch.upload list is selected as default if a board is selected for the first time, which will be avrdude in this example.

Absolutely anything that appears in the board.txt file, the core.txt file, or the compiler.txt file can be placed inside ${...} and it gets replaced at runtime.  This means you have parameters in the board.txt file that get fed into the core.txt command structure, for example.
Get 10% off all 4D Systems TFT screens this month: use discount code MAJENKO10

Tom Carpenter

Thanks, that makes more sense now.
~Tom~

Go Up