Bare-metal Rust on Zynq-7000
pca006132
0efc7a616f
Config write and config remove are now implemented. Config keys are now treated case insensitively, which is consistence to the filesystem behavior. BOOT.BIN can be replaced by setting the config key "boot". |
||
---|---|---|
.cargo | ||
experiments | ||
libasync | ||
libboard_zynq | ||
libconfig | ||
libcoreio | ||
libcortex_a9 | ||
libregister | ||
libsupport_zynq | ||
nix | ||
openocd | ||
szl | ||
.gitignore | ||
armv7-none-eabihf.json | ||
Cargo.lock | ||
Cargo.toml | ||
default.nix | ||
README.md | ||
remote_run.sh | ||
shell.nix | ||
xbuild_writable_lockfile.diff |
Bare-metal Rust on Zynq-7000
Supported features:
- Clocking setup
- UART
- SDRAM setup
- Ethernet with smoltcp and async-await on TCP sockets
- SD card
- PL programming and startup
- Pure Rust SZL first-stage bootloader, with SD boot and netboot
- Control of second CPU core and message passing, with async-await support
Supported boards:
- ZC706
- Red Pitaya (note: SDRAM issues, worked around using
ps7_init
) - Cora Z7-10 (note: SDRAM issues)
Build
nix-shell --command "cargo xbuild --release -p experiments"
Currently the ELF output is placed at target/armv7-none-eabihf/release/experiments
Debug
Running on the ZC706
nix-shell --command "cargo xbuild --release -p experiments"
cd openocd
openocd -f zc706.cfg
Running on the Cora Z7-10
nix-shell --command "cd experiments && cargo xbuild --release --no-default-features --features=target_cora_z7_10"
cd openocd
openocd -f cora-z7-10.cfg
Loading a bitstream into volatile memory
openocd -f zc706.cfg -c "pld load 0 blinker_migen.bit; exit"