sonde-ulink2-openocd_entete.jpg

Contrairement à ce qu'on peut lire sur quelques forums sur Internet, les sondes ULink2 sont compatibles avec OpenOCD. La seule chose à faire, c'est de changer leur mode de boot.

Les sondes ULink2 ont deux modes de démarrage : le mode ULink et le mode CMSIS-DAP. Seul ce dernier mode est pris en charge par OpenOCD. Or par défaut, le mode ULink est activé sur les sondes si la version du firmware est inférieure à 2.00. Grosso-modo, cela correspond à toutes les sondes achetées avant mi 2017.

Dans tous les cas, il est possible de passer d'un mode à l'autre en utilisant l'utilitaire "UL2_Configure.exe" fournit par Keil dans son environnement µVision. Je vous ai mis cet utilitaire en annexe de ce billet. Celui-ci se lance depuis la ligne de commande Windows et voici comment on l'utilise :

UL2_Configure.exe [SN] {B0|B1}

Avec :

  • SN : numéro de série de la sonde dont vous voulez changer le mode de boot. Nécessaire seulement si plusieurs sondes sont connectées à l'ordinateur, optionnel sinon.
  • B0 : passage en mode ULink.
  • B1 : passage en mode CMSIS-DAP.

Petit exemple d'utilisation : ulink2-boot-mode.png

Une fois le mode de boot de la sonde modifié, il ne reste plus qu'à réaliser le script OpenOCD qui va bien, en spécifiant qu'on utilise une interface de type CMSIS-DAP. Exemple de config OpenOCD avec une sonde ULink2 pour debugger un STM32F207 en mode SWD :

source [find interface/cmsis-dap.cfg]
transport select swd
source [find target/stm32f2x.cfg]
reset_config srst_only

source