你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

转发:ARM®mbed OS入门开发(一)介绍篇  

[复制链接]
anywill 提问时间:2016-10-9 18:29 /
ARM®mbed OS入门开发(一)介绍篇2016-09-11 Summerain [url=]小白学嵌入式[/url]

注:个人认为mbed将底层驱动封装,是以后单片机和物联网开发的主流方式,但现在教材太少,
唯一的一本书还是翻译NXP的厂家文档,配合它的开发板将近500大元,不如nucleo。
对应stm32的这个系列教材是第一个,我会跟随更新,感觉好的话请支持,表扬!

为尊重原著,本系列文章未经过任何改动

关于IoT OS和mbed OS】
物联网操作系统的概念,最先来自于无线传感器操作系统,知名的有TinyOS 和Contiki,Tiny OS是专为嵌入式无线传感网络设计开发的开放源代码操作系统,,目标是低功耗无线设备。Contiki 是一个适用于有内存的嵌入式系统的开源的、高可移植的、支持网络的多任务操作系统。与传统的嵌入式设备相比,物联网感知层的设备更小、功耗更低,而且需要较高的安全性和组网能力,物联网通信层需要支持各种通信协议和协议之间的转换,应用层则需要具备云计算能力。在软件方面,支撑物联网设备的软件比传统的嵌入式设备软件更加复杂。于是就有了物联网操作系统IoT OS。说的简单一些,IoT OS就是具备物联网需求的嵌入式操作系统。从2014年至今,许多IoT领域里的玩家都陆续推出了支持不同厂商的mcu设备的IoT OS,比如ARM mbed OS,Windows 10 IoT Core,Linux-Foundation Zephyr project和Google OS Fuchsia等。

mbed OS, 是ARM推出针对给所有Cortex-M设备使用的,一种专为物联网 (IoT) 中的“物体”设计的开源嵌入式操作系统。mbed OS屏蔽了不同mcu厂商提供了微处理之间的差异(通过CortexM--CMSIS框架),对于用户来说,只需要和API打交道即可,也就是说,用户基于mbed开发的应用可以很方便地更换使用不同厂商的arm微处理器。当然,这里还是仅限于支持mbed的处理器,也就是mbed enabled boards。
08d5aa0.jpg

CMSIS框架

【mbed OS API 给开发者提供的功能】
1. Hardware inputs and outputs: analog, digital, bus, port, PwmOut and interrupts.
2. Digital interfaces and USB: serial, SPI, I2C, CAN and USB.
3. Networking and communication: network stack, BLE, Ethernet, WiFi and radio.
4. Device and networking security: mbed uVisor and mbed TLS.
5. Task management: timers and RTOS(基于CMSIS-RTOS API).

【mbed 提供的在线开发工具online IDE
ARM为mbed OS开发者提供一套基于云计算的在线网页编译工具,可以在Windows、Linux、Mac等各种可以网页浏览的设备上进行编程。所以不需要安装调试工具,只要选好指定的开发板,就立即可以进行编程,编译后直接生成一个bin文件,直接烧写到设备即可运行。
其主要功能如下:
(1)代码编辑,包括语法高亮显示,快捷键,撤消/重做,剪切/复制/粘贴,标签,块/行注释,代码格式化等;
(2)版本控制,包括代码提交,对比,回溯,分支和合并等功能;
(3)代码导入,支持用户导入各种mBed库及应用程序用于修改开发;
(4)代码编译,在线工具默认使用ARM RVDS 进行编译,用户可以支持查看编译后flash和ram的使用情况,其编译后的二进制在使用上没有任何显示;
(5)导出代码,用户可以把在线工程导出到各类离线编译工具,包括Keil,GCC,IAR等,在导出文件中,mBed库是作为二进制文件提供的,用户代码则还是源代码方式。
缺点:不具备Debug功能,不能离线编辑。可以使用Command Line Tool(mbed CLI)或者第三方IDE。虽然不能使用在线IDE进行Debug, 但是由于支持第三方IDE,我通常将项目导出为µVision5工具链,使用Keil_uVision5打开和调试程序。

【mbed library的层次结构】



其中对应在代码目录里有:
1. 三个与MCU无关层(MCU independent directories):
mbed/api: 包含定义了实际的mbed library API的头文件
mbed/common: 源文件(mbed common sources)
mbed/hal: 包含了目标MCU需要实现的硬件抽象层接口(HAL API)
2. 两个与MCU相关层(MCU dependent directories):
mbed/targets/hal: 针对不同MCU,实现HAL接口
mbed/targets/cmsis: CMSIS-CORE 源文件

【mbed OS分层结构】
f8bcb2d.jpg


mbed OS分层结构
上图是mbed OS的分层结构,我认为不必要过多的解读它的结构,主要是我们可以看到mbed OS所提供的具有物联网需求的功能和协议,包括6LoWPAN,Web 传输受限制的应用协议(CoAP) 和超文本传输协议 (HTTP),用于机器对机器 (M2M) 连接的消息队列遥测传输 (MQTT),密码协议传输层安全协议 (TLS) ,数据包传输层安全性协议 (DTLS),开放移动联盟轻量级 M2M (OMALWM2M) 标准。开发人员的工作量将会大量减轻,从而可以专注于编写尤其适用于 mbed OS 内核顶层的安全和通信协议的代码。


收藏 2 评论23 发布时间:2016-10-9 18:29

举报

23个回答
单片机爱好者 回答时间:2020-6-24 20:02:04
需要一个STM32F103C8T6  离线keil可以编译的工程,,,自己导出来的编译错误一大堆。。。。
埃斯提爱慕 回答时间:2016-10-10 18:11:41
提示: 作者被禁止或删除 内容自动屏蔽
小山小山 回答时间:2018-6-26 17:03:06
感觉不错,有没有讲内核相关的资料。
zengyi703-16313 回答时间:2016-10-10 08:13:16
不错的教程
高二毛 回答时间:2016-10-10 08:37:18
持续跟踪,学习。谢谢分享。
lisingch 回答时间:2016-10-10 08:52:43
不错,收藏了。
stary666 回答时间:2016-10-10 09:06:11
顶一下,,,,,,,
slotg 回答时间:2016-10-10 09:41:29
很不错的帖子,感谢分享。
xyx365 回答时间:2016-10-10 10:53:43
不错的教程
Xinfeng 回答时间:2016-10-11 08:44:58
正在了解mbed,顶。
andypanfan 回答时间:2016-10-23 00:08:32
黑皮男 回答时间:2016-10-25 11:51:20
非常好的教程
cuyebiren 回答时间:2016-10-25 12:25:41
表示没接触过,谢谢科普
zbber 回答时间:2016-10-25 12:41:17
很不错的帖子,感谢分享
adlu 回答时间:2016-10-25 16:55:37
支持!!!
52mcu 回答时间:2016-11-19 12:02:35
相当不错,赞
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版