ARM Mbed OS 5.15 + Mbed CLI 搭建实战

为什么选用ARM Mbed OS?

主要是被它使用C/C++开发所吸引, 又有强大的ARM作技术垫底, 个人觉得这个系统会比较适合性能较强的MCU开发吧。 当然它目前面向的是有限个的评估开发板, 一些硬件层面上的接口已经做了适应性的封装。 恰巧手头上有一块DISCO_F769NI,话不多说,开撸。

注意

ARM Mbed OS支持多种工具链(toolchain)编译。

  1. ARM Compiler. 对于Mbed OS 5.15,对编译器的最低要求版本是:V6.11或以上。这里坑比较多,尝试过 V6.7和V6.10.1均无法正常运作OS. 主要表现为link警告, 烧录之后程序无法正常运作。
  2. GCC_ARM. 最大特点是开源免费。跟前者的不足在于:
1. 编译时间较长
2. 编译文件较大
  1. IAR, uARM. 不大了解. 望读者补充

分别使用ARM Compiler V6.13.1和GCC_ARM编译器,对mbed-os-example-blinky项目进行编译,对比如下:

ARM Compiler V6.13.1 GCC_ARM
编译时长 \leq 7min \leq 12min
.bin大小 52KB 62KB
警告数 24 53

注意, 使用旧版编译器(6.11以下)会出现数个链接警告, 烧录后无法正常运行! 主要表现为线程延时不准确, 程序莫名中断等等诡异现象.

Mbed CLI

这是一个使用Python开发的Command line Interface, 集合了项目管理, 远程库导入, 导出IDE项目文件, 使用外部工具链编译Mbed OS项目的辅助工具.
可以粗略地说, 它是一个Git的超集.

项目导入

mbed new .
或
mbed import https://github.com/ARMmbed/mbed-os-example-blinky.git

注意后者会把mbed-os项目导入, 如果你已经下载了os, 这是不必要.
你可以使用git直接clone, 或者查询具体参数, 通用帮助格式:

mbed import -h

导出到IDE

mbed export -i IDE -t BOARD
mbed export -S //查询支持的IDE和board

MDK-SDK 开发者需要注意, 对于OS V5.15, IDE需要选择uvision6才可以哦.

编译

首先, 你要配置工具链的路径.

mbed config -G ARM_PATH C:\Keil_v5\ARM\ARMCC
\\对于V6编译器, 精确到的bin是必须的
mbed config -G ARMC6_PATH C:\Keil_v5\ARM\ARMCLANG\bin 
mbed config -G ARMC6_PATH C:\Keil_v5\ARM\ARMCLANG\bin 
mbed config -G GCC_ARM_PATH C:\GCC_ARM\安装目录\bin

-G是指配置全局参数.

这里两个必要的概念:

  • Tool Chain: 你想利用什么工具链编译项目, 例如: GCC_ARM, ARM, IAR…
  • Target Board: 你想编译的项目在哪个平台上运行, 例如: DISCO_F769NI…

想查询mbed-OS支持哪些主流开发板和工具链, 可以:

mbed compile -S

如果项目目录下有os目录以及程序文件, 那么最简单的指令:

mbed compile -t ARM -m DISCO_F769NI

一般情况下, 我不喜欢把一个几百MB且零零碎碎的mbed-os复制来复制去, 所以更为科学的操作是:

mbed compile -t ARM -m DISCO_F769NI --source ./ --source ../mbed-os

如果不给定--build参数, 会在当前项目目录下创建BUILD目录, 编译+链接后的程序以.bin 形式保存其中, 你可以使用烧录工具(STM32 STLINK Utility) 进行烧录.

配置

如果编译使用的工具链比较固定的话, 可以这样设定全局参数:

mbed config -G TOOLCHAIN ARM

而对于嵌入式程序而言, 不同的项目可能会被烧录到不同的板子上, 你可以设定针对项目的配置文件:

mbed config TARGET DISCO_F769NI

更多配置可以参考Mbed CLI Configuration options

引用

[1] An introduction to Arm Mbed OS 5

[2] Developing: Mbed CLI

[3] Arm Mbed tools->Arm Mbed Online Compiler

发布了3 篇原创文章 · 获赞 2 · 访问量 302

猜你喜欢

转载自blog.csdn.net/aldfaaa/article/details/104074902