本帖最后由 wangqy_ic 于 2024-3-14 10:15 编辑
#申请原创#
最近拿到了极海 APM32F407IG Tiny 开发板:
虽说是 Tiny 系列的板子,但是板上资源还是不错的:
- LED: 2
- KEY: 2
- RESET KEY: 1
- ETH: 1
- USB Type-C: 2
- USB Host: 1
- Geehy LINK/SWD: 1
- Arduino: 1
所以,草率地决定给它移植 Mbed OS~
因为移植的步骤还是比较多的,所以预计分三部分讲解移植过程,目标是可以运行官方的 mbed-os-example-blinky 示例,串口正常。
当然如果反响不错,我们也可以移植网口等更多驱动,“上云”去玩玩~
1. 移植的准备工作(本篇)
2. 基本框架的移植(准备中)
3. 驱动的移植(准备中)
正文开始……
1. 关于 Mbed OS
官网 → https://os.mbed.com/mbed-os/ 不再过多介绍了,直接开始:
2. 必需的工具软件
必需的软件及其对应建议下载链接:
- Python: https://www.python.org/downloads/
- Git: https://git-scm.com/downloads
- CMake: https://cmake.org/download/
- Ninja: https://github.com/ninja-build/ninja/releases
- 编译器:
- GCC-ARM: https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
- ARM AC6: https://developer.arm.com/downloads/view/ACOMPE
- ARM AC5: https://developer.arm.com/downloads/view/ACOMP5
安装过程中,如果询问是否需要加入 PATH 环境变量,请确保加入。如果没有,后面也会处理。 2.1. Python
如果没有安装过 Python,可以从官网下载安装。版本至少是 3.6,我自己使用的是 3.9。除了 Python 程序,还需要一些其他 Python 软件包,稍后安装。
2.2. Git
可以从官网下载,版本至少是 3.19,建议安装最新版。
2.3. CMake
建议安装最新版。
2.4. Ninja
建议安装最新版。
2.5. 编译器
可以使用 GCC-ARM,或者 ARM 的编译器,下载后安装。
后续的移植工作都是基于 GCC-ARM。
3. 安装后的检查
各个工具安装完成后,需要确保各自的可执行程序都加入了 环境变量 PATH 中,可以这样检查:打开命令行窗口,进行如下图的操作:
上面的命令中,最后一条执行不成功,原因就是 arm-none-eabi-gcc.exe 这个程序所在的目录不在环境变量 PATH 中,导致系统找不到程序。
解决方法就是把 arm-none-eabi-gcc.exe 所在目录,追加到环境变量 PATH 即可,其他程序类似~
每个必需的程序都能正常运行后,就可以执行接下来的操作。
4. 安装mbed-tools
这个是 mbed-os 的开发工具,是一个基于 Python 的软件包,需要按以下步骤操作。打开命令行窗口,执行:
安装完成后,可以检查一下是否安装成功。继续在命令行窗口执行如下图的操作,出现类似结果说明安装没有问题:
到此,准备工作完成。
5. 导入 mbed-os 代码
接下来就可以进行移植工作了。移植可以是从零开始,也可以从示例工程开始。为了更方便快捷的搞移植,我们选择从官方的实例工程开始,这样既可以验证开发环境是否OK,也又一个可以随时可以用于验证的正确的工程。
在电脑上,选定一个目录作为工作目录,后续的开发工作都在此目录下进行。
打开命令行窗口,切换至工作目录,执行以下命令:
mbed-tools import mbed-os-example-blinky apm32f407_tiny
这个命令会创建一个 mbed-os 工程项目,并且从 GitHub 拉取mbed-os 源码,所有需要花费一些时间。
如果网络不好,这个命令可能会失败。如果大家的网络确实不好,我可以打包一份分享出来~
5.1. 额外的 Python 软件包
mbed-os 的编译,还需要几个额外的软件包,按以下方法安装:
在命令行窗口中,进入 apm32f407_tiny 目录并执行:
pip install -r mbed-os\tools\cmake\requirements.txt
这个命令的含义是从mbed-os\tools\cmake\requirements.txt 读取软件包列表,并安装这些软件包。
安装完成后我们尝试使用官方支持的开发板进行一次编译,以验证整个开发环境。在命令行窗口执行:
mbed-tools compile -t gcc_arm -m NUCLEO_F103RB
如果一切都正常无误,会看到最后输出类似以下图片:
图上的内容是程序的统计信息,可以看到RAM,Flash 的占用~
通过上面的步骤,我们验证了开发环境是没有问题的,接下来就是正式的移植工作。
// 第一部分到此结束,静待下一篇~
|