一、起因
由于越来越喜欢用vscode进行单片机程序的编写,使用了一个CMSIS-DAP的调试器,这个调试器没办法用stlink和jlink进行调试,所以使用了这个基于python的pyOCD进行调试
二、什么是pyocd
pyocd 是 arm 开发的一个 python 包(python package),该软件包可以使用多种USB调试器对 arm cortex-M 微控制器进行调试、编程(烧录程序)。
说白了就是个下载的驱动软件目前支持 Daplink、ST-Link、jlink。目前从 pyocd github 上看到的,pyocd 内部默认安装70多个常用的单片机支持包,但是通过使用 CMSIS-Packs 几乎支持所有基于 comtex-m 内核的单片机。(是要能用keil、Eclipse写的单片机都可以用)
三、pyocd优点
pyocd 提供了命令行工具,使用这工具可以用来调试、烧录、擦除 MCU
pyocd 提供了python API,可是使用这些API来实现控制 MCU(读取MCU寄存器、暂停、运行、复位MCU等)
pyocd 支持 windows、linux、Mac操作系统
现在感觉,pyOCD还是很好用的。
四、安装pyocd
pyOCD官方文档链接:https://pyocd.io/docs/
1、由于pyocd是基于python开发的,所以你需要支持python环境、并将pip加入path环境中,这个过程很简单,这里就不做太多赘述,可以参考这个->点击教程
2、最新稳定版本的 pyOCD 可以通过 pip 安装,命令如下:
pip install -U pyocd
参考:https://pypi.org/project/pyocd/
五、使用pyocd
首先打开CMD、输入
pyocd --version
可以查看到安装的版本.
输入
pyocd --help
可以查看帮助信息、可以看到python提供了9条命令
commander跟cmd: 可交互的终端,
erase: 擦除命令
flash:烧录命令
reset:复位设备
gdbserver跟gdb:用于gdb调试的
json:以json格式输出信息
list:可以列出dap-link、目标IC、特定板子的信息
pack:用于管理CMSIS-Pack
server:运行debug服务
如果想知道上述命令的用法可以使用 pyocd + 上述中的一个命令 + -h/--help,如下:
这些命令各有什么用呢?什么情况下要用什么命令?这些命令怎么配合使用?
比如,使用 CMSIS-DAP 给 MCU 下载固件,一般会使用上位机 KIELL 通过 CMSIS-DAP 下载,首先 上位机 KEIL 能找到 CMSIS-DAP,然后需要选择所下载的 MCU,然后选择所要下载的固件,这 3 步都设置好后,就可以下载程序了,
根据这些,依次介绍 pyocd 的命令:
list or json:查看能够使用的调试器、支持的 MCU
pack:管理支持的 MCU
flash & erase : 对 MCU 进行编程、擦除
(1)pyocd list 命令
从 pyocd 帮助信息来看:
list List information about probes, targets, or boards.
可以知道 list 命令使用来查看 调试器、目标芯片、板子的信息,
pyocd list / pyocd list -p
列出连接到电脑上的 CMSIS-DAP 或者 ST link,当没接如任何pyocd所支持的设备时,如下:
接入了一个 CMSIS-DAP 跟 ST Link 后如下:
(1.1) pyocd list -t/--target
列出所支持的IC,可以是内置的,也可以是通过安装pack获得支持的,
上面图片展示了列出了 pyocd 内置的一部分 MCU。
我的电脑中已近安装了 STM32G4 的pack,上图中,STM32G4 系列后面就显示了 pack
(1.2) pyocd list -b/--board
列出所支持的板子,如下:
(2)pyocd json 命令
json Output information as JSON.
(2.1) pyocd json -t
从帮助信息来看,是输出所有已知的 target,先试下pyocd json -t命令,如下:
输出一大堆数据,除了有pyocd 版本信息外,就是一些MCU的信息,有MCU的厂商、型号,还有该信息是内置的还是来自pack。
试下能不能输出指定 MCU 的信息:
pyocd list 跟 pyocd json 功能应该是差不多的,都是输出一些信息,如接入了电脑的调试器信息,系统所支持的单片机等,只不过输出方式不同,pyocd list 是直接输出相关信息,pyocd json 是以 json 格式输出相关信息。
(3)pyocd pack 命令
pyocd 通过两种方法支持 MCU,一个是内置的(builtin),这个数量有限,还有一个是通过 pack 来支持,需要用pyocd 操作什么 MCU,安装对应的 pack , 类似 keil5 ,新安装的 Keil5 不支持任何单片机,如果要使用新安装的keil 支持某类型号单片机,需要安装对应的软件包。
pyocd 提供了一个内置的子命令来对pack进行管理,安装、查找、删除等,来看下 pyocd pack 命令的帮助信息:
送上图来看,有5个功能选项:
-c:清楚保存在电脑上的pack信息
-u:更新pack索引
-s:显示已安装的pack
-f:查找某个IC对应的pack
-i:安装指定的pack
pyocd 使用的 pack 有个默认的存放路劲,我电脑上为:
C:\Users\用户\AppData\Local\cmsis-pack-manager\cmsis-pack-manager
pyocd pack 命令就是对该目录的文件进行管理。
(3.1)pyocd pack -U
使用方法为:
pyocd pack -u
第一次使用该命令的时候,会在pyocd存放pack文件的默认路劲下下载不同厂商不同系列 MCU 的 pack 的描述文件(pdsc文件)和 index.json、aliases.json 文件。执行过一次之后,会从网络上更新相应的文件。下图是一个执行pyocd pack -u的结果,有出现错误。
下图是执行了pyocd pack -u 后,pack 所在文件夹多了很多文件:
(3.2)pyocd pack -f
使用方法为:
pyocd pack -f partnumber
该命令会显示出对应型号 MCU 的 pack 的信息,如下图,显示了 STM32G431 所对应 pack 的信息
(3.3)pyocd pack -i
使用方法为:
pyocd pack -i partnumber
该命令安装指定型号MCU的pack,如下图:
不过,由于网络的问题,一般很难下载完成,跟keil下载pack一样,非常慢,经常下载失败,可以手动下载所需的pack,然后放到对应目录,格式统一为这样、将前面的名字删掉。
pyocd pack -s
安装有pack后,执行结果为:
pyocd flash 命令
用CMSISDAP+STM32G4 如下:
STM32G4 的测试程序是用 Cube MX 创建工程、然后用vscode打开
第一次测试,首先执行 pyocd list查看是否成功识别到设备,确认能够找到 CMSIS-DAP 后。
输出的帮助信息看不出来 pyocd flash 应该怎么用:
非常多选项,这里只关注烧录的功能,通过查阅 pyocd 的文档,了解到可以使用如下命令来给MCU烧录程序:
pyocd flash -t mcu_partnumber firmware
我的 MCU 是 stm32G431RBTx,测试固件是 HAL_06_LCD.hex,尝试使用命令 :
pyocd flash -t stm32G431RBTx HAL_06_LCD.hex来烧录程序,结果如下:
接着我们可以使用vscode配置pyocd了
用EIDE打开,在烧入配置中选择pyOCD
在芯片选择上,选择已经安装过pack包的芯片
点击下载按钮,就可以完成程序的下载
程序的DEBUG仿真
选择编辑器设置,将axf装换为elf的选项勾选
安装cortex-Debug
点击debug选择pyocd就可以实现对程序的仿真
由于pyocd使用python开发,可以使用 pyocd python api 做个上位机一键烧录,或实现云端服务器烧入。
Hello colleagues, how is everything, and what you wish for to
say about this article, in my view its truly awesome in favor of me.
My coder is trying to convince me to move to .net from PHP.
I have always disliked the idea because of the costs.
But he’s tryiong none the less. I’ve been using Movable-type
on several websites for about a year and am nervous about
switching to another platform. I have heard fantastic things about blogengine.net.
Is there a way I can transfer all my wordpress content into it?
Any help would be greatly appreciated!
Приобретение диплома ПТУ с сокращенной программой обучения в Москве
Аттестат школы купить официально с упрощенным обучением в Москве
Можно ли быстро купить диплом старого образца и в чем подвох?
игра мины на деньги в казино
игра мины на деньги
Как получить диплом техникума с упрощенным обучением в Москве официально
Процесс получения диплома стоматолога: реально ли это сделать быстро?
Your style is really unique in comparison to other
folks I’ve read stuff from. Many thanks for posting when you have the opportunity, Guess I’ll
just book mark this page.
Howdy great website! Does running a blog similar to this require a great deal of work?
I’ve very little knowledge of computer programming however I had
been hoping to start my own blog in the near future. Anyhow,
if you have any suggestions or techniques for new blog owners please share.
I know this is off subject however I simply wanted to ask.
Cheers!
Someone necessarily lend a hand to make significantly posts I would state.
That is the first time I frequented your website page and up to now?
I amazed with the analysis you made to make this particular put up amazing.
Excellent job!
Официальная покупка диплома вуза с сокращенной программой в Москве
двухъярусные кровати, кровати-чердаки
и трансформеры, письменные столы,
полноценные детские стенки, шкафы, комоды, пеналы, Купить шкаф.
my webpage :: Купить шкаф купе в Киеве
лучшие топ казино 2024
рейтинг топ казино 2024
Купить диплом судоводителя
но, как и русский язык, лучшие курсы ЕГЭ по литературе в Москве она необходима для
поступления почти на любые
творческие специальности.
Whoa tons of beneficial tips.
Also visit my website … http://Www.nuursciencepedia.com/index.php/How_To_%EC%B6%9C%EC%9E%A5%EC%95%88%EB%A7%88_In_10_Minutes_And_Still_Look_Your_Best
Приобретение школьного аттестата с официальным упрощенным обучением в Москве
Aw, this was a really nice post. Finding
the time and actual effort to make a very good article? butt what can I say?
I hesitate a whole lot andd don’tseem to gget anything
done. http://goldbullion.s3-website.us-east-2.amazonaws.com/Gold-coins/3-Things-You-Should-Know-Before-Buying-Gold-Coins.html
где дают 5000 за регистрацию в казино без депозита
5000 рублей за регистрацию в казино без депозита
Как избежать рисков при покупке диплома колледжа или ПТУ в России
I’ll immediately take hold of your rss feed as I can not to find your
e-mail subscription hyperlink or e-newsletter service.
Do you have any? Please permit me recognise so that I could subscribe.
Thanks.
Полезные советы по безопасной покупке диплома о высшем образовании
Всё о покупке аттестата о среднем образовании: полезные советы
I think this is among the most significant information for me.
And i am glad reading your article. But want to remark on few
general things, The website style is perfect, the articles is
really nice : D. Good job, cheers