转发:ARM®mbed OS入门开发(一)介绍篇
ARM®mbed OS入门开发(一)介绍篇2016-09-11 Summerain 小白学嵌入式注:个人认为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。
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分层结构】
mbed OS分层结构
上图是mbed OS的分层结构,我认为不必要过多的解读它的结构,主要是我们可以看到mbed OS所提供的具有物联网需求的功能和协议,包括6LoWPAN,Web 传输受限制的应用协议(CoAP) 和超文本传输协议 (HTTP),用于机器对机器 (M2M) 连接的消息队列遥测传输 (MQTT),密码协议传输层安全协议 (TLS) ,数据包传输层安全性协议 (DTLS),开放移动联盟轻量级 M2M (OMALWM2M) 标准。开发人员的工作量将会大量减轻,从而可以专注于编写尤其适用于 mbed OS 内核顶层的安全和通信协议的代码。
需要一个STM32F103C8T6离线keil可以编译的工程,,,自己导出来的编译错误一大堆。。。。 感觉不错,有没有讲内核相关的资料。 不错的教程 持续跟踪,学习。谢谢分享。 不错,收藏了。 顶一下,,,,,,, 很不错的帖子,感谢分享。 不错的教程 正在了解mbed,顶。 :):):):):):) 非常好的教程 表示没接触过,谢谢科普 很不错的帖子,感谢分享 支持!!! 相当不错,赞
页:
[1]
2