PY32F002B入门——02建立VS Code EIDE工程
目的:个人习惯在VSCode中编写代码,而在把工程分享给别人时,没有配置VSCode环境的人则无法打开。本文配置VSCode工程和Keil工程共存,这样其他人就可以使用Keil打开工程,只需将后面新编写的代码文件参与编译即可。
VS Code基本开发环境搭建
要使用VS Code烧写代码,需要先安装EIDE(Embedded IDE)、C/C++扩展。插件安装完成后,打开插件面板,选择导入工程,选择MDK。

选择Keil的工程文件

右下角会提示存储路径,这里选择共存。

导入完毕,切换工作区。

可以看到项目相关的属性。

直接点击编译,会出现很多错误。还有一些需要额外配置的内容。

点击添加芯片支持包,找到PY32F002B_Firmware_V1.1.8\Packs\MDK\Puya.PY32F0xx_DFP.1.2.5.pack文件


这样添加芯片包后,文件夹会变得非常大

如果不介意文件大小,可以通过添加软件包的方法解决。
下面是另一种方法。将PY32F002B_Firmware_V1.1.8\Drivers\CMSIS\Device复制到自己工程的CMSIS中

然后在包含目录中添加红框这个路径。芯片支持包这里可以是空的,如果之前添加了支持包,可以移除(节省空间)。

再次编译,就没有报错了。

此外,工程目录下多了一个.cmsis文件夹。这里面很多内容是用不到的,且和我们自己的CMSIS重复,我这里就将它删除,并且在包含目录中也对应移除了。


在EIDE的烧录配置中,也需要根据自己使用的设备进行调整。我用的是DAPLink,选择OpenOCD。

设置芯片型号

设置烧录器类型

当进行烧录时,不出意外的话就要出意外了。

仔细观察报错原因,个人猜测是相对路径的问题,在项目当前路径中没有名叫interface和target的文件夹。

但在用户目录下的.eide文件夹中又确实有这个文件

于是将他们复制到工程中。

于是报错的内容改变了


发现还缺少这两个文件。也一起复制到target文件夹中

再次烧录,终于一切正常

补充:后面看到了EIDE论坛的贴子(关于使用EIDE开发PY32,并在工作区中指定OpenOCD可执行文件路径后出现的烧录错误),有另一种解决方法:配置环境变量。在Windows中配置一个OPENOCD_SCRIPTS环境变量,指向openocd安装路径下的scripts文件夹。这样可以不用在工程路径下创建interface和target。

上述步骤完成了VSCode中编译、烧录代码的环境配置。下面内容是配置调试环境。
调试环境搭建
这部分参考以下两个文章:
VScode利用EIDE和cortex-debug进行stm32开发(包括配置以及使用)——博客园
cortex-debug 用法——Embedded IDE Forum
需要安装扩展cortex-debug

还需要安装GNU Arm Embedded Toolchain,可以在EIDE中选择安装。

然后创建launch.json,我选择的是保存到文件夹


创建了launch.json后,修改对应选项
{
"version": "0.2.0",
"configurations": [
{
"name": "Cortex Debug",
"cwd": "${workspaceFolder}",
// 自行修改为工程的名字
"executable": "${workspaceFolder}/build/Target_1/template.axf",
"request": "launch",
"type": "cortex-debug",
"runToEntryPoint": "main",
"servertype": "openocd",
"configFiles": [
"interface/cmsis-dap.cfg",
"target/py32f002b.cfg"
],
// 自行修改,也可以不配置
"svdFile": "C:/Users/zhuan/AppData/Local/Arm/Packs/Puya/PY32F0xx_DFP/1.2.5/CMSIS/SVD/PY32F002Bxx.svd",
}
]
}
PY32F002Bxx.svd文件在keil安装芯片包时会自动安装,电脑上有Everything的话可以搜索找到。知道路径后,可以将它复制到自己工程目录,也可以就在launch.json中填写完整路径。当然这里也可以不配置,不影响调试功能。

调试功能正常

感谢阅读至此。系列文章仍在学习和编写中,可查看本人专栏。
PY32F002B入门——01建立Keil工程
PY32F002B入门——02建立VS Code EIDE工程
更多推荐


所有评论(0)