Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
bootloader:openocd [2021/01/30 15:32]
admin [Programming Adapter]
bootloader:openocd [2021/01/30 17:58] (current)
admin [Acknowledge & Links]
Line 1: Line 1:
-====== OpenOCD with the Raspberry Pi ======+====== OpenOCD Raspberry Pi ======
  
 +{{:bootloader:swd-raspi_programmer_seeeduinoxiao.jpg?400|}}\\
 +
 +To install the [[http://openocd.org/|open On-Chip Debugger]] on a Raspberry Pi following the manual by [[https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi/overview|Lady Ada]].
 +
 +Install:
 +  $ sudo apt-get install git autoconf libtool make pkg-config libusb-1.0-0 libusb-1.0-0-dev htop
 +Git clone:
 +  $ git clone http://openocd.zylin.com/openocd
 +  $ cd openocd/
 +Configure & Install:
 +  $ ./bootstrap 
 +  $ ./configure --enable-sysfsgpio --enable-bcm2835gpio
 +  $ make
 +  $ sudo make install
 +Check  Interfaces:
 +  $ cd /usr/local/share/openocd/scripts/interface/
 +  $ ls
 +New Folder:
 +  $ cd ~
 +  $ mkdir bootloader
 +  $ cd bootloader
 +Download the Bootloader:
 +  $ wget https://github.com/arduino/ArduinoCore-samd/raw/master/bootloaders/zero/samd21_sam_ba.bin
 +  $ wget https://github.com/Seeed-Studio/ArduinoCore-samd/blob/master/bootloaders/XIAOM0/bootloader-XIAO_m0-v3.7.0-33-g90ff611-dirty.bin
 +  $ wget "https://github.com/arduino/ArduinoCore-samd/blob/master/bootloaders/mkrzero/samd21_sam_ba_arduino_mkrzero.bin"
 +Make your Config File:
 +  $ nano openocd.cfg
 +Add:
 +  source [find interface/raspberrypi3-native.cfg]
 +  transport select swd
 +  
 +  set CHIPNAME at91samd21g18
 +  source [find target/at91samdXX.cfg]
 +  
 +  # did not yet manage to make a working setup using srst
 +  #reset_config srst_only
 +  reset_config srst_nogate
 +  
 +  adapter srst delay 100
 +  adapter srst pulse_width 100
 +  
 +  #bcm2835gpio_swd_nums 25 24
 +  #bcm2835gpio_trst_num 7
 +  #bcm2835gpio_srst_num 18
 +  
 +  init
 +  targets
 +  reset halt
 +  
 +  #at91samd chip-erase
 +  #at91samd restore
 +  at91samd bootloader 0
 +  program samd21_sam_ba.bin verify
 +  #program bootloader-XIAO_m0-v3.7.0-33-g90ff611-dirty.bin verify
 +  #flash write_image unlock bootloader-XIAO_m0-v3.7.0-33-g90ff611-dirty.bin
 +  at91samd bootloader 8192
 +  
 +  reset
 +  shutdown
 +... and run it
 +  $ sudo openocd -f openocd.cfg
 +If needed change the Raspberry Pi interface file:
 +  $ sudo nano /usr/local/share/openocd/scripts/interface/raspberrypi2-native.cfg
 +  $ sudo nano /usr/local/share/openocd/scripts/interface/raspberrypi3-native.cfg
 +Change:
 +  # Each of the SWD lines need a gpio number set: swclk swdio
 +  # Header pin numbers: 23 22
 +  bcm2835gpio_swd_nums 25 24
 +
 +  # If you define trst or srst, use appropriate reset_config
 +  # Header pin numbers: TRST - 26, SRST - 18
 +  bcm2835gpio_trst_num 7
 +  bcm2835gpio_srst_num 18
  
 ---- ----
-==== HEX files =====+==== Bootloader =====
  
-- [[https://github.com/arduino/ArduinoCore-samd|Arduino Code]]\\+- [[https://github.com/arduino/ArduinoCore-samd|Arduino]]\\ 
 +- [[https://github.com/arduino/ArduinoCore-samd/raw/master/bootloaders/zero/samd21_sam_ba.bin|SAMD21 M0-Mini]]\\ 
 +- [[https://github.com/Seeed-Studio/ArduinoCore-samd/blob/master/bootloaders/XIAOM0/bootloader-XIAO_m0-v3.7.0-33-g90ff611-dirty.bin|Seeeduino XIAO]]\\
  
 ---- ----
 ==== Pinout ==== ==== Pinout ====
 +
 +  SWD         Raspberry Pi
 +  
 +   Reset       GPIO 18
 +   SWDIO       GPIO 24
 +   SWCLK       GPIO 25
  
 **Arduino MKR ZERO**\\ **Arduino MKR ZERO**\\
Line 25: Line 106:
 **Seeeduino XIAO Adapter**\\ **Seeeduino XIAO Adapter**\\
 {{:bootloader:seeduinoxiao_swdadapter.jpg?200|}}\\ {{:bootloader:seeduinoxiao_swdadapter.jpg?200|}}\\
-3.3V are take from the regular pins.\\+3.3V is take from the regular pins.\\
  
 **SAMD21 M0-Mini Adapter**\\ **SAMD21 M0-Mini Adapter**\\
 {{:bootloader:samd21_m0-mini_swdadapter.jpg?200|}}\\ {{:bootloader:samd21_m0-mini_swdadapter.jpg?200|}}\\
 Power and ground is  connected over the regular pins.\\ Power and ground is  connected over the regular pins.\\
 +
 +----
 +==== Acknowledge & Links ====
 +
 +[[http://openocd.org/|open OCD]]\\
 +[[http://openocd.org/doc-release/pdf/openocd.pdf|OpenOCD user Guide]]\\
 +[[https://learn.adafruit.com/programming-microcontrollers-using-openocd-on-raspberry-pi/overview|Programming Microcontrollers using OpenOCD on a Raspberry Pi by Lady Ada]]\\
 +[[https://iosoft.blog/2019/01/28/raspberry-pi-openocd/|Raspberry Pi and OpenOCD by iosoft.blog]]\\
 +
  
 ---- ----