深入剖析 新的mbed操作系统专门针对Cortex-M芯片家族所设计,也就是ARM公司的32位单片机核心系列。此类芯片的售价仅为每块五到十美元,性能 由低到高依次有M0、M4以及M7等方案供用户选择。这套mbed操作系统所使用的并非像运行在iPhone 6 ARM加密协处理器上的L4微核心、多款汽车仪表板所采用的QNX或者无处不在的ARM GNU/Linux以及uClinux那种移植版内核。 根据我们掌握的情况,这款全新操作系统采用ARM代码,此外再加上由硬件制造厂商以及mbed社区所提供的驱动程序以及源代码。与大家对于单片机操 作系统的一贯认知相同,mbed操作系统非常小巧、完全可以通过Cortex-M系统芯片实现运行效果。一套典型的M0以上封装方案所存在的闪存存储容量 通常在8KB到128KB之间,而内存则最高为16KB,其时钟速率则最高为48MHz; 常见或者增强版M4系统芯片的时钟速率则最高为180MHz,并包含32KB到2MB闪存以及最高256KB SRAM。我们可以砍,mbed操作系统在设计上完全符合目标设备所提供的闪存容量水平。 这套操作系统是由事件驱动而非典型的实时型方案,ARM公司物联网技术营销事务负责人Zach Shelby告诉我们。换句话来说,这并不是一套复杂的、将处理器根据时间段加以拆分的先占式多任务内核; 其中不存在背景状态切换或者定时器截止机制。相反,mbed操作系统将始终处于休眠状态,直到来自传感器或者其它周边设备将其唤醒,这时它才开始运作并处 理相应事件、决定是否触发上层堆栈组件、最终在事件完成后再次进入休眠状态。 如果大家曾经进行过单片机层面的开发工作,那么这样的机制估计并不会让各位感到惊讶。对于此类资源受限性环境而言,这样的处理方式颇具实际意义—— 也就是说,能够起到很好的能耗削减效果。“电池续航能力可不会受到摩尔定律的引导,”Shelby指出,并提醒我们如今的移动处理器仍然受到孱弱供电能力 的严重制约。 mbed OS ... 操作系统各组件一览 上图为ARM提供的mbed操作系统分层示意; 基本上,作为一位开发人员,大家需要关注的只有最上端的蓝色区块,也就是应用程序与库。其余部分则构成了mbed Device Server,这部分内容主要是对底层软件与iOS及Android应用程序或者其它服务的交互机制进行了抽象化总结。 对设计思路加以总结,ARM公司是希望那些利用C++、JavaScript、HTML、Swift以及其它编程语言为智能手机、平板设备以及台式 机开发应用程序的编程人员们能够将与硬件相关的所有环节隐藏在mbed堆栈当中,从而帮助他们轻松完成自己的本职工作。这些程序员用不着了解未公开寄存器 与控制代码,也没必要掌握困扰着整个系统芯片领域的占先机制; 这些工作都被mbed以抽象化方式解决了,这些零散但复杂的难题不应该成为应用程序开发者面前的阻碍。 “当今的物联网领域在很大程度上仍然处于孤立状态,而且也已经不可能转化为各类设备得以与多种不同云服务无差别对接的大同化互连体系,”ARM公司物联网业务部门总经理Krisztian Flautner指出。 mbed服务器软件分层示意图……大家的应用程序处于顶端位置 不过这一切到底是为了什么?这个问题指向的正是核心所在。事实上,如果直接要求嵌入式工程技术人员们为物联网打造出示例性传感装置以及表现出色的配 套应用程序,那么这次对话恐怕会陷入短暂但却极其尴尬的沉默当中。实际情况是,我们仍然处于“建设物联网且坚信物联网终将成为现实”的“起步阶段”。 ARM正与IBM公司携手打造智慧城市项目。这意味着市区内的路灯能够通过Wi-Fi或者蓝牙机制检测出附近有多少行人,并以此借助运行有mbed Device Server的系统来判断具体照明效果。此类机制能够更为准确、更细致地发挥运动探测器的功能。 家庭环境同样是物联网的普及重点,在这里用户可以在橱柜门上安装运动传感器,从而帮助爸爸妈妈了解自己的小宝宝有没有偷偷跑去大啖甜食——在这种情 况下,家长既可以选择利用自己的智能手机接收提醒,也可以直接将其与小朋友的平板设备对接起来。换句话来说,偷吃饼干的小孩儿就不能在自己的平板上玩游戏 了。为什么不直接把橱柜锁上呢?这个嘛,也许有时候小朋友表现很出色,这样家长就能更灵活地加以控制、在适当时将甜食作为奖励。 |