Building a #PinePhone Display Engine Driver in #ZigLang for Apache #NuttX RTOS ... All shall be explained in this article
#PinePhone Framebuffer: 720 x 1440, 4 bytes per pixel (ARGB 8888)
Article: https://lupyuen.github.io/articles/de2?2#graphics-framebuffer
Here's how we define #PinePhone's Framebuffer in #ZigLang ... With a little help from Apache #NuttX RTOS
Article: https://lupyuen.github.io/articles/de2?3#graphics-framebuffer
How we configure #PinePhone's Framebuffer ... By setting the A64 Display Engine registers
Article: https://lupyuen.github.io/articles/de2?5#configure-framebuffer
Will #PinePhone Blend? Yep for sure!
Article: https://lupyuen.github.io/articles/de2?7#configure-blender
Compile-Time Asserts in #ZigLang ... Super helpful for verifying #PinePhone's Hardware Addresses
Article: https://lupyuen.github.io/articles/de2?6#framebuffer-address
Setting #PinePhone's Framebuffer properties in #ZigLang
Article: https://lupyuen.github.io/articles/de2?8#framebuffer-pitch
u13 and other odd integers ... No problem for #ZigLang 👍
Article: https://lupyuen.github.io/articles/de2?9#framebuffer-attributes
Our #ZigLang Driver configures #PinePhone's A64 Display Engine Blender ... To render a Framebuffer on Apache #NuttX RTOS
Article: https://lupyuen.github.io/articles/de2?10#configure-blender
How we enable #PinePhone's A64 Display Engine Blender in #ZigLang
Article: https://lupyuen.github.io/articles/de2?11#enable-blender
Testing our #ZigLang Driver for #PinePhone's A64 Display Engine ... By booting Apache #NuttX RTOS on microSD
Article: https://lupyuen.github.io/articles/de2?12#test-pinephone-display-driver
#PinePhone's Allwinner A64 Display Engine supports up to 3 Framebuffers ... Here's how we render the 3 Framebuffers in #ZigLang
Article: https://lupyuen.github.io/articles/de2?15#multiple-framebuffers
Programming #PinePhone's Allwinner A64 Display Engine ... To render Multiple Framebuffers
Article: https://lupyuen.github.io/articles/de2?16#appendix-render-multiple-framebuffers
#PinePhone renders Multiple Framebuffers ... With #ZigLang and Apache #NuttX RTOS 🎉
Article: https://lupyuen.github.io/articles/de2?17#test-multiple-framebuffers
Some more bits of #PinePhone's Display Driver to be reverse engineered and documented
Article: https://lupyuen.github.io/articles/de2?18#appendix-upcoming-features-in-pinephone-display-driver
Now merging #PinePhone into Apache #NuttX Mainline 👍
Article: https://lupyuen.github.io/articles/de2?19#whats-next
Here's how we render graphics directly to #PinePhone's Display Hardware ... With #ZigLang and Apache #NuttX RTOS
@lupyuen This put a grin on my face this morning! What an achievement.
Safely setting #PinePhone's Framebuffer Address in #ZigLang
Article: https://lupyuen.github.io/articles/de2?6#framebuffer-address