List of cores currently available

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

Re: List of cores currently available

Postby 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: 202
Joined: Fri May 22, 2015 12:58 am
Location: Silicon Valley Vortex
Contact:

Re: List of cores currently available

Postby 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: 1743
Joined: Mon Apr 27, 2015 12:50 pm
Location: Greater Atlanta
Contact:

Re: List of cores currently available

Postby 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: 34
Joined: Sun Aug 14, 2016 7:44 am

Re: List of cores currently available

Postby testato » Wed Sep 21, 2016 3:49 pm

may you update the first message adding the ST core ?

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

Re: List of cores currently available

Postby 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.


Return to “Cores”

Who is online

Users browsing this forum: No registered users and 2 guests