Please forgive the noob question.
I am porting a Scheme interpreter to riscv64 NuttX as
apps/interpreters/umb-scheme/ but the binary fails to link in libm
functions.
I could use some help in this.
Specifically, building on Raspberry Pi 4 Raspian 64 bit:
Raspian:RasPi4:~/RISCV/NuttX/apps/bin
On 2023-09-17 12:47, Petro Karashchenko wrote:
Hi,
What kind of RISC-V toolchain are you using?
Raspian:RasPi4:~/RISCV/NuttX/apps >>> apt search riscv64-unknown
Sorting... Done
Full Text Search... Done
binutils-riscv64-unknown-elf/oldstable,now 2.32.2020.04+dfsg-2 arm64
[installed]
GNU ass
As I am building on aarch64/arm64 Linux, someone might have a better
time with x86.
I made a git repo:
https://github.com/KenDickey/nuttx-umb-scheme
This goes into apps/interpreters.
The code has been reliably ported a lot and should run on most targets
with command line console.
Sample
Ah. I tried using `make menuconfig` to build the Basic interpreter.
Raspian:RasPi4:~/RISCV/NuttX/apps >>> riscv64-linux-gnu-gcc-nm -u
bin/bas
U atan
U ceil
U cos
U exp
U floor
U fmod
On 2023-09-18 12:05, Alan C. Assis wrote:
Hi Ken,
Are you enabling the same symbols as in the sim bas or bastest ?
I just used menuconfig interpreters bas selection
Raspian:RasPi4:~/RISCV/NuttX/nuttx >>> grep CONFIG_INTERPRETER_BAS
.config
CONFIG_INTERPRETER_BAS_VERSION="2.4"
CONFIG_INTERPR
On 2023-09-18 13:08, Alan C. Assis wrote:
The thumb rule when starting with NuttX is using an existent
configuration as base.
OK.
Unfortunately the menuconfig is not prepared (better say it cannot) to
fix all dependencies for an driver or application (because of the
flexibility to use things
On 2023-09-18 15:10, Alan C. Assis wrote:
..
Did you enable CONFIG_LIBM in the menuconfig?
Normally it is enough if your arch correctly configured.
Yep. Enabled.
I added
LDLIBS += $(APPDIR)/../nuttx/libs/libm/libm.a
to the Makefile and the Scheme interpreter works -- some console
wackyne
Lup,
Another great article!
One suggestion.
In section 10 "Swap the SATP Register"
You mention:
"Huh? Our Applications can meddle with the I/O Memory?
Nope they can’t, because the “U” User Permission is denied. Therefore
we’re all safe and well protected!
"
I may have missed the referenc