Sebastien Bourdeauducq
21c0c5cbc8
What the simplified ps7_init does can now be reproduced by the DDRC driver.
On the other hand, we are still experiencing crazy Zynq instability issues, so keep the original ps7_init around for debugging.
This reverts commit
|
||
---|---|---|
.cargo | ||
experiments | ||
libasync | ||
libboard_zynq | ||
libcortex_a9 | ||
libregister | ||
libsupport_zynq | ||
openocd | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
README.md | ||
armv7-none-eabihf.json | ||
build.sh | ||
channel-rust-nightly.toml | ||
default.nix | ||
qemu.gdb | ||
remote_run.sh | ||
runner.sh | ||
shell.nix | ||
tmux.sh |
README.md
Build
nix-shell --command "cargo xbuild --release"
Currently the ELF output is placed at target/armv7-none-eabihf/release/experiments
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 "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"
Development Process
Clone this repo onto your development/build machine and the raspberry pi that controls the Xilinx 7000 board
On the dev machine, the below script builds zc706 and secure copies it to the target pi (in your pi $HOME directory)
cd ~/zc706
./build.sh $your_user/ssh_id
On the pi, we need an information rich environment that includes a relatively reliable gdb
experience (that includes ctrl-p
and ctrl-n
command history that persists across cgdb
executions), run:
ssh pi4
cd zc706
./tmux.sh
Time to run your code with:
zynq-connect
zynq-restart
c
or, for a more succinct experience, (identical to above)
dc
dr
c
After every build on your dev machine, simply run:
dr
c
Sometimes you might need to type load
after dr
.