打印
[APM32F1]

使用pyocd+cmsis-dap搭建apm32f103运行环境

[复制链接]
1698|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DKENNY|  楼主 | 2023-8-3 06:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 DKENNY 于 2023-8-3 07:03 编辑

       我们除了使用openocd+jlink对apm32f103开发以外,还可以使用pyocd+cmsis-dap对apm32f103开发。
       下面介绍一下配置过程。
        1、 配置pyocd环境
        Pyocd是arm开发的一个python包,该软件包可以使用多种usb调试器对arm cortex-M 微控制器进行调试、编程、烧写。所以在配置pyocd之前,我们首先需要安装python,可去官网Welcome to Python.org(https://python.org)下载,配置系统环境变量。
        安装成功后,打开cmd,输入python,若出现以下信息,则说明python安装成功。
              
        安装python后,我们就可以安装pyocd了。
            1. 退出python   在cmd中输入 exit()
            2 .  安装pyocd    在cmd中输入 pip install -U pyocd
            3 .  安装libusb库  在cmd中输入 pip install -U libusb
      执行以上操作时,可能会比较慢,可耐心等待。执行完命令后,在cmd中输入pyocd,若出现以下信息则说明安装成功。
              
        2、安装pack包
       连接cmsis-dap仿真器后(我这里使用的是Geehy-Link),在cmd中输入pyocd list,若出现以下内容,则说明连接成功。
              
        连接成功后,需去geehy官网(https://geehy.com/MCU)下载对应系列的pack包,我这里使用的是apm32f103.
        下载pack包后,在cmd中输入
             pyocd list -–target –-pack E:\ Geehy.APM32F1xx_DFP.1.1.0.pack
        为了方便操作,我这里将pack包放在了E盘根目录下,若出现以下信息,则说明信息获取成功。
            
        我们可以直接在cmd中输入相关命令,对芯片擦除以及烧录。
        在确保仿真器连接开发板的前提下,在cmd中输入pyocd erase –-pack E:\Geehy.APM32F1xx_DFP.1.1.0.pack -t apm32f103c8 –-chip,即可擦除芯片,我这里使用的芯片型号是apm32f103c8.
            
        芯片擦除成功后,在cmd中输入pyocd flash –-pack E:\ Geehy.APM32F1xx_DFP.1.1.0.pack –target apm32f103c8 + 对应.hex(或.elf,.bin)文件,对芯片进行烧录。
            
       此时,芯片已经烧录了这部分的代码了,我们只需按下芯片的复位键,代码就正常在芯片中运行了。
       3、eclipse配置
       打开eclipse,对工程进行编译,编译无误后,在菜单栏中进行Debug配置,我们可双击GDB Pyocd Debugging新建一套配置选项。
       新建一套配置选项后,main选项卡一般会自动添加当前工程的.elf文件。我们也可自己手动添加该.elf文件。
            
        在配置好main选项卡后,我们可以进行debugger以及svd的配置了。
            
            
        然后,我们就可以对芯片进行dubug操作了。
            
            
        我们可以看到寄存器里面的值是变化的,说明我们的配置是成功的!!!
        至此,我的分享结束了,欢迎讨论交流。

使用特权

评论回复
评论
forgot 2023-10-12 11:49 回复TA
赞,来学习一下! 
沙发
tpgf| | 2023-9-2 10:39 | 只看该作者
这两种开发环境都有哪些不同呢

使用特权

评论回复
板凳
nawu| | 2023-9-2 10:54 | 只看该作者
如果使用**版本的话 还支持所有的功能吗

使用特权

评论回复
地板
DKENNY|  楼主 | 2023-9-2 11:33 | 只看该作者
tpgf 发表于 2023-9-2 10:39
这两种开发环境都有哪些不同呢

使用 pyOCD + CMSIS-DAP 和使用 OpenOCD + J-Link的主要区别在于烧录工具和硬件连接的不同。以下是它们之间的比较:

pyOCD + CMSIS-DAP :

1. 烧录工具:pyOCD是一个使用Python编写的开源烧录工具,它可以与多种CMSIS-DAP兼容的调试适配器一起使用。
2. 硬件连接:使用CMSIS-DAP烧录时,您通常需要一款CMSIS-DAP兼容的调试适配器,如ST-Link,DAPLink等。这些适配器通过USB接口连接到目标设备。
3. 支持的目标设备:pyOCD支持一系列不同的目标设备,但具体支持的设备取决于pyOCD的版本和更新。通常来说,它支持多种ARM Cortex-M芯片。

OpenOCD + J-Link 烧录:


1. 烧录工具:OpenOCD是一个功能强大的开源调试和烧录工具,支持多种调试适配器,包括J-Link。
2. 硬件连接:使用J-Link烧录时,您需要一款J-Link调试适配器,它通常也通过USB接口连接到目标设备。J-Link是一种高性能的调试适配器,适用于各种ARM芯片。
3. 支持的目标设备:OpenOCD支持广泛的ARM和非ARM芯片,因此它可以用于更多种类的目标设备。

总的来说,选择使用哪种工具取决于您的项目需求和硬件选择。如果您需要一个简单易用的烧录工具,并且目标设备兼容CMSIS-DAP,pyOCD是一个不错的选择。如果您需要更多的功能和灵活性,或者您使用J-Link调试适配器,那么OpenOCD可能更适合您的需求。

使用特权

评论回复
5
zljiu| | 2023-9-2 11:36 | 只看该作者
哪种使用方式是官方推荐的方式呢

使用特权

评论回复
6
tfqi| | 2023-9-2 11:52 | 只看该作者
这两种方式都需要自己编写脚本吗?

使用特权

评论回复
7
DKENNY|  楼主 | 2023-9-2 12:10 | 只看该作者
tfqi 发表于 2023-9-2 11:52
这两种方式都需要自己编写脚本吗?

不需要编写额外的烧录或擦除的执行脚本,可以直接使用命令行指令对芯片进行擦除和烧录,像上面介绍的pyocd erase命令

使用特权

评论回复
8
gwsan| | 2023-9-2 20:11 | 只看该作者
这个工具在debug的时候默认可以打多少个断点呢

使用特权

评论回复
9
aoyi| | 2023-9-2 21:00 | 只看该作者
软件对安装路径有要求吗 比如不能有中文字符之类的

使用特权

评论回复
10
DKENNY|  楼主 | 2023-9-2 21:46 | 只看该作者
gwsan 发表于 2023-9-2 20:11
这个工具在debug的时候默认可以打多少个断点呢

使用这个工具在 eclipse 上调试时,与在 Keil 上使用jlink等调试工具 debug 的过程是一样的, 具体的断点数量取决于芯片型号,但通常在 4到 6 个之间。

使用特权

评论回复
11
DKENNY|  楼主 | 2023-9-2 21:49 | 只看该作者
aoyi 发表于 2023-9-2 21:00
软件对安装路径有要求吗 比如不能有中文字符之类的

在安装 pyOCD 时,最好将其安装到不包含中文字符的路径下,以避免潜在的问题。虽然许多操作系统和工具都支持中文路径,但在某些情况下,特别是在使用命令行工具和脚本时,中文路径可能会导致不必要的麻烦。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

57

帖子

6

粉丝