Nuget Package: Steadsoft.Spitfire.STM32MP153

I’ve taken steps to share the recent work I did on high performance access to device registers on the Endpoint Domino board.

I’ll get the code situated into a public repo in dure course, but the nuget package should appear soon once Nuget do their usual vetting.

There’s a short readme in the package that gives an example (that works) of how the code is intended to be used.

The basis for the design’s speed is the wrapping of the (Linux) memory mapping into a disposable class and the reliance on C# ref returns to give direct and very fast access to a register. The peripheral classes are C# partial classes in which all of the registers bit fiddling is generated by a tool making it very easy to add further register definitions.

All of this will become clearer when the repo is setup but until then one can simply use the package and play around with it.

Oh, they vetted it already, here it is:

image

2 Likes

Here’s the repo:

I’ll be adding a few more bits to this in due course, but you can now see the code for yourself if you’re interested in the internals.

Feel free to submit issues and/or start a discussion too, I’m personally interested in just how much can be done with this approach without needing to rely on the OS, I’d like for example to leverage DMA but it seems we can’t some things are inaccessible when running under Linux (unless using IOCTL and so on).

I added a small test application to the repo, that was used for debugging/testing the Spitfire API. This can be built and run on a Domino board and a scope used to examine the GPIO output signals.

1 Like