add pru-programmer and preliminary gcc-support
Changes:
- merge programmer-branch (thanks to @geissdoerfer)
- currently alpha, as shepherd is not able to switch between pru-firmwares
- add gcc-support (thanks to previous work of @fedy0)
- make switches to gcc as soon as PRU_GCC is defined
- currently beta! as pru0-firmware does not fit into IMEM
- shepherd_herd
- fix and modernize shepherd-herd
- add testbench
- refactor code
- extend functionality: distribute files, start / stop / check measurements
- change interface for CLI
- enable_io (was set_target_io_lvl_conv or similar)
- io_target and pwr_target (was io_target_a and b, or io_sel_target_a, same for pwr
- sheep detects missing kernel-module and missing sudo and fails early
- added doc for herd
- added doc for shepherd-v2 improvements
- ansible
- refactor role "dev-host" into sheep
- add installer for GCC-Toolchain
- remove duplicate code (dev_rebuild can now be done by sheep-role)
- modernize some loops
- fix reboot-hang
- github action
- now builds pru-firmwares (including programmer)
- now also upload shepherd_herd to pypi
tested on:
- shepherd-sheep testbench
- shepherd-herd testbench
- ansible install on 11 nodes
trouble:
- PRUs seem more unstable in the big herd of 11 (sync is oscillating, state is rarely stuck in reset)
- switching to programmer-firmware is not implemented yet
compile-sizes (CGT vs GCC)
- pru0-fw 85020 byte, 91660 byte (IMEM overflow)
- pru1-fw 63820 byte, 42644 byte
- prog-swd 80108 byte, 68176 byte
- prog-sbw 83620 byte, 72900 byte