0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

ARM公司低调升级Mbed_为物联网应用做准备

电子工程师 作者:工程师陈翠 2018-06-16 12:38 次阅读

最近,ARM公司低调的发布了Mbed OS 5.1,将Mbed再次进行了升级,为今后的物联网应用做好准备。

大家知道,在嵌入式领域,现在ARM内核的芯片是主流,ARM公司将它的内核授权给其他芯片公司,制造出各种不同的MCU,如ST的STM32TI的 Sitara™ Processors、NXP的Kinetis系列和LPC系列等,几乎除了Microchip公司外,其他生产MCU的厂家都有ARM内核的芯片,包括 现在很多国产的芯片公司也开始提供ARM内核的微控制器了。

现在ARM内核的芯片非常多,不同厂家现有的型号可能有上千种,每年还在推出很多新的型号。但是开发ARM芯片不像以前的8x51那样,只要一个通用的汇 编或者Keil C51软件就可以完成开发。因为ARM芯片比51复杂太多,所以现在基本上每个厂家都为自己的芯片提供了专用的函数库,提供了芯片的底层模块驱动,方便开 发者快速进行开发。

比如,开发ATMEL的程序,一般我们使用Atmel Studio作为IDE,并使用Atmel自己的ASF( Atmel® Software Framework)进行开发,使用ASF提供了各种库函数和驱动,实现芯片的底层功能。ASF的功能很强,除了提供芯片的大部分底层模块驱动,还提供了 一些高级的应用模块(如USB),可以加快开发速度。Atmel的大部分芯片都可以使用ASF进行开发,ASF不但代码效率高,而且移植性较好,很多函数 在不同芯片中的名称和用法是一样的,这给程序的移植带来了方便。

但是现在的芯片实在太多太复杂,也各有特色,那么就有一个比较大的问题,就是大家不可能每种芯片都去学习,等学习好了在去使用。我们也很难只去使用一个厂 家的芯片,不去使用性能更好、功能更丰富,更加适合项目应用的芯片。例如因为某个项目,我们需要将STM32的程序或者NXP的程序移植到ATMEL的 MCU上,虽然它们都是ARM内核的芯片,但是因为寄存器各不相同,库函数也不相同,程序是不能简单的直接移植过来运行的。

针对这个情况,同时也是为了适应新的物联网时代的变化,ARM提供了一个全新的开发方式:MBed。Mbed包括了云服务、客户端、Mbed OS等几大部分。

对于传统的嵌入式工程师,Mbed OS是最直接有帮助的,它提供了许多有用的组件。Mbed OS是由Mbed Drivers、Mbed Online IDE、HardwareComponents、Libraries等部分组成。Mbed Drivers提供了简单易用的API,让控制器内部的各种模块起来非常简单;而Mbed Online IDE提供了一个在线开发环境,只要通过浏览器就可以开发程序,无需在计算机上安装开发软件;Hardware Components、Libraries提供了各种硬件传感器的库,使用起来比Arduino更加容易。

使用Mbed开发,可以加速和简化开发工作,降低开发难度,让复杂的底层驱动变得非常简单,同时保证了程序的可移植性,无论使用哪种芯片(需要是能够被所Mbed支持),同样的外设功能都可以使用相同的用法。

下面就简单介绍使用Mbed开发程序,并和ATMEL传统的开发方式相比。

首先我们需要到Mbed网站上注册一个账号,这样才能使用它的Online IDE(在线开发环境)和其他资源。然后在Mbed的开发平台中(https://developer.mbed.org/platforms/?pvend=42),我们可以看到已经有4种型号的芯片支持Mbed了,这也是比较有代表性的几个型号:

AT SAMR21-XPRO AT SAMW25-XPRO AT SAML21-XPRO-B AT SAMD21-XPRO

我们以AT SAMR21为例,先在Online IDE中创建一个新程序,使用BlinkyLED Hello World模块。

创建后打开主程序,可以看到如下代码:

#include“mbed.h”

DigitalOutmyled(LED1);

intmain() {

printf(“RESET”);

while(1) {

myled = 1;

wait(0.2);

myled = 0;

wait(0.2);

printf(“TEST”);

}

}

使用GPIO作为数字方式输出,只要将它定义为DigitalOut,输出高低电平直接直接将它赋值为1或0,既直观,又简洁。作为对比,在ASF的Delay例程中,是这样使用的:

#include

intmain(void)

{

system_init();

delay_init();

struct port_config pin;

port_get_config_defaults(&pin);

pin.direction = PORT_PIN_DIR_OUTPUT;

port_pin_set_config(LED0_PIN, &pin);

port_pin_set_output_level(LED0_PIN,LED0_INACTIVE);

while (true) {

for (int i = 0; i 《 5; i++) {

port_pin_toggle_output_level(LED0_PIN);

delay_s(2);

}

}

两者对比,Mbed的方式无疑更加简单方便,更适合初学者。而且Mbed的程序可以非常容易的在Mbed支持的芯片上移植,因为用法都是一样的,也就是说在 STM32、NXP、Silabs、Nordic等芯片上,都可以使用相同的代码(只是GPIO的名称不同),这样就可以极大降低了程序移植的难度。例 如:

在nordic nRF1822上:

DigitalOut myled(p18);

在STM32F030上:

DigitalOut myled(PA_5);

在KL25Z上:

DigitalOut myled(PTB18);

上面是GPIO的数字输出功能,其他功能也是类似的,如:

数字输入就是:DigitalIn

双向GPIO:DigitalInOut

总线方式输出:BusOut

端口输出:PortOut

中断输入:InterruptIn

模拟输入:AnalogIn

模拟输出:AnalogOut

PWM:PwmOut

定时器:Ticker

串口:Serial

SPI和I2C:SPI/I2C

……

简单的程序可以直接在Online IDE中开发,复杂的程序,使用Online IDE就不够方便了,这时可以将程序导出来,使用Atmel Stduio或者Keil进行开发。

注:要在SAMR21-XPRO上使用Mbed的完整功能,需要升级开发板的固件,安装最新版本的AS7,并连接开发板时,会自动更新开发板固件的。

传统嵌入式和单片机的开发,深入学习并掌握一种或数种芯片的用法后,就可以解决很多问题,完成一些项目。但是在物联网时代,芯片硬件本身将越来越被弱化, 开发者对硬件底层的关注越来越少,大家更加侧重于应用层,怎样快速实现多变的应用需求成为主要矛盾,这时传统的开发方式就不太容易满足要求,而且随着芯片 性能的提升和价格的降低,开发工具在芯片的选型时带来的影响也越来越大,各种快速便捷的开发方式将越来越多,几分钟就能开发一个应用将变为可能。

当然现在的Mbed也还不够完善,部分外设驱动还没有完成,支持的芯片种类也不够多,代码的执行效率也没有原生库函数高。但是它为程序的通用性、模块化开 发带来很多便利,为今后的图形化开发、积木式开发提供了可能。就像C语言取代汇编成为嵌入式主流开发语言一样,Mbed这样的开发方式也会逐渐成为嵌入式 开发的趋势。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    134

    文章

    8651

    浏览量

    361816
  • 物联网
    +关注

    关注

    2869

    文章

    41622

    浏览量

    358384
收藏 人收藏

    评论

    相关推荐

    ARM mbed平台再添助力 催化物联网发展

    ARM mbed平台再添新开发资源。继支援无线区域网路(Wi-Fi)、蓝牙(Bluetooth)、全球卫星定位系统(GPS)等无线通讯技术之后,ARM针对物联网(IoT)发布的开发平台
    发表于 05-05 09:18 1200次阅读

    ARM寄予厚望的mbed平台有了什么变化?

    实际上,ARM的物联网野心早已不是什么秘密,从2014年ARM推出mbed平台开始,这家IP公司就正式宣布进军物
    发表于 12-07 14:49 1418次阅读
    <b class='flag-5'>ARM</b>寄予厚望的<b class='flag-5'>mbed</b>平台有了什么变化?

    请问mbed联网操作系统会成为cortex-m中的android吗?

    mbed 联网操作系统会成为cortex-m中的android吗?
    发表于 01-17 07:14

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

    ARM®mbed OS入门开发(一)介绍篇注:个人认为mbed将底层驱动封装,是以后单片机和联网开发的主流方式,但现在教材太少,唯一的一
    发表于 10-10 09:05

    【NUCLEO-F412ZG申请】mbed的连载试用教程

    申请理由:项目描述:计划写一系列的用mbed OS进行开发的连载系列教程,mbed OS 是ARM公司大力推荐的开发工具,相比传统的标准库的开发方式具有快速高效,简单易用的特点;其开源
    发表于 10-31 15:35

    全新 ARM Cortex-M 处理器联网安全树立新一代行业标准

    全新 ARM Cortex-M 处理器联网安全树立新一代行业标准  ·这些全新的处理器让开发者能够更轻松地打造极其节能、安全且可以联网
    发表于 11-12 15:50

    跟资深技术大牛学ARM mbed操作系统开发

    与云技术公司,以及希望通过技术、工具与服务加快联网系统创建与部署创新的组件制造商、系统集成商以及原始设备制造商。mbed OS是专门基于 ARM
    发表于 05-22 10:22

    浅析Mbed Edge和联网网关

    Mbed Cloud的联网设备管理功能现已扩展,支持配置 Mbed Edge的联网网关实现设
    发表于 07-22 07:10

    主流联网操作系统的比较

    、实时性和安全的传感、连接、云端管理服务软件平台。目前联网操作系统大致可以分为两类:一类是联网而生的 OS,即针对
    发表于 09-17 09:05

    新唐ARM mbed平台

    ARM® mbed联网设备平台基于ARM微处理器,能够最短的时间创建支持商用与互操作的互联
    发表于 09-18 09:05

    ARM Artisan联网POP IP是什么?

    ;*** CryptoCell技术有助于强化安全SoC设计;采用ARM Cordio? radio IP的完整无线解决方案,支持802.15.4 和Bluetooth? 5;通过ARM mbed? Cloud,云服务能够支持
    发表于 10-23 08:21

    ARM mbed Cloud 来了!

    ARM发布了全新的物联网设备管理解决方案 mbed Cloud。mbed Cloud 能够安全而高效地简化任何物联网设备与云端的连接,让服务
    发表于 11-21 13:36 1162次阅读

    Arm推出Mbed Edge 延伸Mbed Cloud设备管理能力到物联网边缘

    2017年11月6日,中国上海——Arm宣布推出Mbed Edge,进一步拓展Mbed Cloud的设备管理能力,在边缘侧,即物联网网关上实现设备的接入、控制和管理。
    的头像 发表于 11-07 10:50 8387次阅读

    焦点芯闻丨为 IPO 做准备Arm 董事会引入高通和英特尔前高管

    热点新闻 1、为 IPO 做准备Arm 董事会引入高通和英特尔前高管 软银集团旗下芯片设计公司 Arm 已将高通前首席执行官保罗・雅各布斯(Paul Jacobs)和英特尔前高管罗斯
    的头像 发表于 12-01 19:10 659次阅读

    公用事业公司如何为 EVSE 做准备

    公用事业公司如何为 EVSE 做准备
    的头像 发表于 01-04 11:17 389次阅读