发新帖本帖赏金 80.00元(功能说明)我要提问
返回列表
打印
[开发工具]

使用 PlatformIO 开发 APM32F4 系列 MCU 之一

[复制链接]
750|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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 启动安装:



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



最后点击 Close 结束安装:



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

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

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

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

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

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

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

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

打开命令行窗口,切换至这个目录,执行:
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

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



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

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

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

├─platformio_packages
│  │  apm32f407_tiny.7z
│  │  contrib-piohome.7z
│  │  framework-geehy-apm32f4.7z
│  │  geehy_apm32.7z
│  │  tool-cppcheck.7z
│  │  tool-jlink.7z
│  │  tool-openocd.7z
│  │  tool-scons.7z
│  │  toolchain-gccarmnoneeabi@1.70201.0.7z
│  │  unzip_files.bat
│  │
│  └─7zip
│          7-zip.dll
│          7-zip32.dll
│          7z.dll
│          7z.exe

├─pypi
│      ajsonrpc-1.2.0-py3-none-any.whl
│      anyio-4.6.0-py3-none-any.whl
│      bottle-0.13.1-py2.py3-none-any.whl
│      certifi-2024.8.30-py3-none-any.whl
│      charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl
│      click-8.1.7-py3-none-any.whl
│      colorama-0.4.6-py2.py3-none-any.whl
│      h11-0.14.0-py3-none-any.whl
│      idna-3.10-py3-none-any.whl
│      marshmallow-3.22.0-py3-none-any.whl
│      packaging-24.1-py3-none-any.whl
│      platformio-6.1.16.tar.gz
│      pyelftools-0.31-py3-none-any.whl
│      pyserial-3.5-py2.py3-none-any.whl
│      requests-2.32.3-py3-none-any.whl
│      semantic_version-2.10.0-py2.py3-none-any.whl
│      setuptools-75.1.0-py3-none-any.whl
│      sniffio-1.3.1-py3-none-any.whl
│      starlette-0.39.2-py3-none-any.whl
│      tabulate-0.9.0-py3-none-any.whl
│      urllib3-2.2.3-py3-none-any.whl
│      uvicorn-0.30.6-py3-none-any.whl
│      wsproto-1.2.0-py3-none-any.whl

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

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

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

安装 PlatformIO
执行:
pip install setuptools --no-index -f D:\platformio_offline\pypi
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` 会显示提示信息,并打开默认浏览器,类似下图这样就表示本步骤成功:



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

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



在弹出的对话框中选择 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`,中文界面参考下图:



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



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

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

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



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




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

使用简介

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

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

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



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



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

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









使用特权

评论回复

打赏榜单

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

沙发
xionghaoyun| | 2024-11-8 09:45 | 只看该作者
学习一下

使用特权

评论回复
发新帖 本帖赏金 80.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

17

主题

97

帖子

4

粉丝