List of cores currently available

Cores are the underlying magic that make the Arduino API possible
User avatar
RogerClark
Posts: 6413
Joined: Mon Apr 27, 2015 10:36 am
Location: Melbourne, Australia
Contact:

Re: List of cores currently available

Post by RogerClark » Fri Mar 25, 2016 3:23 am

@slammer

Does openCM3 use the Standard Peripheral Lib / CMSIS from STM, or is does it use a clean room implementation

The one drawback we have, with using the LibMaple core (Originally written by Leaflabs, way back in 2012), as that they developed their own API to the low level functions.

So its not possible to add SPL or HAL function calls to the Arduino code, hence we can't use any example that uses those calls :-(

Also we don't benefit from updates/bug fixes to the CMSIS / HAL that may be released by STM.

Looking at LibOpenCM3, it looks like its also not using STM's code; so although its got a lot more people supporting it than LibMaple, it looks like it would still have the same issues about not getting updates direct from STM's code and also you can't use examples written using the SPL or HAL - can you???? )

User avatar
sheepdoll
Posts: 233
Joined: Fri May 22, 2015 12:58 am
Location: Silicon Valley Vortex
Contact:

Re: List of cores currently available

Post by sheepdoll » Fri Mar 25, 2016 4:54 am

Slammer wrote:Can you say more about the status of your cubeMX core?
The core , If it could be called that, basically was a way of structuring the variants folders to float over the HAL layers. This way all the IFDEF nightmare is inside the HAL libraries. I retained the Maple headers which expose some of the core functions for flavoring processing and wiring. I got it far enough to do some of the wiring digital I/O and some of the serial stream. This was all about 6 to 10 months back.

Most of what has been done has been proof of concept.

I structured it so that each variant has it's own branch folder. The cube .ioc is inside the version control. In my case I have a number of example boards. Mostly Nucleo, some discovery. I have not pushed back much to the github as they are more abstract tests than actual examples.

I primarily work with Mac and OS X, so I was looking for a way to program these boards using the provided tools that were in the STM32 folder. the bulk of the work was in the board file and others to isolate the different hardware platforms.

This had the added benefit to parallel the build paths so that the "project" can be edited and debugged with eclipse. This is more for debugging libraries and glue code.

Another benefit, as Setup() and Loop() are called from the Main generated by the CubeMX program, is that the HAL APIs can be directly called in a sketch. MX seems to be fairly robust in retaining this code when regenerating. It does add a layer of complexity as the peripherals are instantiated by the MX tool prior to setup being called, So things like setting baud rates bit depths and pin states are redundant in the sketch proper. One still does have to call *.begin to create the processing structures (which are for the most part simply C++ classes)

At the same time I am also learning more about the arduino world. As an advanced AVR programmer I had dismissed the Arduinos. Now I am starting to understand some of the mindset behind it.

User avatar
mrburnette
Posts: 1794
Joined: Mon Apr 27, 2015 12:50 pm
Location: Greater Atlanta
Contact:

Re: List of cores currently available

Post by mrburnette » Fri Mar 25, 2016 1:20 pm

sheepdoll wrote: <...>
At the same time I am also learning more about the arduino world. As an advanced AVR programmer I had dismissed the Arduinos. Now I am starting to understand some of the mindset behind it.
"Mindset" or insanity?

My formal (university engineering) language was Fortran but I had a 6502 P.E.T. and learned assembly. Later in the corporate world: Clipper, C, Delphi (Borland), VBA. At first, I was put-off by the Arduino philosophy but years later, I have come to appreciate why it works for so many people. I can write a build script or compile/link from the runline but I fully appreciate that such skills are not of interest to everyone... and most of the time, I find that I really do not need that knowledge. Having a default build/upload methodology that is just a click is not a bad thing.

I have mixed emotions about 3rd party libraries. I use many, but I have a tendency to hack most libraries on a project-by-project basis, This hacking by me is one of the reasons that I am such a proponent for putting libraries inside the sketch folder to keep them encapsulated. The Arduino team keeps back IDE versions available for download, so rebuilding a project is just a matter of unZipping the backup and compiling... if ArduinoIDE errors occur, just download the correct IDE, install, recompile. Bingo. This is a lifesaver for me since I post many projects on the web.

So, I clearly think Arduino IDE has it place and does a good job (7 on the 10 scale) to satisfy what is needed for most end-users. It is not perfect and there are many things to dislike, but it is not a bad 'free' product - considering everything is in one download. It provides a nice common-denominator for instructing others and in replicating published projects.

Ray

testato
Posts: 39
Joined: Sun Aug 14, 2016 7:44 am

Re: List of cores currently available

Post by testato » Wed Sep 21, 2016 3:49 pm

may you update the first message adding the ST core ?

User avatar
RogerClark
Posts: 6413
Joined: Mon Apr 27, 2015 10:36 am
Location: Melbourne, Australia
Contact:

Re: List of cores currently available

Post by RogerClark » Mon Sep 26, 2016 4:50 am

testato wrote:may you update the first message adding the ST core ?

Done... As far as I can at the moment, as this core is still in Beta really.

miki
Posts: 30
Joined: Wed May 18, 2016 10:22 pm

Re: List of cores currently available

Post by miki » Sun Feb 26, 2017 3:33 pm

I couldn't agree more.
I like use the same very easy set up environment for compiling in few clicks with Arduino IDE.
I recently tried to do some hacks in betaflight code and try to setup eclipse to build it in windows.
OMG sometimes I felt like shooting myself in the head so many settings tweaks ,add Java JDk ,downloading/installing specific eclipse build( not anyone works),install GCC ARM Embedded toolchain,add GNU ARM Eclipse Plugins,install OpenOCD,install QEMU,download/install msys or cygwin, add them to the PATH,configure eclipse(PATH,compile settings, linker settings),. aso...ohhh.Terible experience.I think it is impossible for a newbie to do that even with the manual how to in front of their eyes..

In comparison I compiled multiprotocol_STM32 in Arduino IDE 1.6.12 with few clicks.Indeed is not perfect but fast compiling/testing is invaluable for me . It saved me so much time.
I do the same with arduino libraries I fast tested some sketches using some arduino libraries , and on real deal I like go on low level working directly with registers.
I worked also with avr before and Arduino is/was not very popular with many avr purists.But maybe this feeling will change when passing to STM32 chips.


mrburnette wrote:
sheepdoll wrote: <...>
At the same time I am also learning more about the arduino world. As an advanced AVR programmer I had dismissed the Arduinos. Now I am starting to understand some of the mindset behind it.
"Mindset" or insanity?

My formal (university engineering) language was Fortran but I had a 6502 P.E.T. and learned assembly. Later in the corporate world: Clipper, C, Delphi (Borland), VBA. At first, I was put-off by the Arduino philosophy but years later, I have come to appreciate why it works for so many people. I can write a build script or compile/link from the runline but I fully appreciate that such skills are not of interest to everyone... and most of the time, I find that I really do not need that knowledge. Having a default build/upload methodology that is just a click is not a bad thing.

I have mixed emotions about 3rd party libraries. I use many, but I have a tendency to hack most libraries on a project-by-project basis, This hacking by me is one of the reasons that I am such a proponent for putting libraries inside the sketch folder to keep them encapsulated. The Arduino team keeps back IDE versions available for download, so rebuilding a project is just a matter of unZipping the backup and compiling... if ArduinoIDE errors occur, just download the correct IDE, install, recompile. Bingo. This is a lifesaver for me since I post many projects on the web.

So, I clearly think Arduino IDE has it place and does a good job (7 on the 10 scale) to satisfy what is needed for most end-users. It is not perfect and there are many things to dislike, but it is not a bad 'free' product - considering everything is in one download. It provides a nice common-denominator for instructing others and in replicating published projects.

Ray
Last edited by miki on Sun Feb 26, 2017 5:07 pm, edited 2 times in total.

stevestrong
Posts: 1450
Joined: Mon Oct 19, 2015 12:06 am
Location: Munich, Germany

Re: List of cores currently available

Post by stevestrong » Sun Feb 26, 2017 3:54 pm

That's all correct.
Just one huge thing is missing from Arduino IDE: the debug interface...

User avatar
RogerClark
Posts: 6413
Joined: Mon Apr 27, 2015 10:36 am
Location: Melbourne, Australia
Contact:

Re: List of cores currently available

Post by RogerClark » Sun Feb 26, 2017 9:08 pm

stevestrong wrote:That's all correct.
Just one huge thing is missing from Arduino IDE: the debug interface...
I recall asking various people in the Arduino organisation about this, (well over a year ago), and strangely they said it would be too difficult for beginners to understand and use.
IMHO this is ridiculous, as I suspect anyone who programs using the Arduino IDE may already have played around with Javascript programming and all the major browsers now come with a debugger built in.


BTW. I have not tried it with an Arduino elf file, but @victor_pv said he uses Segged OZone.
And as some Stlink boards can be converted to JLink using Seggers own updater, it may be one way to get a debugger with a GUI on Windows.

vitor_boss
Posts: 49
Joined: Wed Apr 19, 2017 9:50 am

Re: List of cores currently available

Post by vitor_boss » Sat Jul 08, 2017 5:29 am

STM32GENERIC

Advantages
  • Uses much less RAM than maple core
  • Already enabled FPU
  • Generate a smaller code 8~15% on Os
Disadvantages
  • Complex GPIO and HAL initialization aren't noob friendly

dannyf
Posts: 69
Joined: Wed May 11, 2016 4:29 pm

Re: List of cores currently available

Post by dannyf » Sat Jul 08, 2017 1:21 pm

would be interesting to see how much space a typical job takes under various cores.

with my ARMduino: a blinky compiles to 3.5KB, slight smaller with -Os and bigger with -O0 on F1, and 2 - 3Kb on F0.

I wonder how much it compiles to on other cores.

edit: one more data point - blinky compiles to 13kb under stm32duino / arduino 1.6.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest