最近在开发一款USB外设,使用ATSAMD21G18作为主控芯片,Arduino开发,因为是自己设计的电路板,芯片也是不带bootloader的元件,不能直接烧录Arduino程序,需要先刷bootloader:

upload successful

问题出现了

arduino的openocd不能识别daplink设备,起初我还以为驱动有问题,或者daplink太垃圾,后来换了个daplink也不行

因为玩这个芯片的人少,所以也没找到什么解决方案,说什么的都有,有的人是因为权限问题,在我这都不能解决问题

解决方案

后几经周折发现是arduino自带的openocd版本太低导致的,应该是不兼容我的daplink

需要自己去openocd官网下载最新的openocd,解压到:
C:\Users\用户名\AppData\Local\Arduino15\packages\arduino\tools\openocd把现有的给替换掉

upload successful

确保子目录结构如下:

upload successful

再上传就可以了

拓展内容

daplink选购:淘宝上10块左右的,大部分都是用STM32F103C6T6,内存小的可怜,下载速度很慢,固件也是阉割版的,不然放不下,会有很多奇怪的问题,建议不要买,推荐后面这个图中的CH32V305的,稳定且速度很快,就贵几块钱

upload successful

upload successful

参考链接: