打印
[移植指南]

移植 Mbed OS 到 APM32F407 之一

[复制链接]
760|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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 的软件包,需要按以下步骤操作。打开命令行窗口,执行:
pip install mbed-tools
安装完成后,可以检查一下是否安装成功。继续在命令行窗口执行如下图的操作,出现类似结果说明安装没有问题:


到此,准备工作完成。

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 的占用~
通过上面的步骤,我们验证了开发环境是没有问题的,接下来就是正式的移植工作。


// 第一部分到此结束,静待下一篇~



使用特权

评论回复
沙发
cheukyau| | 2024-3-26 09:21 | 只看该作者
期待期待

使用特权

评论回复
板凳
WoodData| | 2024-3-29 21:56 | 只看该作者
跟着学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

13

主题

78

帖子

4

粉丝