Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Featured Replies

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.

 

 

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:

  • Author

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

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: 

Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.