Bare-metal Rust on the Xilinx Zynq ZC706 devkit
Go to file
2019-10-31 19:21:02 +01:00
.cargo define custom target, use with cargo-xbuild 2019-08-06 22:03:04 +02:00
openocd openocd/zc706: decimate adapter_khz for reliability 2019-10-31 00:28:19 +01:00
src main: rewrap linked_list_allocator 2019-10-31 19:21:02 +01:00
armv7-none-eabihf.json define custom target, use with cargo-xbuild 2019-08-06 22:03:04 +02:00
build.rs PoC: boot, uart output in qemu 2019-05-05 14:56:23 +02:00
Cargo.lock main: rewrap linked_list_allocator 2019-10-31 19:21:02 +01:00
Cargo.toml main: rewrap linked_list_allocator 2019-10-31 19:21:02 +01:00
channel-rust-nightly.toml default.nix: add a static channel-rust-nightly.toml that fits the current rustcSrc 2019-09-26 17:17:31 +02:00
default.nix default.nix: update cargoSha256 2019-10-31 03:19:39 +01:00
link.x link.x: fix __stack_start 2019-09-29 01:38:47 +02:00
qemu.gdb PoC: boot, uart output in qemu 2019-05-05 14:56:23 +02:00
README.md README: fix openocd not finding files 2019-08-20 13:45:50 +08:00
runner.sh PoC: boot, uart output in qemu 2019-05-05 14:56:23 +02:00
shell.nix default.nix: build zc706 2019-09-26 17:54:37 +02:00

Build

nix-shell --command "cargo xbuild --release"

Debug

Using the Xilinx toolchain

Tested with the ZC706 board.

Run the Xilinx Microprocessor Debugger:

/opt/Xilinx/14.7/ISE_DS/EDK/bin/lin64/xmd

Connect to target (given it is connected and you have permissions):

connect arm hw

Leave xmd running.

Start the Xilinx version of the GNU debugger with your latest build:

/opt/Xilinx/14.7/ISE_DS/EDK/gnu/arm/lin/bin/arm-xilinx-linux-gnueabi-gdb zc706

Connect the debugger to xmd over TCP on localhost:

target remote :1234

Proceed using gdb with load, c

Using OpenOCD

Running on the ZC706

nix-shell --command "cargo xbuild --release"
cd openocd
openocd -f zc706.cfg

Running on the Cora Z7-10

nix-shell --command "cargo xbuild --release --no-default-features --features=target_cora_z7_10"
cd openocd
openocd -f cora-z7-10.cfg