may 2024. # tooling, nix-shell # for libopencm3 git submodule update --init --recursive ./build.sh # use four shells, # for serial rlwrap -a picocom -b 115200 /dev/ttyUSB0 # for st-link cd projects minimal openocd -f ../../openocd.cfg # for st-link comms rlwrap nc localhost 4444 # write mcu firmware > reset halt ; flash write_image erase unlock /home/me/devel/stm32f4/projects/minimal/main.elf ; reset run # fpga firmware > reset halt; flash write_image erase unlock /home/me/devel/ice40-fpga/projects/minimal/build/main.bin.hdr 0x08060000 ; reset run # to make cd projects/minimal make # with new line. rlwrap -a picocom -q -b 115200 --imap crcrlf /dev/ttyUSB0 OLD. quick start, nix-shell ~/devel/nixos-config/examples/arm.nix -I nixpkgs=/home/me/devel/nixpkgs02/ # build libopencm3. needed to generate headers git clone git@github.com:libopencm3/libopencm3 nix-shell arm.nix etc. cd libopencm3 make # or git submodules init for libopencm3 etc. git submodule update --init --recursive cd libopencm3 make ccd .. # serial connection rlwrap -a picocom -q -b 115200 /dev/ttyUSB0 or rlwrap -a picocom -q -b 115200 /dev/ttyUSB0 | tee out.log etc (ctrl-c ctrl-c to exit) or screen /dev/ttyUSB0 115200 (ctrl-a ctrk-k to exit) or picocom --baud 115200 /dev/ttyUSB0 (ctrl-a ctrk-x to exit) etc. cd projects/xxx make clobber make # stlink # actually, better in separate windows, avoids accidently swapping wrong context openocd -f openocd.cfg rlwrap nc localhost 4444 > reset > halt > reset halt ; flash write_image erase unlock ./projects/smu07/main.elf; reset run > reset halt ; flash write_image erase unlock ./main.elf; sleep 1000; reset run etc