summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMegan Wachs <megan@sifive.com>2017-05-17 13:54:02 -0700
committerGitHub <noreply@github.com>2017-05-17 13:54:02 -0700
commit4788b0e137ebeb456ff50f697a43661647fd6498 (patch)
treea412fd558fe4fe8e7129da815c05d3bc3b79c491
parente7bc9996403c9cd375aa20e5fd1b5b933b92c081 (diff)
parent05cb35bb1700ce1b93a8502ce2d7e4ca3f22e3fd (diff)
Merge pull request #59 from sifive/use_precompiled
Update Makefile and README with how to use precompiled binaries.
-rw-r--r--Makefile20
-rw-r--r--README.md47
2 files changed, 50 insertions, 17 deletions
diff --git a/Makefile b/Makefile
index 0e785dd..0e12777 100644
--- a/Makefile
+++ b/Makefile
@@ -103,13 +103,15 @@ tools: riscv-gnu-toolchain openocd
toolchain_builddir := $(builddir)/riscv-gnu-toolchain/riscv64-unknown-elf
toolchain_prefix := $(toolchain_builddir)/prefix
-RISCV_GCC := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-gcc)
-RISCV_GXX := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-g++)
-RISCV_OBJDUMP := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-objdump)
-RISCV_GDB := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-gdb)
-RISCV_AR := $(abspath $(toolchain_prefix)/bin/riscv64-unknown-elf-ar)
+RISCV_PATH ?= $(toolchain_prefix)
-PATH := $(abspath $(toolchain_prefix)/bin):$(PATH)
+RISCV_GCC := $(abspath $(RISCV_PATH)/bin/riscv64-unknown-elf-gcc)
+RISCV_GXX := $(abspath $(RISCV_PATH)/bin/riscv64-unknown-elf-g++)
+RISCV_OBJDUMP := $(abspath $(RISCV_PATH)/bin/riscv64-unknown-elf-objdump)
+RISCV_GDB := $(abspath $(RISCV_PATH)/bin/riscv64-unknown-elf-gdb)
+RISCV_AR := $(abspath $(RISCV_PATH)/bin/riscv64-unknown-elf-ar)
+
+PATH := $(abspath $(RISCV_PATH)/bin):$(PATH)
$(RISCV_GCC) $(RISCV_GXX) $(RISCV_OBJDUMP) $(RISCV_GDB) $(RISCV_AR): $(toolchain_builddir)/install.stamp
touch -c $@
@@ -148,7 +150,9 @@ toolchain-clean:
# initializing the target.
openocd_builddir := $(builddir)/openocd
openocd_prefix := $(openocd_builddir)/prefix
-RISCV_OPENOCD := $(openocd_prefix)/bin/openocd
+
+RISCV_OPENOCD_PATH ?= $(openocd_prefix)
+RISCV_OPENOCD ?= $(RISCV_OPENOCD_PATH)/bin/openocd
.PHONY: openocd
openocd: $(RISCV_OPENOCD)
@@ -215,7 +219,7 @@ GDB_UPLOAD_CMDS += -ex "quit"
upload:
$(RISCV_OPENOCD) $(OPENOCDARGS) & \
- $(RISCV_GDB) $(PROGRAM_DIR)/$(PROGRAM) $(GDB_UPLOAD_ARGS) $(GDB_UPLOAD_CMDS);\
+ $(RISCV_GDB) $(PROGRAM_DIR)/$(PROGRAM) $(GDB_UPLOAD_ARGS) $(GDB_UPLOAD_CMDS) && \
echo "Successfully uploaded '$(PROGRAM)' to $(BOARD)."
#############################################################
diff --git a/README.md b/README.md
index 523e754..ad0cf7a 100644
--- a/README.md
+++ b/README.md
@@ -17,6 +17,15 @@ First, clone this repository:
git clone --recursive https://github.com/sifive/freedom-e-sdk.git
```
+To see Makefile options:
+
+```
+cd freedom-e-sdk
+make help
+```
+
+#### Building Tools from Source ####
+
Ubuntu packages needed:
$ sudo apt-get install autoconf automake libmpc-dev libmpfr-dev libgmp-dev gawk bison flex texinfo libtool libusb-1.0-0-dev make g++ pkg-config libexpat1-dev zlib1g-dev
@@ -25,24 +34,34 @@ Next, build the tools:
```
cd freedom-e-sdk
-make tools
+make tools [BOARD=freedom-e300-hifive1]
```
If your machine has enough resources, you can speed up the build process by adding `-j n` to `make`, where `n` is the number of processors of your build system.
-To compile a bare-metal RISC-V program:
-```
-cd freedom-e-sdk
-make software [PROGRAM=demo_gpio]
-```
+#### Using Pre-Built Binary Tools ####
-To see additional options:
+If you would like to avoid compiling the tools from source, they are
+available as pre-built binaries from
+
+https://sifive.com/products/tools
+
+For OpenOCD and/or RISC-V GNU Toolchain,
+download the .tar.gz for your platform, and unpack it to
+your desired location. Then, use the `RISC_PATH` and `RISCV_OPENOCD_PATH`
+variables when attempting to use the tools:
```
-cd freedom-e-sdk
-make help
+cp openocd-<date>-<platform>.tar.gz /my/desired/location/
+cp riscv64-unknown-elf-gcc-<date>-<platform>.tar.gz /my/desired/location
+cd /my/desired/location
+tar -xvf openocd-<date>-<platform>.tar.gz
+tar -xvf riscv64-unknown-elf-gcc-<date>-<platform>.tar.gz
+export RISCV_OPENOCD_PATH=/my/desired/location/openocd
+export RISCV_PATH=/my/desired/location/riscv64-unknown-elf-gcc-<date>-<version>
```
+
### Updating your SDK ###
If you'd like to update your SDK to the latest version:
@@ -59,6 +78,16 @@ If you would like to recompile the entire toolchain after performing the above:
make uninstall
make tools
```
+### Using the Tools ###
+
+To compile a bare-metal RISC-V program:
+
+```
+cd freedom-e-sdk
+make software [PROGRAM=demo_gpio] [BOARD=freedom-e300-hifive1]
+```
+
+Run `make help` for more commands.
### Benchmarking ###