Scheme Interpreter crashes on NuttX

This commit is contained in:
Lee Lup Yuen 2023-10-13 10:07:14 +08:00
parent 55f1702e22
commit 9062b824de

View file

@ -7957,7 +7957,39 @@ Let's run the Scheme Interpreter on NuttX QEMU, for easier debugging...
https://github.com/KenDickey/nuttx-umb-scheme
(Remember to run `make menuconfig > Save Config` after setting CONFIG_LIBM, CONFIG_ARCH_FLOAT_H and CONFIG_ARCH_SETJMP_H)
Here are the steps...
```bash
pushd ../apps/interpreters
git submodule add https://github.com/KenDickey/nuttx-umb-scheme umb-scheme
popd
make distclean
tools/configure.sh rv-virt:knsh64
## Edit .config and append:
## CONFIG_LIBM=y
## CONFIG_ARCH_FLOAT_H=y
## CONFIG_ARCH_SETJMP_H=y
make menuconfig
## Save Config and Exit
make
## Remember to build the Apps Filesystem
pushd ../apps/interpreters/umb-scheme
cp prelude.scheme ../../bin
popd
qemu-system-riscv64 \
-semihosting \
-M virt,aclint=on \
-cpu rv64 \
-smp 8 \
-bios none \
-kernel nuttx \
-nographic
```
Here's the output...
@ -8145,6 +8177,66 @@ Here the Crash Dump:
[ 9.783000] dump_task: 3 3 100 RR Task --- Running 0000000000000000 0xc0202030 2000 2000 100.0%! scheme <01>F<>0<17> r<><72><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64><EFBFBD>&<EFBFBD><EFBFBD><EFBFBD>P<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><1E><><EFBFBD>\<5C><><EFBFBD><1E><><EFBFBD><EFBFBD><EFBFBD>
```
# Analyse the Stack Dump
TODO: What about other Code Addresses in the Stack Dump?
```text
→ grep 'c00[0-1]....' --only-matching /tmp/a.log
c000f366
c000004a
c000f366
c0003af8
c001ea34
c000cbda
c000c00e
c001ea34
c000cbda
c001ea34
c000cdc8
c001ea34
c000cdc8
c001ea34
c000c6e0
c000cdc8
c000cf0a
c000cf0a
c000cdc8
c000cf0a
c000cf0a
c000cf0a
c00025fa
c0008112
c0002558
c00028c4
c00023f6
c001d630
c001d640
c001d650
c001d660
c001d670
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d420
c001d720
c001d420
c001d420
c001f490
c000fc58
c001d420
```
# TODO
TODO: Port [__up_mtimer_initialize__](https://github.com/lupyuen2/wip-pinephone-nuttx/blob/star64a/arch/risc-v/src/qemu-rv/qemu_rv_timerisr.c#L151-L210) to Star64