返回列表 发新帖我要提问本帖赏金: 80.00元(功能说明)

[开发工具] 使用 PlatformIO 开发 APM32F4 系列 MCU 之一

[复制链接]
 楼主| wangqy_ic 发表于 2024-10-7 23:20 | 显示全部楼层 |阅读模式
<
本帖最后由 wangqy_ic 于 2024-10-11 11:12 编辑

#申请原创#
使用 PlatformIO 开发 APM32F4 系列 MCU 之一

整个内容分为两部分:

第一部分先介绍怎样在 PlatformIO IDE 下 开发 APM32F4 MCU,也就是本文了
第二部分介绍 APM32F4 MCU 相关的资源包如何整理编写,见这里 https://bbs.21ic.com/icview-3406612-1-1.html

概述
PlatformIO https://platformio.org 是一个开源的项目管理工具,它为开发人员提供了一套完整的工具链,包括项目管理、编译、调试、打包、部署等。源于外国的工具,大多需要良好的网络支持,对于国内工程师来说,确实是一个麻烦的问题。好在 PlatformIO 对于网络的需求只是在下载开发资源的时候,而下载好的资源可以直接复制使用。

5月的时候有个帖子也提到了 PlatformIO开发AMP32F411,但是文章内容不是十分匹配~我其实也准备了蛮长的时间,今天整理好了发出来。计划是两篇文章,第一篇是建立开发环境,因为我的公司办公环境是不能联网的,所以这篇文章的目标是在没有网络的机器搭建 PlatformIO 环境;第二篇准备介绍如何在 PlatformIO 中使用 PlatformIO 官方尚未支持的 MCU,例如 APM32F 系列 MCU。

这里是这个系列的第一篇,搭建离线的开发环境~为了描述方便,可以连接互联网下载文件的电脑成为上网机,不能连接互联网的机器成为开发机。

所需资源
  • Python 运行环境及相关 Python 库(包)。PlatformIO 是基于 Python 开发的,这些是必须的。
  • 开发必须的 PlatformIO 资源包,例如:platforms,packages,tools 等等。这些概念都是 PlatformIO 的概念,可以参考官网介绍。
  • IDE 环境。本文描述的是使用 VSCode。据官网信息,PlatformIO 目前实验性地支持 CLion。PlatformIO 工具以扩展(extension)的形式存在对应 IDE 的市场~

上述的内容,都是可以下载后离线安装。实际需要的资源有:
  • Python 安装包。
  • PlatformIO 相关的 Python 库(包)。
  • VSCode 安装包。
  • VSCode 相应扩展。
  • PlatformIO 资源包。

除了 Python 需要在上网机和开发机都安装,其他资源只需要在上网机下载,复制到开发机即可。我把本文涉及到的资源都打包上传到网盘,可以直接下载复制到开发机。不想了解获取方法的,可以直接跳到后面【安装】一章。

接下来介绍各个资源的获取方式。

Python 安装包
在 Python 官网可以直接下载。**上网机和开发机都需要安装**,强烈建议两个环境下的版本必须一致,以便后面下载的 Python 库(包)可以直接复制使用(当然如果不一致也是有方法处理~)。

安装的时候,建议如下图的安装选项,然后点击 Install Now 启动安装:

badf276f5a8c654896d53b6c69cc5750

等待安装完成后,点击下图显示的区域:

e5fa82b898c3b9a4950e2d6eec8ece79

最后点击 Close 结束安装:

10fbeac257da2c0654fede6970f5ec05

可以通过命令检查 Python 是否安装完成:
  1. python -V

这个命令会输出当前 Python 的版本号,有输出,说明安装成功。

接下来是在上网机操作的,开发机没有网络就不需要了~~~

上网机上更换 pypi 的国内源。pypi 源是 Python 的库(包)的仓库,使用国内的仓库能让后面的安装更顺畅些~

打开命令行窗口(或者 pwoershell 或者 windows terminal,看你的习惯,后面不再提示这个)输入:
  1. pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

可以看到成功的提示,就可以了。

上面这个命令是使用清华大学的 pypi 源,你也可以使用阿里云等其他源,只需要把最后的那个参数换为对应的 URL 就可以。例如阿里云的是:
  1. pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/

PlatformIO 相关的 Python 库
在上网机里合适的路径下,创建一个文件夹用于保存 PlatformIO 的库(包)。建议实际路径无空格,中文~

打开命令行窗口,切换至这个目录,执行:
  1. pip download setuptools platformio

等待下载完成后,能看到类似的提示信息:
Successfully downloaded platformio ajsonrpc bottle marshmallow pyserial requests semantic-version tabulate wsproto click pyelftools starlette uvicorn colorama anyio certifi charset-normalizer h11 idna packaging urllib3 sniffio

目录下应该有类似如下结构的文件:

67b383c7cf38ba623f5f0047ebb342c2

PlatformIO 相关的 Python 库就下载完成。

VSCode 安装包
官网下载~ https://code.visualstudio.com/Download

VSCode 的安装包有几个类型,区别大概是这样的:
- User Installer 安装包,安装路径默认是用户目录的 AppData\Local\Programs 下。
- System Installer 安装包,安装路径默认是 C:\Program Files 下。
- .zip 压缩包,解压后可以直接使用.
- CLI 命令行工具,应该使用不上的~

可以根据你的开发机的权限,下载合适的内容。

VSCode 相应扩展
VSCode 扩展的网站是:https://marketplace.visualstudio.com/VSCode 我们需要的扩展都在这个网站下载。需要注意的是版本的匹配,我这里给出截至2024年10月7日的最新匹配版本号:

- vscode: 1.94.0
- C/C++: 1.21.6, https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools
- PlatformIO IDE: 3.3.3, https://marketplace.visualstudio.com/items?itemName=platformio.platformio-ide

PlatformIO IDE 可以直接在页面下载到 v3.3.3 版本,但是 C/C++ 的页面没有这个下载连接,我是根据最新版本的地址推测的:
https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-vscode/vsextensions/cpptools/1.21.6/vspackage?targetPlatform=win32-x64

目前还可以下载~

PlatformIO 资源包
这一部分需要好的网络,我把上面所需的资源,全部打包上传到了网盘,大家可以自行取用~
通过百度网盘分享的文件:platformio_offline
链接:https://pan.baidu.com/s/1EMWkphPdjMn7IDXk9RUl6A?pwd=84vc
提取码:84vc

离线安装
把全部资源复制到开发机,以下的操作都在开发机进行。

本文涉及到的文件内容:
  1. │  python-3.11.9-amd64.exe
  2. │  VSCode-win32-x64-1.94.0.zip
  3. │  VSCodeUserSetup-x64-1.94.0.exe

  4. ├─platformio_packages
  5. │  │  apm32f407_tiny.7z
  6. │  │  contrib-piohome.7z
  7. │  │  framework-geehy-apm32f4.7z
  8. │  │  geehy_apm32.7z
  9. │  │  tool-cppcheck.7z
  10. │  │  tool-jlink.7z
  11. │  │  tool-openocd.7z
  12. │  │  tool-scons.7z
  13. │  │  toolchain-gccarmnoneeabi@1.70201.0.7z
  14. │  │  unzip_files.bat
  15. │  │
  16. │  └─7zip
  17. │          7-zip.dll
  18. │          7-zip32.dll
  19. │          7z.dll
  20. │          7z.exe

  21. ├─pypi
  22. │      ajsonrpc-1.2.0-py3-none-any.whl
  23. │      anyio-4.6.0-py3-none-any.whl
  24. │      bottle-0.13.1-py2.py3-none-any.whl
  25. │      certifi-2024.8.30-py3-none-any.whl
  26. │      charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl
  27. │      click-8.1.7-py3-none-any.whl
  28. │      colorama-0.4.6-py2.py3-none-any.whl
  29. │      h11-0.14.0-py3-none-any.whl
  30. │      idna-3.10-py3-none-any.whl
  31. │      marshmallow-3.22.0-py3-none-any.whl
  32. │      packaging-24.1-py3-none-any.whl
  33. │      platformio-6.1.16.tar.gz
  34. │      pyelftools-0.31-py3-none-any.whl
  35. │      pyserial-3.5-py2.py3-none-any.whl
  36. │      requests-2.32.3-py3-none-any.whl
  37. │      semantic_version-2.10.0-py2.py3-none-any.whl
  38. │      setuptools-75.1.0-py3-none-any.whl
  39. │      sniffio-1.3.1-py3-none-any.whl
  40. │      starlette-0.39.2-py3-none-any.whl
  41. │      tabulate-0.9.0-py3-none-any.whl
  42. │      urllib3-2.2.3-py3-none-any.whl
  43. │      uvicorn-0.30.6-py3-none-any.whl
  44. │      wsproto-1.2.0-py3-none-any.whl

  45. └─vscode_ext
  46.         ms-vscode.cpptools-1.21.6@win32-x64.vsix
  47.         platformio.platformio-ide-3.3.3@win32-x64.vsix

下载方便包后请检查是否完整~

安装 Python
python-3.11.9-amd64.exe Python 安装包,请参考前一章节 【Python 安装包】内容即可。

安装 PlatformIO
执行:
  1. pip install setuptools --no-index -f D:\platformio_offline\pypi
  2. pip install platformio --no-index -f D:\platformio_offline\pypi

注意:上述命令中 D:\platformio_offline\pypi 上述资源中 platformio-6.1.16.tar.gz 所在文件夹的绝对路径,请按你实际的情况修改

安装完成后,可以执行 `platformio --version` 查看是否安装成功。正确安装的情况下,会显示 PlatformIO 的版本号。

安装 PlatformIO 资源包
这一部分的内容对应上述资源中 platformio_packages 文件夹的全部内部内容。由于文件较多,我写了一个批处理文件 `unzip_files.bat` 直接双击这个文件就可以。

安装完成后,可以执行:`pio home` 会显示提示信息,并打开默认浏览器,类似下图这样就表示本步骤成功:

5cdcc6410476261e7eba0b1bfcaf7c39

安装 VSCode
使用 VSCodeUserSetup-x64-1.94.0.exe 进行安装,或者解压缩 VSCode-win32-x64-1.94.0.zip 到任意目录就可以了。这一步不再详述。

安装 VSCode 插件
打开 VSCode,按下图步骤,选择 `从 VSIX 安装`:

ff2e8a3190bd88200c1bbd4778565a72

在弹出的对话框中选择 ms-vscode.cpptools-1.21.6@win32-x64.vsix 文件,等待安装完成,会提示重启 VSCode,可以暂时不用重启。

重复上述步骤,安装 platformio.platformio-ide-3.3.3@win32-x64.vsix 等待操作完成,重启 VSCode。

设置 PlatformIO IDE
打开 VSCode,选择 `File -> Preferences -> Settings`,中文界面参考下图:

19f33000092989724abe0567fbd4ce09

在打开的设置窗口,在左侧树形列表中依次展开 `Extensions -> PlatformIO IDE`,在右侧找到 `Custom PATH`,点击 `Edit in settings.json`,中文界面参考下图:

17286800e4cc8f90c6c185b19fba3d0d

在打开的 `settings.json` 文件中,修改内容:
  1. {
  2.     "platformio-ide.customPATH": "C:\\Users\\vbuser\\.platformio",
  3.     "platformio-ide.useBuiltinPython": false,
  4.     "platformio-ide.useBuiltinPIOCore": false
  5. }

注意:
1. "platformio-ide.customPATH" 中的 vbuser 是我的有用户名,请修改为你自己的。可以在 C: 盘下 `用户` 目录看到~
2. 后续两行请照抄。
3. 这是一个 json 文件,如果你的这个文件打开后就有其他内容,请按 json 文件格式增加上述内容,保证文件的格式正确

`settings.json` 文件打开时为空,新增的内容类似这样:

cdc3e010d0322d1649bcfb086d8ba3d0

`settings.json` 文件打开时已经有内容,选中的部分是新增的,注意第5行的`,`:

b88db2d15faa0dd1518a738ae2f47e62


保存`settings.json` 文件,重启 VSCode,安装内容全部结束,接下来就可以使用 PlatformIO 啦。

使用简介

在上一章节的执行 `unzip_files.bat` 批处理文件时,顺手解压缩了一个实例工程。路径是家目录的 platformio_projects\apm32f407_tiny 。
打开命令行窗口,执行命令切换到这个目录:
  1. cd /d %userprofile%\platformio_projects\apm32f407_tiny

执行 PIO 编译命令:`pio run`

正常编译的结果类似下图,注意这里的 `vbuser` 是我的用户名,跟你的实际情况有出入~

1f122f797a08f63945e365ae7c23d963

也可以打开 VSCode,进行可视化的操作:

72cdd9d9d324647ee1b087ff45a53d6d

到此,你就可以使用 PlatformIO IDE 开发 APM32F4 系列 MCU 的程序了~~~

后续
下一篇文章计划介绍怎样在 PlatformIO IDE 环境下制作 PlatformIO 官方没有支持的 MCU,比如本文介绍的 APM32F4 MCU 暂时在 plotform.io 上面没有支持~~~









打赏榜单

21小跑堂 打赏了 80.00 元 2024-10-31
理由:恭喜通过原创审核!期待您更多的原创作品~

评论

PlatformIO IDE 下 开发 APM32F4 MCU的环境配置,手把手教学,保姆级教程,跟着作者一步步实现该过程吧  发表于 2024-10-31 17:14
xionghaoyun 发表于 2024-11-8 09:45 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:感恩的心对人。

22

主题

117

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部