Skip to content

add pru-programmer and preliminary gcc-support

Compare
Choose a tag to compare
@orgua orgua released this 04 Oct 12:48
· 767 commits to main since this release
b5a1036

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