diff --git a/deploy.py b/deploy.py index dfb8b87..10022f0 100755 --- a/deploy.py +++ b/deploy.py @@ -270,7 +270,7 @@ class OpenSKInstaller: jlink_speed=1200, openocd=self.args.programmer == "openocd", openocd_board=board.openocd_board, - openocd_cmd="openocd", + openocd_cmd=self.args.openocd_cmd, openocd_commands=copy.copy(board.openocd_commands), openocd_options=copy.copy(board.openocd_options), jtag=False, @@ -1005,6 +1005,14 @@ if __name__ == "__main__": help=("Sets the method to be used to flash Tock OS or the application " "on the target board."), ) + main_parser.add_argument( + "--openocd_cmd", + dest="openocd_cmd", + metavar="CMD", + default="openocd", + help=("Specifies a custom command to use when calling openocd. Can be " + "used to pass arguments i.e. 'openocd -s /tmp/openocd_scripts'."), + ) main_parser.add_argument( "--no-tockos", diff --git a/docs/boards/nrf52840_dongle.md b/docs/boards/nrf52840_dongle.md index 38b9796..737e081 100644 --- a/docs/boards/nrf52840_dongle.md +++ b/docs/boards/nrf52840_dongle.md @@ -59,14 +59,48 @@ Follow these steps: ![Nordic dongle retainer clip](../img/dongle_clip.jpg) -1. Depending on the programmer you're using, you may have to adapt the next - command line. Run our script for compiling/flashing Tock OS on your device: +#### JLink +Run our script for compiling/flashing Tock OS on your device: + +```shell +$ ./deploy.py --board=nrf52840_dongle --programmer=jlink +``` + +#### OpenOCD + +1. Create your openocd config, named `nordic_nrf52840_dongle.cfg` in the + appropriate location: ```shell - $ ./deploy.py --board=nrf52840_dongle_opensk --programmer=jlink + mkdir -p ${HOME}/.openocd/board + touch ${HOME}/.openocd/board/nordic_nrf52840_dongle.cfg + ``` + + Paste the following st-link example and edit the specific setup to your needs: + ``` + # Specific setup + source [find interface/stlink-dap.cfg] + transport select dapdirect_swd + + # The rest should be kept the same + set CHIPNAME nrf52840 + source [find target/nrf52.cfg] ``` -1. Remove the programming cable and the USB-A extension cable. +1. Test your config: + + ```shell + openocd -f board/nordic_nrf52840_dongle.cfg + ``` + +1. Run the deploy script with the appropriate options, i.e.: + + ```shell + ./deploy.py --board=nrf52840_dongle --opensk --programmer=openocd + ``` + + +Finally, remove the programming cable and the USB-A extension cable. ### Buttons and LEDs