Skip to content

Instantly share code, notes, and snippets.

@lupyuen
Created May 4, 2024 04:56
Show Gist options
  • Save lupyuen/749f8235603781c29a351c066cd2fcf9 to your computer and use it in GitHub Desktop.
Save lupyuen/749f8235603781c29a351c066cd2fcf9 to your computer and use it in GitHub Desktop.
# Luppy at Luppys-MBP in /tmp [12:47:43]
→ mkdir qemu-s-mode
# Luppy at Luppys-MBP in /tmp [12:47:53]
→ cd qemu-s-mode
# Luppy at Luppys-MBP in /tmp/qemu-s-mode [12:47:56]
→ ls
# Luppy at Luppys-MBP in /tmp/qemu-s-mode [12:47:57]
→ git clone https://github.com/inochisa/nuttx --branch qemu-s-mode
Cloning into 'nuttx'...
remote: Enumerating objects: 757215, done.
remote: Counting objects: 100% (196/196), done.
remote: Compressing objects: 100% (128/128), done.
remote: Total 757215 (delta 80), reused 146 (delta 62), pack-reused 757019
Receiving objects: 100% (757215/757215), 249.22 MiB | 4.93 MiB/s, done.
Resolving deltas: 100% (588935/588935), done.
Checking connectivity... done.
Checking out files: 100% (22032/22032), done.
# Luppy at Luppys-MBP in /tmp/qemu-s-mode [12:49:58]
→ git clone https://github.com/apache/nuttx-apps apps
Cloning into 'apps'...
remote: Enumerating objects: 83603, done.
remote: Counting objects: 100% (422/422), done.
remote: Compressing objects: 100% (269/269), done.
remote: Total 83603 (delta 184), reused 339 (delta 147), pack-reused 83181
Receiving objects: 100% (83603/83603), 21.47 MiB | 4.55 MiB/s, done.
Resolving deltas: 100% (67756/67756), done.
Checking connectivity... done.
# Luppy at Luppys-MBP in /tmp/qemu-s-mode [12:50:20]
→ cd nuttx
# Luppy at Luppys-MBP in /tmp/qemu-s-mode/nuttx on git:qemu-s-mode ● [12:50:39]
→ git status && hash1=`git rev-parse HEAD`
pushd ../apps
git status && hash2=`git rev-parse HEAD`
popd
echo NuttX Source: https://github.com/apache/nuttx/tree/$hash1 >nuttx.hash
echo NuttX Apps: https://github.com/apache/nuttx-apps/tree/$hash2 >>nuttx.hash
cat nuttx.hash
On branch qemu-s-mode
Your branch is up-to-date with 'origin/qemu-s-mode'.
nothing to commit, working tree clean
/tmp/qemu-s-mode/apps /tmp/qemu-s-mode/nuttx /tmp/qemu-s-mode /tmp ~
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
/tmp/qemu-s-mode/nuttx /tmp/qemu-s-mode /tmp ~
NuttX Source: https://github.com/apache/nuttx/tree/02c1a95c96069ea59401255169961c082471f826
NuttX Apps: https://github.com/apache/nuttx-apps/tree/943aa68069142545db7c2342ff608c9e6a0670c9
# Luppy at Luppys-MBP in /tmp/qemu-s-mode/nuttx on git:qemu-s-mode ● [12:50:43]
→ ./tools/configure.sh rv-virt:knsh64
Copy files
Select CONFIG_HOST_MACOS=y
Refreshing...
CP: arch/dummy/Kconfig to /private/tmp/qemu-s-mode/nuttx/arch/dummy/dummy_kconfig
CP: boards/dummy/Kconfig to /private/tmp/qemu-s-mode/nuttx/boards/dummy/dummy_kconfig
LN: platform/board to /private/tmp/qemu-s-mode/apps/platform/dummy
LN: include/arch to arch/risc-v/include
LN: include/arch/board to /private/tmp/qemu-s-mode/nuttx/boards/risc-v/qemu-rv/rv-virt/include
LN: drivers/platform to /private/tmp/qemu-s-mode/nuttx/drivers/dummy
LN: include/arch/chip to /private/tmp/qemu-s-mode/nuttx/arch/risc-v/include/qemu-rv
LN: arch/risc-v/src/chip to /private/tmp/qemu-s-mode/nuttx/arch/risc-v/src/qemu-rv
LN: arch/risc-v/src/board to /private/tmp/qemu-s-mode/nuttx/boards/risc-v/qemu-rv/rv-virt/src
mkkconfig in /private/tmp/qemu-s-mode/apps/audioutils
mkkconfig in /private/tmp/qemu-s-mode/apps/benchmarks
mkkconfig in /private/tmp/qemu-s-mode/apps/boot
mkkconfig in /private/tmp/qemu-s-mode/apps/canutils
mkkconfig in /private/tmp/qemu-s-mode/apps/crypto
mkkconfig in /private/tmp/qemu-s-mode/apps/database
mkkconfig in /private/tmp/qemu-s-mode/apps/examples/mcuboot
mkkconfig in /private/tmp/qemu-s-mode/apps/examples
mkkconfig in /private/tmp/qemu-s-mode/apps/fsutils
mkkconfig in /private/tmp/qemu-s-mode/apps/games
mkkconfig in /private/tmp/qemu-s-mode/apps/graphics
mkkconfig in /private/tmp/qemu-s-mode/apps/industry
mkkconfig in /private/tmp/qemu-s-mode/apps/inertial
mkkconfig in /private/tmp/qemu-s-mode/apps/interpreters/luamodules
mkkconfig in /private/tmp/qemu-s-mode/apps/interpreters
mkkconfig in /private/tmp/qemu-s-mode/apps/logging
mkkconfig in /private/tmp/qemu-s-mode/apps/lte
mkkconfig in /private/tmp/qemu-s-mode/apps/math
mkkconfig in /private/tmp/qemu-s-mode/apps/mlearning
mkkconfig in /private/tmp/qemu-s-mode/apps/netutils
mkkconfig in /private/tmp/qemu-s-mode/apps/sdr
mkkconfig in /private/tmp/qemu-s-mode/apps/system
mkkconfig in /private/tmp/qemu-s-mode/apps/testing
mkkconfig in /private/tmp/qemu-s-mode/apps/wireless/bluetooth
mkkconfig in /private/tmp/qemu-s-mode/apps/wireless/ieee802154
mkkconfig in /private/tmp/qemu-s-mode/apps/wireless
mkkconfig in /private/tmp/qemu-s-mode/apps
#
# configuration written to .config
#
# Luppy at Luppys-MBP in /tmp/qemu-s-mode/nuttx on git:qemu-s-mode ● [12:51:16]
→ make menuconfig
CP: arch/dummy/Kconfig to /private/tmp/qemu-s-mode/nuttx/arch/dummy/dummy_kconfig
CP: boards/dummy/Kconfig to /private/tmp/qemu-s-mode/nuttx/boards/dummy/dummy_kconfig
LN: platform/board to /private/tmp/qemu-s-mode/apps/platform/dummy
LN: include/arch to arch/risc-v/include
LN: include/arch/board to /private/tmp/qemu-s-mode/nuttx/boards/risc-v/qemu-rv/rv-virt/include
LN: drivers/platform to /private/tmp/qemu-s-mode/nuttx/drivers/dummy
LN: include/arch/chip to /private/tmp/qemu-s-mode/nuttx/arch/risc-v/include/qemu-rv
LN: arch/risc-v/src/chip to /private/tmp/qemu-s-mode/nuttx/arch/risc-v/src/qemu-rv
LN: arch/risc-v/src/board to /private/tmp/qemu-s-mode/nuttx/boards/risc-v/qemu-rv/rv-virt/src
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
# Luppy at Luppys-MBP in /tmp/qemu-s-mode/nuttx on git:qemu-s-mode ● [12:52:02]
→ grep SSTC .config
# Luppy at Luppys-MBP in /tmp/qemu-s-mode/nuttx on git:qemu-s-mode ● [12:52:09]
→ make
Create version.h
LN: platform/board to /private/tmp/qemu-s-mode/apps/platform/dummy
Register: hello
Register: init
Register: sh
Register: getprime
Register: ostest
./chip/qemu_rv_start.c:54:4: error: #error "Target requires kernel in S-mode, enable CONFIG_ARCH_USE_S_MODE"
54 | # error "Target requires kernel in S-mode, enable CONFIG_ARCH_USE_S_MODE"
| ^~~~~
ERROR: riscv64-unknown-elf-gcc failed: 1
command: riscv64-unknown-elf-gcc -MT ./qemu_rv_start.o -M '-fno-common' '-Wall' '-Wstrict-prototypes' '-Wshadow' '-Wundef' '-Wno-attributes' '-Wno-unknown-pragmas' '-Wno-psabi' '-Os' '-fno-strict-aliasing' '-fomit-frame-pointer' '-ffunction-sections' '-fdata-sections' '-nostdlib' '-g' '-mcmodel=medany' '-march=rv64imafdc' '-mabi=lp64d' '-isystem' '/private/tmp/qemu-s-mode/nuttx/include' '-D__NuttX__' '-D__KERNEL__' '-pipe' '-I' '/private/tmp/qemu-s-mode/nuttx/arch/risc-v/src/chip' '-I' '/private/tmp/qemu-s-mode/nuttx/arch/risc-v/src/common' '-I' '/private/tmp/qemu-s-mode/nuttx/sched' ./chip/qemu_rv_start.c
make[2]: *** [/private/tmp/qemu-s-mode/nuttx/tools/Config.mk:230: qemu_rv_start.ddc] Error 1
make[1]: *** [Makefile:233: .depend] Error 2
make: *** [tools/Unix.mk:620: pass2dep] Error 2
# Luppy at Luppys-MBP in /tmp/qemu-s-mode/nuttx on git:qemu-s-mode ● [12:55:08]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment