List of cores currently available

Cores are the underlying magic that make the Arduino API possible
User avatar
sheepdoll
Posts: 224
Joined: Fri May 22, 2015 12:58 am
Location: Silicon Valley Vortex
Contact:

Re: List of cores currently available

Postby sheepdoll » Wed Jun 10, 2015 11:12 pm

RogerClark wrote:
BTW. @sheepdoll posted onto another F4 thread about the Cube, and from what I understand, there may be licensing issues on the linker scripts it generates.
Though @sheepdoll may have been also referring to OpenSTM32 workbench , and I'm not sure where it gets its files.


The restrictive license on the STM32F401RETx_FLASH.ld file must come from the STM32CubeMX. The same file with a different copyright/license header is created when TRUESTUDIO is chosen as the IDE. Other than the copyright the files are identical. So I think this is boilerplate code for use with GCC tools through eclipse. As for where the files come from, there seem to be some databases in the users home directory, in a folder called .stm32cubemx.

I was not impressed with Koduino. Seems to have a lot of the same issues the AreoQuad stuff has regarding what chip targets are used. The F401 and the F407 are not the same, then there are the Nucleo and Discovery differences. It could just be that I have been working with the tools here and am feeling more comfortable with them.

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

Re: List of cores currently available

Postby RogerClark » Wed Jun 10, 2015 11:24 pm

@sheepdoll

Thanks for the clarification.

Re: Koduino

OK.
I did try to produce a F103 variant for Koduino a while ago, but got bogged down with which headers, from the Cube, needed to be included where, and eventually after 3 or 4 hours I gave up as I was getting nowhere :-(

Avik claims to have a F4 version of Koduino working, but has not pushed his code. But as currently Koduino only works on Aviks own custom F3 board there is no way to evaluate even its most basic operations.

I will pester Avik to push whatever F4 code he has, even if its only partially working

Edit. He appears to have pushed a F4 board last week

I will pull and test

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

Re: List of cores currently available

Postby sheepdoll » Thu Jun 11, 2015 4:45 am

I just spent the last hour or so playing with Koduino.

What I see after getting the cubeMX to compile, is that there would be a lot of work to implement the 401 Nucleo. Avik seems to be attempting a one size fits all. A lot of the files have been moved around from the tree that cube generates. The docs say not to do this. The way I have it set is to point the CubeMx at the variant folder. CubeMX is providing the logic to give the IDE what it needs.

A lot of the Koduino F4 stubs are just cut and paste from the F3. The core library looks to be derived from maple so there are still a lot of low level structures rather than callbacks into the HAL. Did not dig too deeply.

I did look at some of the Arduino.cc core. That might be a better starting place to work from. None of this is going to be pretty.

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

Re: List of cores currently available

Postby RogerClark » Thu Jun 11, 2015 4:52 am

@sheedoll

A lot of the files have been moved around from the tree that cube generates.


Ah...

That explains a lot.

My presumption was that I could just copy the folders generated by the Cube into a variant folder and away it would go.

But of course it didn't.

I wonder why Avik chose to start restructuring the folders. I presume he's also had to change some of the headers so that they include from the correct path, or perhaps he managed to handle that using the include directives on the command line.



It could be that looking at the Arduino SAM folders may be one line of attack, but its probably worth contacting Avik, because form what I understand he evaluated libmaple, and makerlabme and a few other cores before deciding to do it again from scratch.
So I guess he has logical reasons for doing what on the face of it seems a bad idea (i.e restructuring the output from the Cube)

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

Re: List of cores currently available

Postby sheepdoll » Thu Jun 11, 2015 5:30 am

RogerClark wrote:
My presumption was that I could just copy the folders generated by the Cube into a variant folder and away it would go.


worked for my test. (well I had to move/rename two files)

RogerClark wrote:I wonder why Avik chose to start restructuring the folders. I presume he's also had to change some of the headers so that they include from the correct path, or perhaps he managed to handle that using the include directives on the command line.

... It could be that looking at the Arduino SAM folders may be one line of attack ...


Looks like most of the code was copy/paste from the sam core. So the folders may have been restructured to match that. SAM does have CMSIS under system/. That might work better with the Atmel way of scaling things. STM32 put the variants in the CMSIS.

What may be happening is that there are two Hardware Abstraction Layers, STM_HAL and Arduino_core both competing for direct access to the HW. This is why when ever one wants a different chip in the STM32 family that the whole thing seems to want to be written from scratch...

As @madias said the Nucleo thing is a marketing check box. ST has sort of made their own Arduino core, which they call CubeMX, which they expect the user to call directly. There are even places in the code that are marked for where the user puts functions. I sort of remember this from the training classes. Did not make sense then, sort of does now.

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

Re: List of cores currently available

Postby RogerClark » Thu Jun 11, 2015 6:02 am

Re:CubeMX

Ah.. Again.. Its not something I'm familiar with.

I downloaded the STM32Cube and have exported files from it, but thats about all.

The other dev env I tried for STM32, a while ago, is CooCox, which seems to have its own HAL type system, which looks a lot like the Cube HAL, but I suspect pre-dates the STM32Cube, as there has been F103 support in CooCox for quite some time, i.e prior to F103 becoming part of the STM32Cube.
Consequentially I suspect the license on the CooCox files would be problematic - not that I think its worth trying to use their files.

There is also Em:Blocks, but I've only very briefly looked at it, and didnt get as far even as compiling a blink program, so I've no idea which files they use


Re: Poison pill

I suspect if you have found different versions of the linker script with different licenses, this may just be an oversight by STM, and not their intention to have a restrictive license on a system where all the new files appear to have a much more open license.

However I have asked questions about the license on the old HAL files, (on the STM32 community forum) and not got a response, as STM only seem to staff the BBS with tech people ( "clive" ) and not anyone who knows about licenses

You are at a bit of an advantage to me however, as I think there is an STM office in Berkeley isn't there ? I noticed an advert for an "evangelist " some time last year, when I was looking for someone I could contact. So you may be able to get some information out of a local representative that you'd not get from STM central (China)

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

Re: List of cores currently available

Postby RogerClark » Sun Jun 21, 2015 11:34 am

Guys,

I came across a recent posting on the old LeafLabs forum, referencing that active development of libmaple was now going on under the Rambutan project

https://github.com/rambutan32/librambutan

http://rambutan.cc/

http://forums.rambutan.cc/


There does seem to be some recent modifications going on to this repo, but no activity on that forum since March this year.

It just looks like its one guy, bryan newbold , who is running with this. So I think I may contact him, as I doubt its worth his effort re-doing what we've already mostly done, and if he wants to use the CMSIS or HAL, then he'd be better off looking at what @sheepdoll has done.

User avatar
Rick Kimball
Posts: 754
Joined: Tue Apr 28, 2015 1:26 am
Location: Eastern NC, US
Contact:

Re: List of cores currently available

Postby Rick Kimball » Sun Jun 21, 2015 1:55 pm

It looks like he has no interest in arduino using wirish. You might read his development roadmap post on his forums. http://forums.rambutan.cc/t/roadmap-and-priorities/56 He doesn't really like bootloaders or usb serial either : )

-rick
-rick

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

Re: List of cores currently available

Postby RogerClark » Sun Jun 21, 2015 9:12 pm

Rick,

i did read the "roadmap", but it didn't make much sense.

If he is not fussed about the Arduino API, then libmaple is not a good starting point.

Not using the native usb on the STM32 seems a bit odd as well. STM provide their own usb code if he doesnt like the stuff leaflabs wrote.

BTW.
Re:Bootloader
it looks like the BlackSphere guy(s) wrote their own DFU bootloader using libopencm3.

if i get chance i will have a go at compiling it, to see if its any better than the modified Maple bootloader.
But as fas as i can see its no smaller and i doubt its any faster ( as the majority of the upload time appears to be the delay while the STM32 erases the pages of flash )

victor_pv
Posts: 1049
Joined: Mon Apr 27, 2015 12:12 pm

Re: List of cores currently available

Postby victor_pv » Mon Jul 27, 2015 2:42 pm

Looks at something in seedstudio yesterday, I found they have another core for STM32 mcus.
They have this board called UF0, which has a cortex M0 STM32F051.
Their core libraries are here:
https://github.com/BestU/STM32_for_Arduino_BSP

I had a quick look, and seems they used CMSIS and the standard peripheral library.

Then there is the makerlab.me core, which I dont remember if it has been linked here before, so just in case:
https://github.com/MakerLabMe/STM32_Arduino_Cores

It is for F103 and F4xx as far as I can see, again based on CMSIS and std peripheral library apparently.
The core was updated about 3 months ago, but looks like in the meanwhile they have added support for the board manager, and that has been updated recently:
https://github.com/MakerLabMe/STM32_Arduino_Board_index

Posting them in case they are of use to anyone.


Return to “Cores”

Who is online

Users browsing this forum: No registered users and 1 guest