请选择 进入手机版 | 继续访问电脑版

12360技术网 - 专业IT技术发表平台

 立即注册  找回密码
查看: 109|回复: 5

ARM Mbed OS 5.15 + Mbed CLI 搭建实战

[复制链接]

18

主题

30

帖子

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2020-1-26 11:13:58 | 显示全部楼层 |阅读模式
ARM Mbed OS 5.15 + Mbed CLI 搭建实战


为什么选用ARM Mbed OS?

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

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

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

  • IAR, uARM. 不大了解. 望读者补充
分别使用ARM Compiler V6.13.1和GCC_ARM编译器,对mbed-os-example-blinky项目进行编译,对比如下:
ARM Compiler V6.13.1GCC_ARM编译时长≤\leq≤ 7min≤\leq≤ 12min.bin大小52KB62KB警告数2453注意, 使用旧版编译器(6.11以下)会出现数个链接警告, 烧录后无法正常运行! 主要表现为线程延时不准确, 程序莫名中断等等诡异现象.
Mbed CLI

这是一个使用Python开发的Command line Interface, 集合了项目管理, 远程库导入, 导出IDE项目文件, 使用外部工具链编译Mbed OS项目的辅助工具.
可以粗略地说, 它是一个Git的超集.
项目导入
  1. mbed new .或mbed import https://github.com/ARMmbed/mbed-os-example-blinky.git
复制代码
注意后者会把mbed-os项目导入, 如果你已经下载了os, 这是不必要.
你可以使用git直接clone, 或者查询具体参数, 通用帮助格式:
  1. mbed import -h
复制代码
导出到IDE
  1. mbed export -i IDE -t BOARDmbed export -S //查询支持的IDE和board
复制代码
MDK-SDK 开发者需要注意, 对于OS V5.15, IDE需要选择uvision6才可以哦.
编译

首先, 你要配置工具链的路径.
  1. 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支持哪些主流开发板和工具链, 可以:
  1. mbed compile -S
复制代码
如果项目目录下有os目录以及程序文件, 那么最简单的指令:
  1. mbed compile -t ARM -m DISCO_F769NI
复制代码
一般情况下, 我不喜欢把一个几百MB且零零碎碎的mbed-os复制来复制去, 所以更为科学的操作是:
  1. mbed compile -t ARM -m DISCO_F769NI --source ./ --source ../mbed-os
复制代码
如果不给定--build参数, 会在当前项目目录下创建BUILD目录, 编译+链接后的程序以.bin 形式保存其中, 你可以使用烧录工具(STM32 STLINK Utility) 进行烧录.
配置

如果编译使用的工具链比较固定的话, 可以这样设定全局参数:
  1. mbed config -G TOOLCHAIN ARM
复制代码
而对于嵌入式程序而言, 不同的项目可能会被烧录到不同的板子上, 你可以设定针对项目的配置文件:
  1. 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
                                                                                                                                       
                                                    
  • 点赞                        
  • 收藏                        
  • 分享                                                                                                                        
  •                                                         
                                      
    • 文章举报                           
                                                
                                                站内首发文章                                                        
                                            
                                                        繁林GG                                                                发布了3 篇原创文章 · 获赞 2 · 访问量 363                                                                                            私信                                                            关注
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




上一篇:shell | LiteOS 物联网操作系统中的 shell 组件使用分享
下一篇:unix socket文件(.sock)文件,用于服务器内部进程通信
回复

使用道具 举报

0

主题

12

帖子

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2020-2-3 11:54:21 | 显示全部楼层
感谢楼主的无私分享![www.12360.co]
回复

使用道具 举报

0

主题

15

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
发表于 2020-2-6 13:36:43 | 显示全部楼层
楼主太厉害了!楼主,I*老*虎*U![www.12360.co]
回复

使用道具 举报

0

主题

12

帖子

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2020-2-11 00:42:15 | 显示全部楼层
楼主发贴辛苦了,谢谢楼主分享![www.12360.co]
回复

使用道具 举报

0

主题

15

帖子

325

积分

中级会员

Rank: 3Rank: 3

积分
325
发表于 2020-2-21 13:39:30 | 显示全部楼层
楼主,大恩不言谢了![www.12360.co]
回复

使用道具 举报

0

主题

12

帖子

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 5 天前 | 显示全部楼层
这东西我收了!谢谢楼主![www.12360.co]
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

12360技术网

GMT+8, 2020-2-29 15:24 , Processed in 0.094246 second(s), 25 queries .

本网站内容收集于互联网,Www.12360.Co不承担任何由于内容的合法性及健康性所引起的争议和法律责任。 欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。

© 2019-2020 Www.12360.Co

快速回复 返回顶部 返回列表