Minimalist bare metal Rust firmware for Red Pitaya
Go to file
2020-10-15 15:39:50 +08:00
src fix logging 2020-10-15 15:39:50 +08:00
.gitignore initial commit 2020-10-14 15:56:10 +08:00
default.nix infrastructure fixes 2020-10-14 21:34:49 +08:00
LICENSE initial commit 2020-10-14 15:56:10 +08:00
local_run.sh infrastructure fixes 2020-10-14 21:34:49 +08:00
README.md initial commit 2020-10-14 15:56:10 +08:00
remote_run.sh infrastructure fixes 2020-10-14 21:34:49 +08:00
shell.nix initial commit 2020-10-14 15:56:10 +08:00
zynq-rs.nix initial commit 2020-10-14 15:56:10 +08:00

Rust Pitaya

Minimalist bare metal Rust firmware for Red Pitaya.

Development instructions

Configure Nix channels:

nix-channel --add https://nixbld.m-labs.hk/channel/custom/artiq/fast-beta/artiq-fast
nix-channel --update

Notes:

  • Rust Pitaya does not depend on ARTIQ but uses some packages available in the ARTIQ channel.
  • If you are using Nix channels the first time, you need to be aware of this bug: https://github.com/NixOS/nix/issues/3831.

Pure build with Nix and execution on a remote JTAG server:

nix-build -A rust-pitaya-jtag
./remote_run.sh

Impure incremental build and execution on a remote JTAG server:

nix-shell
cd src
gateware/rust-pitaya.py -g ../build/gateware  # build gateware
make                                          # build firmware
cd ..
./remote_run.sh -i

Notes:

  • This is developed with Nixpkgs 20.09, and the nixbld.m-labs.hk binary substituter can also be used here (see the ARTIQ manual for the public key and instructions).
  • The impure build process is also compatible with non-Nix systems.
  • If the board is connected to the local machine, use the local_run.sh script.

License

Copyright (C) 2019-2020 M-Labs Limited.

Rust Pitaya is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Rust Pitaya is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Rust Pitaya. If not, see http://www.gnu.org/licenses/.