04-12-2025, 06:04 PM
Apache NuttX RTOS is officially supported on Avaota-A1 Arm64 SBC (Allwinner A527 SoC). Let’s take Unicorn Emulator and create a Software Emulator for Avaota SBC...
(1) We call Unicorn Library to create our Barebones Emulator
(2) Emulate the 16550 UART hardware by intercepting I/O Memory
(3) Recompile NuttX with 4 Tiny Tweaks and boot on Unicorn
(4) NuttX makes a Context Switch and fails
(5) Because Unicorn doesn’t handle Arm64 SysCalls?
(6) No worries we’ll Emulate Arm64 SysCalls ourselves!
(7) By jumping into the Arm64 Vector Table
(8) NuttX on Unicorn boots to NSH Shell! (Almost)
(9) How exactly does NuttX boot on Avaota SBC? We have a Detailed Boot Flow
Why are we doing this?
-- So we can create NuttX Drivers and Apps on Avaota SBC Emulator (without the actual hardware)
-- Avaota Emulator is helpful for NuttX Continuous Integration, making sure that all Code Changes will run correctly on Avaota SBC
-- The Trade Tariffs are Terribly Troubling. Some of us NuttX Folks might need to hunker down and emulate Avaota SBC, for now.
-- Or maybe we should provide Remote Access to a Real Avaota SBC? ?
Check out the article: https://lupyuen.org/articles/unicorn4.html
![[Image: unicorn4-title.jpg]](https://lupyuen.org/images/unicorn4-title.jpg)
Lup
(1) We call Unicorn Library to create our Barebones Emulator
(2) Emulate the 16550 UART hardware by intercepting I/O Memory
(3) Recompile NuttX with 4 Tiny Tweaks and boot on Unicorn
(4) NuttX makes a Context Switch and fails
(5) Because Unicorn doesn’t handle Arm64 SysCalls?
(6) No worries we’ll Emulate Arm64 SysCalls ourselves!
(7) By jumping into the Arm64 Vector Table
(8) NuttX on Unicorn boots to NSH Shell! (Almost)
(9) How exactly does NuttX boot on Avaota SBC? We have a Detailed Boot Flow
Why are we doing this?
-- So we can create NuttX Drivers and Apps on Avaota SBC Emulator (without the actual hardware)
-- Avaota Emulator is helpful for NuttX Continuous Integration, making sure that all Code Changes will run correctly on Avaota SBC
-- The Trade Tariffs are Terribly Troubling. Some of us NuttX Folks might need to hunker down and emulate Avaota SBC, for now.
-- Or maybe we should provide Remote Access to a Real Avaota SBC? ?
Check out the article: https://lupyuen.org/articles/unicorn4.html
![[Image: unicorn4-title.jpg]](https://lupyuen.org/images/unicorn4-title.jpg)
Lup