|
| 1 | +pushd $FW_TARGETDIR > /dev/null |
| 2 | + |
| 3 | +ZEPHYR_BUILD_DIR="$FW_TARGETDIR/build/zephyr" |
| 4 | + |
| 5 | +# Host platform (=native_posix) is special, as resetting is stopping and re-executing the binary |
| 6 | +if [ "$PLATFORM" = "host" ]; then |
| 7 | + |
| 8 | + # TODO: stop the previous process |
| 9 | + $ZEPHYR_BUILD_DIR/zephyr.exe |
| 10 | + |
| 11 | +else |
| 12 | + |
| 13 | + # These boards need special openocd rules |
| 14 | + RESET_OPENOCD=false |
| 15 | + if [ "$PLATFORM" = "olimex-stm32-e407" ]; then |
| 16 | + |
| 17 | + RESET_OPENOCD=true |
| 18 | + OPENOCD_TARGET="stm32f4x.cfg" |
| 19 | + if lsusb -d 15BA:002a; then |
| 20 | + OPENOCD_PROGRAMMER=interface/ftdi/olimex-arm-usb-tiny-h.cfg |
| 21 | + elif lsusb -d 15BA:0003;then |
| 22 | + OPENOCD_PROGRAMMER=interface/ftdi/olimex-arm-usb-ocd.cfg |
| 23 | + elif lsusb -d 15BA:002b;then |
| 24 | + OPENOCD_PROGRAMMER=interface/ftdi/olimex-arm-usb-ocd-h.cfg |
| 25 | + else |
| 26 | + echo "Error: Unsuported OpenOCD USB programmer" |
| 27 | + exit 1 |
| 28 | + fi |
| 29 | + |
| 30 | + elif [ "$PLATFORM" = "nucleo_f446re" ]; then |
| 31 | + |
| 32 | + RESET_OPENOCD=true |
| 33 | + OPENOCD_TARGET="stm32f4x.cfg" |
| 34 | + |
| 35 | + if lsusb -d 0483:374b;then |
| 36 | + OPENOCD_PROGRAMMER=interface/stlink-v2-1.cfg |
| 37 | + else |
| 38 | + echo "Error: Unsupported OpenOCD programmer" |
| 39 | + exit 1 |
| 40 | + fi |
| 41 | + |
| 42 | + elif [ "$PLATFORM" = "nucleo_h743zi" ]; then |
| 43 | + |
| 44 | + RESET_OPENOCD=true |
| 45 | + OPENOCD_TARGET="stm32h7x.cfg" |
| 46 | + |
| 47 | + if lsusb -d 0483:374e;then |
| 48 | + OPENOCD_PROGRAMMER=interface/stlink.cfg |
| 49 | + else |
| 50 | + echo "Error: Unsupported OpenOCD programmer" |
| 51 | + exit 1 |
| 52 | + fi |
| 53 | + |
| 54 | + fi |
| 55 | + |
| 56 | + |
| 57 | + |
| 58 | + if [ "$RESET_OPENOCD" = true ]; then |
| 59 | + |
| 60 | + openocd -f $OPENOCD_PROGRAMMER -f target/$OPENOCD_TARGET \ |
| 61 | + -c init \ |
| 62 | + -c "reset halt" \ |
| 63 | + -c "reset run; exit" |
| 64 | + |
| 65 | + else |
| 66 | + |
| 67 | + echo "Error: Resetting device is only supported with OpenOCD" |
| 68 | + exit 1 |
| 69 | + |
| 70 | + fi |
| 71 | + |
| 72 | +fi |
| 73 | + |
| 74 | +popd > /dev/null |
0 commit comments