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 4:03 pm

Or just download the .zip version. For STM32 you want the -RC3 version which isn’t bundled as a .deb – I only do that for releases, not betas or RCs. Just download the .zip, set the permissions on the uecide script (pesky zip files don’t do that for you… I should change to tgz or something), and run it. If you have Java installed it will work.

Rick Kimball Fri Dec 07, 2018 4:09 pm

I did download the zip but when I went to install stuff, it wanted to get it from a .deb file.

I just installed the source and compiled it, that seems to work fine.

So it seems you have lots of flexibility here, why don’t you just make it so the user can select which gcc is used ? Why did you decide to switch the compiler when the current platform uses the older gcc?

stevestrong Fri Dec 07, 2018 4:12 pm

[majenko – Fri Dec 07, 2018 3:46 pm] –
Oh, and the beauty of UECIDE is you’re not tied to GCC 7. You can use the Due compiler if you really must (although it’s not set up for that at the moment). UECIDE has one simple underlying rule: the user chooses what they run – I just provide the choice.

Then please also provide the scripts for that :D

mrburnette Fri Dec 07, 2018 4:15 pm

[majenko – Fri Dec 07, 2018 3:38 pm] –
This is the only issue that I know of, and it’s not me that found it – it’s been hanging around for a while (See the link above).

And I am quite capable of debugging my own issues thank you without having to come here and pester you. Besides, I use gcc7 with numerous different ARM boards – Due, Teensy, etc, and this is the only core I have had so far that has needed modification to work with it.

We appreciate the author of any complex piece of software coming into the forum to present and showcase their efforts. Here, our members span novices to professional developers such as Rick. Therefore, you get a diverse span of dialog and sometimes it is critical: not mean, but coming from years of exposure to both professional tools sets as well as products such as UECIDE which is a superb individual effort.

In my opinion “-duino” means that the product must be Arduino compatible and should follow closely the output binary that will be created by the current Arduino Official IDE. When the compiler/linker utilized with the default install of any non-official IDE differs then we enter the realm of supportability and in a non-moderated forum such as STM32duino, this is a great concern. This is why I a m so pleased that you took the initiative to join as a member. It also means that you will get some harsh feedback sometimes from a few of us experienced members. Overall, I think you and your product will benefit from the interactions.

Ray

majenko Fri Dec 07, 2018 4:17 pm

UECIDE uses deb files internally for the packages. It means I can use standard packaging and repository tools to manage it all. It will install a couple of packages from deb files that it holds internally within the java file itself to bootstrap it.

I couldn’t get the teensy boards working with the Due compiler – that needed its own compiler because the one Arduino provide doesn’t have everything in it. I wanted to have one standard compiler for all ARM boards, so I chose the one which ARM themselves currently provide as the standard.

In due course, I will tweak the old Arduino compiler package to work with STM32 as well, but that will come later.

Incidentally, for AVR and PIC32 I provide multiple compilers. For PIC32 no less than 6 versions of the compiler are available – one of which is manually tweaked by me to work slightly differently (I can’t persuade them to lift a hard heap limit, so I have to roll my own to do it).

Rick Kimball Fri Dec 07, 2018 4:23 pm

[majenko – Fri Dec 07, 2018 4:17 pm] –
In due course, I will tweak the old Arduino compiler package to work with STM32 as well, but that will come later.

You realize when someone has a problem with your “tweaked” package, they will come here and complain. Just search the forum for posts about sloeber and platform IO. Those projects “tweak” the compile or package, when it didn’t work they didn’t go to those project leads to find out why. They came here and didn’t even mention they were using sloeber or platform i/o… In the end I’ve submitted bugs and fixes to those packages but it wasted a lot of posts on here to figure out why the user was having issues.

The mantra here is, if it compiles in the Arduino IDE, then it isn’t really a problem. Otherwise, we are just chasing our tails to satisfy someone else’s bad decisions.

Example:
https://github.com/Sloeber/arduino-ecli … ssues/1005

majenko Fri Dec 07, 2018 4:27 pm

If they are using UECIDE then they got it from the UECIDE website – where there is a forum prominently visible. By all means, tell them to eff off over there. I will be glad to help them there.

majenko Fri Dec 07, 2018 4:28 pm

Oh, and the mantra with me is “if you’re fixated on the Arduino IDE then you are one sick, sick puppy…” ;)

Rick Kimball Fri Dec 07, 2018 4:40 pm

[majenko – Fri Dec 07, 2018 4:27 pm] –
If they are using UECIDE then they got it from the UECIDE website – where there is a forum prominently visible. By all means, tell them to eff off over there. I will be glad to help them there.

I’ve suggested that to users with a Non-Arduino IDE problem here and that behavior prompted other to scold me for being a killjoy. Also, it didn’t actually discourage the problem user from continued questions. It is a no win situation.

This site is called stm32duino. It focuses on stm32 and the Arduino IDE/API. No paid people support people here, Just users with a common board and common problems looking for solutions. If you adding to the problems, you are fixated on the wrong problem. The goal should be making an stm32 board usable in the Arduino universe.

stevestrong Fri Dec 07, 2018 4:46 pm

Or you simply like working solutions. 8-)

majenko Fri Dec 07, 2018 4:46 pm

TBH I deal with less problems from users in UECIDE than I do with users in the Arduino IDE. Yes, the Arduino IDE may be the baseline to compare everything against, but it really does bring a whole new dimension to “base”. I don’t design things to work in the Arduino IDE. If people want to try and use them in that piece of crap then so be it. The Arduino IDE is of no use to anyone who is more advanced than blinking an LED. It’s a complete joke of an IDE.

Users of the Arduino IDE (what I call “ardueenies”) are whiny little ******s. And they can keep their crummy IDE. UECIDE’s users tend to be a step above them. You don’t get the crap that I deal with daily from the Arduino community with UECIDE. The users know what they are doing and know where to go to seek solutions. I think I have only ever seen one UECIDE related question on ASE ever. UECIDE is not for Ardueenies. It’s for people with a brain. And that itself filters out much of the dross.

Rick Kimball Fri Dec 07, 2018 4:50 pm

BTW: A shrinking number of users on this site are using the maple mini.

This poll ( https://www.stm32duino.com/viewtopic.ph … 7&start=10 ) from a year+ ago showed most people have succumbed to the less than $2 cost of the “pill boards”. It is probably time to take another poll, however I get the feeling that the pill board fans have gone up. I would suggest the Robotdyn black board as the best of that group. https://robotdyn.com/catalog/developmen … ields.html

Pito Fri Dec 07, 2018 4:52 pm

FYI: The classic SdCard data logger with FIFO and FIR filter (FreeRtos9) , Win7 64b, latest uecide 10..rc3, :
PS: this one below is with a few extensions described at the end of the thread.. It builds straight, even my original source organization is a bit weird.. :)
Compiling...
• Preprocessing...
• Converting binary files
• Compiling sketch...
• Compiling core...
‣ core
‣ maple
• Compiling libraries...
‣ SdFat [C:\Users\pito\Documents\UECIDE\libraries\SdFat] ‣ SPI [C:\Users\pito\Documents\UECIDE\libraries\SPI] ‣ MapleFreeRTOS900 [C:\Users\pito\Documents\UECIDE\libraries\MapleFreeRTOS900] • Linking sketch...
‣ Generating bin file...
‣ Generating lss file...
Compiling finished.
Memory usage
• Program size: 28,344 bytes
• Memory size: 18,088 bytes
• Compilation took 1.526 seconds. // NOTE: second build

Rick Kimball Fri Dec 07, 2018 4:56 pm

Why doesn’t UECIDE provide the user with a total flash and ram left? How much it uses is interesting, but how much is free is more interesting.

majenko Fri Dec 07, 2018 5:00 pm

[Rick Kimball – Fri Dec 07, 2018 4:56 pm] –
Why doesn’t UECIDE provide the user with a total flash and ram left? How much it uses is interesting, but how much is free is more interesting.

It will do when I get round to it. It’s low priority. To help me remember you could add a feature request on github…

[Rick Kimball – Fri Dec 07, 2018 4:50 pm] –
BTW: A shrinking number of users on this site are using the maple mini.

This poll ( https://www.stm32duino.com/viewtopic.ph … 7&start=10 ) from a year+ ago showed most people have succumbed to the less than $2 cost of the “pill boards”. It is probably time to take another poll, however I get the feeling that the pill board fans have gone up. I would suggest the Robotdyn black board as the best of that group. https://robotdyn.com/catalog/developmen … ields.html

I have a blue pill coming in a few days. Much as I would love to, I can’t own all boards that are out there – so I have to start with just a few when porting a core and then once I am familiar with how it all works do a mass porting of all the boards the core comes with.

Rick Kimball Fri Dec 07, 2018 5:02 pm

[majenko – Fri Dec 07, 2018 4:46 pm] –
I don’t design things to work in the Arduino IDE. If people want to try and use them in that piece of crap then so be it. The Arduino IDE is of no use to anyone who is more advanced than blinking an LED. It’s a complete joke of an IDE.

If I want a real profession tool I use eclipse. If I want to use a profession style tool that works easily with the Arduino API, I use sloeber (which is really just a plugin for eclipse) It seems to use most of the Arduino build system and it sets up all those little things in eclipse (paths etc) so function discovery/ code completion work properly. In addition, I can easily launch a real debugger from it without flogging myself.

Are any of those features on your list of things to do in UECIDE?

Rick Kimball Fri Dec 07, 2018 5:05 pm

[majenko – Fri Dec 07, 2018 5:00 pm] –
I have a blue pill coming in a few days. Much as I would love to, I can’t own all boards that are out there – so I have to start with just a few when porting a core and then once I am familiar with how it all works do a mass porting of all the boards the core comes with.

You realize that Roger’s core is headed for mothballs yes?

The real future of the STM32 Arduino cores are coming from the STM led effort that goes on with the “official core”
https://github.com/stm32duino/Arduino_Core_STM32

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. I will be having another go some time in the future. In UECIDE there’s no paths to set up. It just works.

Oh, and one thing that UECIDE does that all the others can only dream of – the Arduino IDE, sloeber, all that lot – is library recursion. UECIDE has a firm grasp on what a library is (although that does impose stricter rules on how you name your libraries), and it maintains a tree of library dependencies, so if a library includes another library UECIDE already knows to include that one in the compilation – no need for you to know that or even include it in your sketch.

UECIDE was the first Arduino-centric IDE to fix the prototype location problem that was plaguing the Arduino IDE for years breaking code left right and centre.

I don’t think, in the 6 years that I have been programming UECIDE, that I have ever heard anyone complain about things being compiled differently and giving different results. Sometimes compilation would break, due to internal problems parsing the code, but that has nothing to do with the cores – purely my shoddy Java code at the time.

UECIDE is not a newcomer. It’s far from new. It grew out of Arduino 0023. Yes, It started before Arduino 1.0.0. And grew from there. So you could say that Arduino should be trying to be compatible with UECIDE. And the number of things that appeared in the Arduino IDE after I had them in UECIDE for some time shows they do have *some* aspirations…

majenko Fri Dec 07, 2018 5:14 pm

[Rick Kimball – Fri Dec 07, 2018 5:05 pm] –
[majenko – Fri Dec 07, 2018 5:00 pm] –
I have a blue pill coming in a few days. Much as I would love to, I can’t own all boards that are out there – so I have to start with just a few when porting a core and then once I am familiar with how it all works do a mass porting of all the boards the core comes with.

You realize that Roger’s core is headed for mothballs yes?

The real future of the STM32 Arduino cores are coming from the STM led effort that goes on with the “official core”
https://github.com/stm32duino/Arduino_Core_STM32

Yes, I know. And once I am done with Roger’s core I will be working on the HAL one next. I hope to be able to integrate the board definitions into one so that you can use the same board selection with either core. It remains to be seen if I can though. That’s for another day.

mrburnette Fri Dec 07, 2018 5:24 pm

[majenko – Fri Dec 07, 2018 4:46 pm] –
…
I don’t design things to work in the Arduino IDE. If people want to try and use them in that piece of crap then so be it. The Arduino IDE is of no use to anyone who is more advanced than blinking an LED. It’s a complete joke of an IDE.

Users of the Arduino IDE (what I call “ardueenies”) are whiny little ******s. And they can keep their crummy IDE. UECIDE’s users tend to be a step above them.
…

Fair enough, you’re the author of the IDE, you can stand on your soap box in Speakers’ Corner and shout the praises of your creation.

But, I still have to work daily with the ArduinoIDE as it is the “standard yardstick” for this forum.

Just so there is no misunderstanding, UECIDE will be treated just as any other non-ArduinoIDE … questions will be posed ONLY in this forum and anyone asking anything that leads the members to think it is really UECIDE related will point the questioner to the UECIDE official forum. However, since you are a member, you are surely permitted to answer questions in this forum, if you wish, although you are not obliged to do so.

Your cocky (understandable) attitude really makes things difficult for us old-guard members that are trying to keep order in the forum due to the influx of non-techies: more like a flood! Some of the original team have moved on since much of the recent forum activity is just “noise” from Blue_Pill users who have little or no Arduino embedded programming experience. A few of the new users do have ArduinoIDE experience and are here looking to port previous projects they created in the AVR-constrained resource silicon. An under $2 delivered STM32F103 on a Blue_Pill is a huge reduction in cost from even a clone-UNO, never mind a real UNO. The forum started as a service for seasoned software folks to create a truly compatible “core” for the ArduinoIDE beyond version 1.5.x and many hands have been in the code base inherited from LeafLabs which shipped their own hacked Java IDE based on ArduinoIDE 0022.

The above being said, the core codebase is fairly mature, in a monolithic view. Most serious errors have been mitigated and enhancements are the largest pull-requests; and many members have forked Roger’s repository and have their own versions with their own enhancements and from time to time new members are referred to forked repositories for quick cures. In view of this and other issues, Roger has expressed a desire to achieve this forum and go to a strictly read-only and searchable historical record – the same as LeafLabs did a few years ago with their forum and documentations.

As a retired professional software manager, I really understand your poo-poo’ing the Arduino IDE. But it works for novices and it is well documented and it is undergoing changes to incorporate a wide variety of hardware. It is what it is, entrenched, and there is no good reason to bash it; although I find no good reason to embrace it, either. Anything that advances the technology of microcomputers and microcontrollers into the non-traditional hobbyist world is a good thing. Once the new user learns to blink a LED, they often develop a desire to learn basic electronics. My guess is that a large number of recent Amatuer Radio licenses are awarded to folks that got their interest from blinking a LED. So, I try and assist in this forum to drive people to learn to do things on their own; try and find their own answers; learn how to use the Internet to find the answers that most certainly exists for simple to complex ideas. The forum is about education and enjoyment and not a poison statement about how nasty the Arduino tools are. Those that find their heads hitting the ceiling will advance on their own.

Ray

Sign in to reply