Spark Logic

UECIDE with Roger’s core and latest gcc 7

Pito Thu Dec 06, 2018 3:24 pm

Matt informed this week he ported Roger’s core into his UECIDE IDE.
Matt also made some improvements with the core as he is using the latest gcc v7 in his IDE.
Except he is an excellent sw guy he is producing pretty nice boards as well..
https://uecide.org/content/stm32-support

PS: Matt also kindly asks people with experience to test.
I’ve recommended him to make people in this forum aware of this, as this is the best community to ask.

Replies

majenko Fri Dec 07, 2018 5:31 pm

I completely agree with that block of red. I always encourage people with problems in UECIDE to ask me first – either on the UECIDE forum, or to me directly by email. And it usually ends up being either some bug in UECIDE itself or something wrong with their code (pito…). So hopefully they won’t come and bother this forum anyway. If they do, please tell them where to go.

At the moment it’s only me and Pito using UECIDE for STM32, unless I can tempt any of you guys … :twisted: so no problems there.

Rick Kimball Fri Dec 07, 2018 5:41 pm

[majenko – Fri Dec 07, 2018 5:12 pm] –
Function discovery is already there. I would love to add code completion, but the editor I use doesn’t seem to want to function with it.

Are you talking about the “right click, Go to… manual page thing?” If so, your idea of function discovery and mine are completely different.

Try right click and goto definition in eclipse, it opens the file of the function and brings you to the code. I can right click on the Serial.begin(9600) and it finds the Serial code and the begin function. Also, If i just hover over the begin() function after a slight delay I can see the code for that function in a popup overlay window without any clicking. That also works for variables, enums anything.

mrburnette Fri Dec 07, 2018 5:43 pm

Then we are good…

I have used your product in the past. It is refreshing. I prefer for little one-off things to stay with the ArduinoIDE and punish myself… it helps to have an appreciation of what our “jill or joe” user is facing. With a little understanding, the ArduinoIDE can work for a medium-complex application … I use it when I play and post because I can ZIP up everything and publish. After I upload a ZIP, I can care less what IDE the end-user wishes to embrace.

Thanks again,

Ray

majenko Fri Dec 07, 2018 6:24 pm

UECIDE is not trying to be Eclipse, or Atmel Studio, or MPLAB-X, or any of those full IDEs. It’s designed to be something better than the Arduino IDE (which isn’t hard) without having the complexity and bloat of a full IDE. If you need the facilities of a full IDE then yes eclipse is for you. If you want something as easy to use as the Arduino IDE (easier in a lot of cases) with the ability to manage more complex projects and tasks, the UECIDE is what you want.

Pito Fri Dec 07, 2018 6:37 pm

[majenko – Fri Dec 07, 2018 5:31 pm] –
At the moment it’s only me and Pito using UECIDE for STM32..

I’ve been using Sloeber, and for a pretty long time already :)
But I have no problem to learn something new, and I have no problem to share with others when I see something interesting.. I also see UECIDE filling the gap between “Arduino IDE” and heavy Eclipse based stuff.

PS: there is the “Ozone” debugger (ARM, RISC_V, free by Segger afaik) and it may work with j-link and st-link (easily hacked to j-link). I think UECIDE and Ozone could be an interesting combo. There are threads on the Ozone here..

majenko Fri Dec 07, 2018 7:26 pm

I’m considering ways of incorporating OpenOCD and GDB into UECIDE, since it’s more cross-platform. I don’t like adding things into the core that are only applicable to only one architecture.

Pito Fri Dec 07, 2018 7:38 pm

Microchip goes Risc-V, people say :)

majenko Fri Dec 07, 2018 8:10 pm

That’ll be three 32-bit architectures they have to deal with. I hope they don’t call on me again this time. Atmel’s ARM family was bad enough.

stevestrong Sat Dec 08, 2018 8:10 am

I would love to use UECIDE if you explain me in detailed steps how can I use my core (forked from Roger’s) instead of Roger’s with UECIDE.
And how to use its embedded libraries.

majenko Sat Dec 08, 2018 12:02 pm

[stevestrong – Sat Dec 08, 2018 8:10 am] –
I would love to use UECIDE if you explain me in detailed steps how can I use my core (forked from Roger’s) instead of Roger’s with UECIDE.
And how to use its embedded libraries.

I would suggest:

  • Copy the existing core folder
  • Change the name= in core.txt to reflect the new folder name
  • Change the desription= to give it a distinct menu entry
  • Replace the maple and system folders with your copies

For the libraries I’d just drop them into “Documents/UECIDE/libraries/<XXX>” where “<XXX>” is the name of your new core. That will tie the libraries to only working with your core, and the system should pick them in preference to any others of the same name. Alternatively you could create a separate area to store them and add it as a library path in preferences, but still place them in a subdirectory named after your core.

You can read more about libraries here: https://uecide.org/wiki/adding-libraries

I am pondering having it so that you can force a library to a specific location with a #pragma entry so that you can dictate precisely which library version is used for what sketch.

Oh, and you can also use “local” libraries in a sketch – drop them into a “libraries” directory within the sketch’s directory – or “localize” it from the tree by right clicking on it. Great for if you want to tweak a library specifically for a sketch or require a specific version for a specific sketch and want it all bundled together.

Pito Sat Dec 08, 2018 12:22 pm

FIY- an another build.

Note: Mind under Win7 the “Documents” Matt refers to means “My Documents”. The UECIDE cuts off the “My”, it seems..

With the default settings your sketches folders and libraries folders reside in:

C:\Users\XXXX\My Documents\UECIDE\Blinker_sketch
C:\Users\XXXX\My Documents\UECIDE\libraries\SPI
C:\Users\XXXX\My Documents\UECIDE\libraries\MAX7219
C:\Users\XXXX\My Documents\UECIDE\libraries\Wire

where here the libs are available to all cores.
PS: there are other library placement strategies as described in the above post too…

The sketch folder is created automatically upon “save as”, for example.

The libraries’ folder names must be the same as the one used in #include “ABCD.h” (here the lib folder name must be “ABCD”) – see below.

Compiling...
• Preprocessing...
• Converting binary files
• Compiling sketch...
• Compiling core...
‣ core
‣ maple
• Compiling libraries...
‣ SPI [C:\Users\pito\Documents\UECIDE\libraries\SPI] ‣ ADS1110 [C:\Users\pito\Documents\UECIDE\libraries\ADS1110] ‣ MAX7219 [C:\Users\pito\Documents\UECIDE\libraries\MAX7219] ‣ Wire [C:\Users\pito\Documents\UECIDE\libraries\Wire] ‣ bitBangedSPI [C:\Users\pito\Documents\UECIDE\libraries\bitBangedSPI] • Linking sketch...
‣ Generating bin file...
‣ Generating lss file...
Compiling finished.
Memory usage
• Program size: 43,324 bytes
• Memory size: 5,128 bytes
• Compilation took 1.641 seconds.

majenko Sat Dec 08, 2018 12:31 pm

It changes from version to version of Windows. I use the word “Documents” to mean “Your documents folder, whatever/wherever that is”. But in Windows 7 and upwards it’s actually C:\Users\<name>\Documents on the filesystem. Older versions use C:\Documents and Settings\<name>\My Documents. Microsoft can’t make their mind up. I guess they wanted (which is unusual for them) to make it a little more like other operating systems, which use some variant of /container/username/Documents (/home/foo/Documents, /Users/foo/Documents, etc).

Pito Sat Dec 08, 2018 1:35 pm

Converting binary files – could you explain what it does? A conversion of a .bin into an initialized C const array? I did it with “xxd -i APP_sketch.bin” during the “execution off the external sram” exercise :roll:

majenko Sat Dec 08, 2018 1:46 pm

It’s a new feature that’s not documented yet. There’s two converters at the moment – raw binary, that creates a simple C array and provides the associated variables in an auto-included header file, and a graphics file converter that takes jpeg, png or gif files and converts them into C arrays in a number of different raw graphics formats (RGB565, RGB888, etc) and again gives you the associated variables.

Try an example – load a binary file into the IDE through the tree and right click on it and set the conversion. If it’s a graphics file you get a different menu to if it’s any other form. Then compile, and take a look in the Output branch to see the results.

Sign in to reply