GitHub Actions will run our Automated Test every day ... For Apache #NuttX RTOS on #Ox64 BL808 Emulator
Article: https://lupyuen.codeberg.page/articles/tinyemu3.html#daily-automated-testing
Bread Machine #Sourdough ... Much better thanks to "The Sourdough Framework"! 👍
Recipe: https://lupyuen.codeberg.page/articles/sourdough.html
We run an "Expect" Script to do Automated Test of Apache #NuttX RTOS on #Ox64 BL808 SBC
Article: https://lupyuen.codeberg.page/articles/tinyemu3.html#scripting-the-expected
Here's the Memory Map for #Ox64 BL808 SBC ... Which we replicated for Ox64 Emulator
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#appendix-risc-v-addresses-for-ox64
Apache #NuttX on #Ox64 BL808 Emulator makes a #RISCV ECALL System Call ... Here's why it fails
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#machine-mode-vs-supervisor-mode
#Ox64 BL808 Emulator runs Apache #NuttX RTOS in the Web Browser ... Just compile #TinyEMU Emulator to WebAssembly (with Emscripten)
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#emulator-in-the-web-browser
#Ox64 BL808 Emulator hits a #RISCV ECALL Exception in Apache #NuttX RTOS ... Let's find out why
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#risc-v-exception-in-emulator
UART Output works OK in #Ox64 BL808 Emulator ... But ECALL crashes with a #RISCV Exception
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#emulator-prints-to-console
Emulating the UART Output for #Ox64 BL808 SBC
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#emulate-the-uart-output
Here's how we intercept the #BL808 UART Registers ... And emulate the #Ox64 UART Controller
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#intercept-the-uart-registers
Let's emulate the UART Registers for #BL808 SoC inside #Ox64 SBC
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#uart-registers-for-bl808-soc
Apache #NuttX RTOS boots OK in our #Ox64 BL808 Emulator!
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#run-tinyemu-emulator
#RISCV "Wait for Interrupt instruction (WFI) provides a hint to the implementation that the current hart can be stalled until an interrupt ... so a legal implementation is to simply implement WFI as a NOP" 🤔
Source: https://github.com/riscv/riscv-isa-manual/releases/download/Priv-v1.12/riscv-privileged-20211203.pdf
Fixing the #RISCV Addresses in TinyEMU Emulator ... To match the Bouffalo Lab #BL808 SoC inside #Ox64
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#change-risc-v-addresses-in-tinyemu
Upcoming #RustLang support in #Zephyr OS
Source: https://github.com/zephyrproject-rtos/zephyr/issues/65837
Let's install TinyEMU #RISCV Emulator ... And tweak it to emulate #Ox64 BL808 SBC
Article: https://lupyuen.codeberg.page/articles/tinyemu2.html#install-tinyemu-emulator
IoT Techie and Educator / Apache NuttX PMC