本帖最后由 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 的版本号,有输出,说明安装成功。
接下来是在上网机操作的,开发机没有网络就不需要了~~~
上网机上更换 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 上面没有支持~~~
|