Let's find out how Apache #NuttX RTOS boots on #PinePhone @PINE64 ... Visualised with Unicorn Emulator and #RustLang
#UnicornEngine is based on QEMU Emulator ... And lets us intercept the emulated code with #RustLang
Article: https://lupyuen.github.io/articles/unicorn2?2#intercept-code-execution-in-unicorn
To lookup the DWARF Debug Symbols in an ELF File ... Call the #RustLang Crates "addr2line" and "gimli"
Article: https://lupyuen.github.io/articles/unicorn2?4#dwarf-debug-symbols
Let's generate a clickable Call Graph for Apache #NuttX RTOS ... With a text-based Mermaid Flowchart
Article: https://lupyuen.github.io/articles/unicorn2?5#clickable-mermaid-flowchart
Adding a Hook Function to Unicorn Emulator ... To print the Mermaid Flowchart and Call Graph
Article: https://lupyuen.github.io/articles/unicorn2?6#generate-call-graph
Here's how Apache #NuttX RTOS boots on #PinePhone ... Thanks to our Call Graph
Article: https://lupyuen.github.io/articles/unicorn2?7#pinephone-boots-nuttx
Here are the System Drivers started by Apache #NuttX RTOS when it boots
Article: https://lupyuen.github.io/articles/unicorn2?8#pinephone-continues-booting-nuttx
Troubleshooting an Arm64 Memory Mgmt Fault in Apache #NuttX RTOS ... Here's what the Call Graph tells us
Article: https://lupyuen.github.io/articles/unicorn2?9#arm64-memory-management-fault
Automated Daily Build and Test of #PinePhone on Apache #NuttX RTOS ... How we'll do it with Unicorn Emulator
Article: https://lupyuen.github.io/articles/unicorn2?10#automated-daily-build-and-test
Here's how Apache #NuttX RTOS boots on #PinePhone ... Visualised as a Call Graph with Unicorn Emulator and #RustLang
Converting a Code Address to the Function Name? Use the DWARF Debug Symbols in the ELF File
Article: https://lupyuen.github.io/articles/unicorn2?3#map-address-to-function