nuttx/boards/risc-v/k210/maix-bit
Masayuki Ishikawa 81f1133174 ELF64 support (#220)
* include: Introduce elf64.h and elf.h

    Added elf64.h for 64bit ELF support and moved common definitions
    from elf32.h to elf.h. Also introduced Elf_xxx to be used in
    common libraries such as binfmt.

  * binfmt, include, modlib, module: Add support for ELF64

    Elf_xxx must be used instead of Elf32_xxx to support ELF64.
    To use ELF64, CONFIG_ELF_64BIT must be enabled.

  * binfmt, modlib: Add support for relocate address

  * arch: risc-v: Add include/elf.h

  * libs: machine: Add risc-v related files.

    NOTE: Currently only supports ELF64

  * boards: maix-bit: Add elf and posix_spawn configurations

  * boards: maix-bit: Add support for module configuration
2020-02-07 17:10:23 -06:00
..
configs ELF64 support (#220) 2020-02-07 17:10:23 -06:00
include Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
scripts ELF64 support (#220) 2020-02-07 17:10:23 -06:00
src Squashed commit of the following: 2019-12-31 09:06:20 -06:00
Kconfig Squashed commit of the following: 2019-12-31 09:06:20 -06:00
README-qemu.txt Feature k210 smp (#71) 2020-01-10 08:04:41 -06:00
README.txt Feature k210 smp (#71) 2020-01-10 08:04:41 -06:00

1. Download and install toolchain and openocd-k210

  $ curl https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.3.0-2019.08.0-x86_64-linux-ubuntu14.tar.gz

2. Build openocd-k210

  $ git clone https://github.com/kendryte/openocd-kendryte
  $ cd openocd-kendryte
  $ ./bootstrap & ./configure & make

3. Configure and build NuttX

  $ mkdir ./nuttx; cd ./nuttx
  $ git clone https://bitbucket.org/nuttx/nuttx.git
  $ git clone https://bitbucket.org/nuttx/apps.git
  $ cd nuttx
  $ make distclean
  $ ./tools/configure.sh maix-bit:nsh
  $ make V=1

4. Download and run the nuttx from SRAM (not SPI-Flash)

  $ picocom -b 115200 /dev/ttyUSB0
  $ sudo ./src/openocd -s ./tcl -f ./tcl/kendryte.cfg -m 0
  $ riscv64-unknown-elf-gdb ./nuttx
  (gdb) target extended-remote :3333
  (gdb) load nuttx
  (gdb) c

5. TODO

  PLL setting (currently CPU clock freq is assumed to be 416MHz)
  Boot from SPI-Flash
  Support peripherals such as GPIO/SPI/I2C/...
  Support FPU
  Support RISC-V User mode