资源描述
嵌入式开发环境和硬件平台调研汇报
调研关键目标:
软件:
l 找到一款适合以后发展嵌入式软件开发平台,此平台适合大多数嵌入式硬件开发;
l 满足主流应用开发(比如物联网应用,手持机开发,各类接口,通讯协议,常见器件等)。
l 开发周期短。
IDC估计,到,ARM在嵌入式处理器市场份额将提升至68%,高于60%。由此看出未来嵌入式将进入ARM时代。考虑到了未来发展,硬件上采取是32位arm关键MCU处理器。这么就围绕着arm来确定开发软件环境。首先说说arduino,紧接着是MBED,其次是Keil和IAR,再是coocex,最终是各个厂家自己arm开发环境。
硬件:
l 选择需要满足以后若干年(10~20年)不会落后,含有优异前瞻性技术。
l 产品性能稳定可靠,功耗要低。
l 应用前景广泛,各类硬件接口丰富。
l 开发周期短。
l 技术支持力度强。主流厂商,销量大,技术支持好(案例多)产品生态链全。为适应未来发展,选择了arm核32位嵌入式MCU,关键是基于精简指令集(RSIC)ARM系列,现在关键是ARMcortex-M系列芯片。
软硬件环境相互关联,首先是硬件决定软件,软件开发难易程度,技术支持度又反过来决定具体硬件。
当然此次选型中关键集中在了arm系列软硬件环境,这是因为现在最多嵌入式开发全部集中在ARM上。我们人手一部手机,工业控制mcu短短几年也被arm占去很大一块市场。著名半导体厂商NXP也提出以后其全方面转向arm市场。
一、 下面先介绍软件开发环境:
开发环境调研找了很多,有arduino,mbed,cocoon, keil,air,各半导体厂商自己IDE,各家全部有优点。最终确定以mbed和STM32 cube mx两个环境交互使用(两个环境代码基础通用),当需要跑仿真和分析时用KEIL。这么确保了不管在何种情况下全部能够将工程不停顿进行下去。下面将选型中多个很有特色开发环境一一列出,除了arduino,它们有个共同特点,全部支持大多数半导体厂商ARM cortex-M系列芯片。还有个小强,叫:arduino,无硬件基础人能够快速上手。
1、 Arduino :
Arduino是一款便捷灵活、方便上手开源电子原型平台,包含硬件(多种型号Arduino板)和软件(Arduino IDE)。Arduino是一款便捷灵活、方便上手开源电子原型平台,包含硬件(多种型号Arduino板)和软件(Arduino IDE)。硬件部分是能够用来做电路连接Arduino电路板,MCU是爱特梅尔企业8位51单片机(近些年也出了3款arm核开发板);另外一个则是Arduino IDE。编程语言:C/C++ 。汉字官网:
平台特点:可在Windows、Macintosh OSX、Linux三大主流操作系统上运行。
简单清楚:Arduino IDE基于processing IDE开发。对于初学者来说,极易掌握,同时有着足够灵活性。Arduino语言不需要太多单片机基础、编程基础。
开放性:Arduino硬件原理图、电路图、IDE软件及关键库文件全部是开源,在开源协议范围内里能够任意修改原始设计及对应代码。
发展快速:Arduino不仅仅是全球最流行开源硬件,也是一个优异硬件开发平台,更是硬件开发趋势。Arduino简单开发方法使得开发者更关注创意和实现,愈加快完成自己项目开发,大大节省了学习成本,缩短了开发周期。仅仅凭借十几款8位51核mcu和开源软硬件环境在短短十年,从无到有风靡全球,最大优势在于庞大库资源,能够降低大量在硬件上花费精力,使其开发周期能够很短,开发难度很低。近些年arduino已经开始应用到无人机,3D打印机,可穿戴设备。
不过其选型中对功耗考虑较少,造成可穿戴设备只能测试,不能用于实际工程。内存不足,造成很多高端应用无法展开。其高端mcu(ARM核)arduino DUE板子上市晚(底上市),支持力度不足。使其在高端开发上受阻。
2、 Mbed:
arduino成功很大刺激了各大半导体厂商,这其中就有ARM企业。她自己也做了一个公用开发平台,在上线了MBED。其基础上完全效仿了arduino开发形式,即简短精炼开发语句,最少包含硬件,mbed还把很多和硬件相关程序使用中间件进行封装,这使得操作硬件无须再特意关心底层驱动,开发者只需要调用友好接口就能够。开发资源首先由厂商提供,扩充由开发者共享到网上。在web平台上建立论坛讨论。全部软硬件资源开源。现在已经有近20家半导体厂商提供了自己mbed开发板。
下面是arm企业mbed网站自己对mbed定义:
使用 mbed 能够开发什么?
首先,您能够很快速地设计项目原型。mbed 操作系统可为您处理和硬件通信繁琐工作,而且不特定于板。这就意味着,您在 mbed 操作系统上编写代码可在任何板上运行,所以您能够试用不一样板而无需重新编写代码。为深入帮助您进行原型设计和测试,mbed 不仅提供了操作系统,还提供了和云进行交互方法、编程环境、调试接口和测试工具。
其次,您无需切换 mbed 工具即可将原型转化为产品。mbed 工具包含设备端安全,云连接(包含负载平衡、服务器安全和多个通信协议),和其它开发人员服务。
mbed是一个面向ARM处理器原型开发平台,它具体包含无偿软件库(SDK),硬件参考设计(HDK)和在线工具(Web)三部分内容,各个部分具体介绍以下:
SDK:mbed设计了一个硬件抽象层,从而屏蔽了不一样mcu厂商提供了微处理之间差异,对于用户来说,她只需要和这个硬件抽象层打交道即可,也就是说,用户基于mbed开发应用能够很方便地更换使用不一样厂商arm微处理器,从而留给用户更多选择。
HDK:HDK是mbed提供硬件参考设计,它是面向用户开发设计,所以HDK提供了统一了程序上载接口,单步调试接口,串口调试接口,用户无需购置其它硬件就能够开始软件开发工作。
WEB:为了省去用户开发环境安装麻烦,mbed提供了一个完备基于浏览器微处理器软件开发环境,包含代码编写,程序编译,版本控制等功效,用户只要上网就能够开发,编译结果只要下载保留到mbed开发板上即可工作,很方便。
3、 Keil软件:
1、 Keil企业原来由两家私人企业联合运行,分别是德国慕尼黑Keil Elektronik GmbH和美国德克萨斯Keil Software Inc。Keil企业在被ARM企业收购。ARM现在有针正确开发环境MDK-ARM软件,为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整开发环境。MDK-ARM专为微控制器应用而设计,不仅易学易用,而且功效强大,能够满足大多数苛刻嵌入式应用。是各类MCU开发最基础最常见开发环境,基础上全部MCU全部能够在此环境中进行开发,在朝库调用方法精简开发。
Keil MDK功效特点
· 完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。
· 行业领先ARM C/C++编译工具链
· 确定Keil RTX ,小封装实时操作系统(带源码)
· μVision4 IDE集成开发环境,调试器和仿真环境
· TCP/IP网络套件提供多个协议和多种应用
· 提供带标准驱动类USB 设备和USB 主机栈
· 为带图形用户接口嵌入式系统提供了完善GUI库支持
· ULINKpro可实时分析运行中应用程序,且能统计Cortex-M指令每一次实施
· 相关程序运行完整代码覆盖率信息
· 实施分析工具和性能分析器可使程序得到最优化
· 大量项目例程帮助你快速熟悉MDK-ARM强大内置特征
· 符合CMSIS (Cortex微控制器软件接口标准)
缺点:就是要收费(单机6~10万),开发方法还是一开始命令行方法和寄存器操作方法。
4、 IAR
systemsIAR Embedded Workbench 是瑞典 IAR Systems 企业为 微处理器开发一个集成开发环境(下面简称IAR EW),支持ARM,AVR,MSP430等芯片内核平台。EWARM 中包含一个全软件模拟程序(simulator)。用户不需要任何硬件支持就能够模拟多种ARM 内核、外部设备甚至中止软件运行环境。从中能够了解和评定IAR EWARM 功效和使用方法。其比很好是其编译器比较高效。其它基础上和keil类似。
IAR EWARM 关键特点以下[3] :
1、高度优化IAR ARM C/C++ Compiler
2、IAR ARM Assembler
3、一个通用IAR XLINK Linker
4、IAR XAR 和XLIB 建库程序和IAR DLIB C/C++运行库
5、功效强大编辑器
6、项目管理器
7、命令行实用程序
8、IAR C-SPY 调试器(优异高级语言调试器)
5、 Coocex:
CooCox品牌名称含义是Cooperate on Cortex。
自成立之日起,CooCox团体就一直致力于为用户提供无偿和开源ARM开发工具,专注于ARM Cortex M系列开发。现在CooCox工具已支持大部分主流Cortex M4,M3,M0和M0+芯片。
CooCox包含一套完整开发工具:
CooCox工具链
CoIDE——基于Eclipse和GCC全功效集成开发环境(IDE),傻瓜组态式编程软件 | 无偿;
CoFlash——独立Flash编程软件 |无偿;
CoSmart——图形化智能管脚配置和代码生成工具 | 无偿;
CoAssistant——寄存器助手,有在线版本和CoIDE集成版本 | 无偿;
CoX——基于ARMCortex MCU统一外设接口 | 无偿和开源(Github开源项目);
Colink——JTAG调试器 | 硬件开源;
CoLinkEx——SW /JTAG调试器 | 硬件开源;
CoMDKPlugin——支持各类调试器MDK插件 | 无偿;
CoOS——嵌入式实时操作系统(RTOS) | 无偿和开源
除无偿开发工具外,CooCox经过论坛或邮件,还提供在线技术支持。,用户可方便地向CooCox提出问题和提议。
CooCox把全部开启代码、外围库、驱动、OS等抽象为一个个组件(components),再搭配对应例程(examples)。实际上,从广义上讲,包含例程在内全部可复用源代码均可称为组件。
这么一来就大大简化和加速了开发,让嵌入式开发如同“搭积木”通常简单。
CooCox正在打造一个汇聚全球行业教授、业余爱好者、半导体厂商平台。平台不仅可供自由交流分享,还要集中丰富可复用源码及文档资源。
6、 stm32cubemx
类似于arduino和mbed初始化开发环境stm32cubemx,
编译还是到stm32自己True STUDIO或keil 、IAR中编译、下载到芯片中。据意法自己网站宣传,将会把stm32cube应用到全部stm32项目中去。这个软件只能够对意法自己芯片操作。
7、 赛普拉斯PSOC Creator3.3:
其能够将大多数程序用图形化编程完成,用户需要特有步骤需要经过代码或逻辑步骤来实现。功效还是比较强大,不过这个软件只能够对赛普拉斯自己芯片操作。
以上这些开发环境自成体系,各有优缺点,keil和IAR偏向底层开发,历史悠久,开发比较繁琐,周期相对会长部分,属于收费软件,技术支持会好部分。cooked 、stm32cubemx和赛普拉斯PSOC Creator3.3属于无偿软件,全部有像图形化编程发展趋势,图形化软件开发会大量缩短开发周期,也相对直观很多。不过因为是无偿版,其技术支持度和版本更新速度不是很快。有时碰到技术问题可能无法立即处理。Mbed也是一个相对很类似于ArduinoIDE一个开发环境,二者共同特点是软硬件全部无偿开源,软件开发形式类似,全部是代码编程,有很简练,清楚直观指令。ArduinoIDE环境能够在当地进行,Mbed是来自ARM企业基于互联网编译环境。两个全部不能进行在线调试,只有经过其它措施处理,mbed能够导入keil或IAR等软件,arduino经过其它软件比如Virtual Breadboard (VBB),Simulator for Arduino调试。
二、 硬件:
1、 首先就是产品生态链全,比如高中低端芯片全部有,各类接口丰富。
2、 arm主流用于嵌入式32位机CORTEX—M0~M4芯片高低速全部有。
3、 市场拥有率高,库资源多,技术支持有力。
这么厂商关键有飞思卡尔,意法,恩智浦,艾特梅尔,三星,美国国家半导体等等。在以上软件环境中这些半导体厂商支持或针对其开发有:
Mbed(arm)
keil
IAR
coocex(arm)
Arduino
飞思卡尔
7种开发板
√
√
√
1
意法
25种开发板
√
√
√
2
恩智浦
22种开发板
√
√
√
艾特梅尔
4种开发板
√
√
√
15
三星
√
√
√
美国国家半导体
√
√
√
德州仪器
√
√
√
由此找到了arm核mcu销量最大(市场拥有率45%,10亿颗)半导体厂商意法stm32系列芯片;其在世界和中国应用全部很广泛,能够参考例程也最丰富。
意法针对mbed定制了25款开发板,基础上涵盖了cortex-m0~m7各系列。其编译和仿真环境能够是keil和air,或是SW4stm32(意法自己编译环境)。这次选择两款芯片全部含有低功耗模式。
尤其是stm32l476,采取了意法自己专利低功耗技术,取得极低功耗表现。这款芯片属于CORTEX-M4系列,含有DSP数字信号处理能力,和1Mflash。它能够广泛用于物联网设备,手持机,无人机飞控,数字信号算法,低功耗设备应用。这将为以后优化浇灌中温湿度算法,充放电节能功耗优化,在系统中增加微型操作系统,给后期开发带来开发带来很多便利。
展开阅读全文