Fast MMIO GPIO for H2+, H3, H5, H6 and S905


sgjava
 Share

2 2

Recommended Posts

I was able to build the property file for the NanoPi M1 in about 20 minutes, so now basically you can do ~2 MHz GPIO square wave on all Allwinner and S905 CPUs (you listening @TonyMac32?) without any special code or adapters. All other libraries require one off code to support GPIO register access thus they only support limited boards. In my mind this is the holy grail for cross platform GPIO performance. I plan on going through some more diverse boards, but I'm happy with the results so far. Since only one core is utilized you'll average 25% CPU utilization on quad core systems. That may be another goal using two threads to improve performance further. I have currently mapped Nano Pi Duo, Nano Pi M1,  Nano Pi Neo Plus2 and Odroid C2.

 

Check out Java Periphery for more information.

 

Another thing to consider is that you can utilize the property files in other languages as well since there's Periphery APIs for C, Python and Lua as well.

 

 

Link to post
Share on other sites

Donate and support the project!

I have been meaning to tell you @sgjava that, while I have no practical use in mind at the moment, I have been following your forum announcements for some time and find your work interesting.  And your explanation of where it fits in the marketplace and what problems does it solve will probably stick with me for some time and I surely will use it (or more likely, recommend it to someone) at some point.  So thanks for your work and also for explaining what it does, where it fits, why, etc...  Far too few developers seem to manage this latter part in any way at all, much less as well as you have.

 

Cheers!  :thumbup:  :beer:

Link to post
Share on other sites

@TRS-80I'm basically using the Armbian philosophy of making cross platform a reality.  While SBCs like Raspberry Pi think they have a better ecosystem Armbian supports 100+ boards, so having software that can take advantage of that is more important in my opinion. I mean I'm basically using 15 Java classes to cover all the userspace IO stuff. Take a look around and you will see libraries with 100s of classes. In my mind it's pretty easy to support various devices, so I'm just concentrating on making the core solid and portable. In fact I just included the ODROID XU4 today which a lot of libraries do not support. Anyways, thanks for the recognition. Two home made ciders downed before dinner after today's commits. Back to work Monday...

Link to post
Share on other sites

Yes it's your architectural choices that I seem to appreciate the most (besides your elucidation of them).  I don't even know much if anything about the space, but your explanations make a lot of sense to me already.

 

You put me in the mood for tasty cold delicious adult beverage of my own, but first I must go now and replace spark plugs in the Mrs. car.  :D   :beer: 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

2 2