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: