嵌入式开发环境和硬件平台调研报告Word文件下载.docx
《嵌入式开发环境和硬件平台调研报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《嵌入式开发环境和硬件平台调研报告Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
为适应未来发展,选择了arm核的32位嵌入式MCU,核心是基于精简指令集(RSIC)的ARM系列,现在主要是ARM的cortex-M系列芯片。
软硬件环境相互关联,首先是硬件决定软件,软件开发的难易程度,技术支持度又反过来决定具体的硬件。
当然本次选型中主要集中在了arm系列的软硬件环境,这是由于现在最多的嵌入式开发都集中在ARM上。
我们人手一部的手机,工业控制mcu短短几年也被arm占去很大一块市场。
知名的半导体厂商NXP也提出今后其全面转向arm市场。
一、下面先介绍软件开发环境:
开发环境调研找了很多,有arduino,mbed,cocoon,keil,air,各半导体厂商自己的IDE,各家都有优点。
最终确定以mbed和STM32cubemx两个环境交互使用(两个环境代码基本通用),当需要跑仿真和分析时用KEIL。
这样确保了无论在何种情况下都能够将工程不停顿的进行下去。
下面将选型中几个很有特色的开发环境一一列出,除了arduino,它们有个共同特点,都支持大多数半导体厂商的ARMcortex-M系列芯片。
还有个小强,叫:
arduino,无硬件基础的人能够快速上手。
1、Arduino:
Arduino是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的Arduino板)和软件(ArduinoIDE)。
硬件部分是能够用来做电路连接的Arduino电路板,MCU是爱特梅尔公司的8位51单片机(近些年也出了3款arm核的开发板);
另外一个则是ArduinoIDE。
编程语言:
C/C++。
中文官网:
平台特点:
可在Windows、MacintoshOSX、Linux三大主流操作系统上运行。
简单清晰:
ArduinoIDE基于processingIDE开发。
对于初学者来说,极易掌握,同时有着足够的灵活性。
Arduino语言不需要太多的单片机基础、编程基础。
开放性:
Arduino的硬件原理图、电路图、IDE软件及核心库文件都是开源的,在开源协议范围内里能够任意修改原始设计及相应代码。
发展迅速:
Arduino不但仅是全球最流行的开源硬件,也是一个优秀的硬件开发平台,更是硬件开发的趋势。
Arduino简单的开发方式使得开发者更关注创意与实现,更快的完成自己的项目开发,大大节约了学习的成本,缩短了开发的周期。
仅仅凭借十几款8位51核的mcu和开源的软硬件环境在短短十年,从无到有风靡全球,最大的优势在于庞大的库资源,能够减少大量在硬件上花费的精力,使其开发周期能够很短,开发难度很低。
近些年arduino已经开始应用到无人机,3D打印机,可穿戴设备。
可是其选型中对功耗的考虑较少,导致可穿戴设备只能测试,不能用于实际工程。
内存不足,导致很多高端应用无法展开。
其高端mcu(ARM核)arduinoDUE的板子上市晚(底上市),支持力度不足。
使其在高端开发上受阻。
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公司原来由两家私人公司联合运营,分别是德国慕尼黑的KeilElektronikGmbH和美国德克萨斯的KeilSoftwareInc。
Keil公司在被ARM公司收购。
ARM现在有针正确开发环境MDK-ARM软件,为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。
MDK-ARM专为微控制器应用而设计,不但易学易用,而且功能强大,能够满足大多数苛刻的嵌入式应用。
是各类MCU开发最基础最常见的开发环境,基本上所有MCU都能够在此环境中进行开发,在朝库调用的方式精简开发。
KeilMDK功能特点
∙完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。
∙行业领先的ARMC/C++编译工具链
∙确定的KeilRTX,小封装实时操作系统(带源码)
∙μVision4IDE集成开发环境,调试器和仿真环境
∙TCP/IP网络套件提供多种的协议和各种应用
∙提供带标准驱动类的USB设备和USB主机栈
∙为带图形用户接口的嵌入式系统提供了完善的GUI库支持
∙ULINKpro可实时分析运行中的应用程序,且能记录Cortex-M指令的每一次执行
∙关于程序运行的完整代码覆盖率信息
∙执行分析工具和性能分析器可使程序得到最优化
∙大量的项目例程帮助你快速熟悉MDK-ARM强大的内置特征
∙符合CMSIS(Cortex微控制器软件接口标准)
缺点:
就是要收费(单机6~10万),开发方式还是一开始的命令行方式和寄存器操作方式。
4、IAR
systemsIAREmbeddedWorkbench是瑞典IARSystems公司为微处理器开发的一个集成开发环境(下面简称IAREW),支持ARM,AVR,MSP430等芯片内核平台。
EWARM中包含一个全软件的模拟程序(simulator)。
用户不需要任何硬件支持就能够模拟各种ARM内核、外部设备甚至中断的软件运行环境。
从中能够了解和评估IAREWARM的功能和使用方法。
其比较好的是其编译器比较高效。
其它基本上与keil类似。
IAREWARM的主要特点如下[3]:
1、高度优化的IARARMC/C++Compiler
2、IARARMAssembler
3、一个通用的IARXLINKLinker
4、IARXAR和XLIB建库程序和IARDLIBC/C++运行库
5、功能强大的编辑器
6、项目管理器
7、命令行实用程序
8、IARC-SPY调试器(先进的高级语言调试器)
5、Coocex:
CooCox品牌名称的含义是CooperateonCortex。
自成立之日起,CooCox团队就一直致力于为用户提供免费和开源的ARM开发工具,专注于ARMCortexM系列的开发。
当前CooCox工具已支持大部分主流CortexM4,M3,M0和M0+芯片。
CooCox包含一套完整的开发工具:
CooCox工具链
CoIDE——基于Eclipse和GCC的全功能集成开发环境(IDE),傻瓜组态式编程软件|免费;
CoFlash——独立的Flash编程软件|免费;
CoSmart——图形化智能管脚配置和代码生成工具|免费;
CoAssistant——寄存器助手,有在线版本和CoIDE集成版本|免费;
CoX——基于ARMCortexMCU的统一外设接口|免费和开源(Github开源项目);
Colink——JTAG调试器|硬件开源;
CoLinkEx——SW/JTAG调试器|硬件开源;
CoMDKPlugin——支持各类调试器的MDK插件|免费;
CoOS——嵌入式实时操作系统(RTOS)|免费和开源
除免费的开发工具外,CooCox经过论坛或邮件,还提供在线的技术支持。
,用户可方便地向CooCox提出问题和建议。
CooCox把所有的启动代码、外围库、驱动、OS等抽象为一个个组件(components),再搭配相应的例程(examples)。
事实上,从广义上讲,包括例程在内的所有可复用的源代码均可称为组件。
这样一来就大大简化和加速了开发,让嵌入式开发如同“搭积木”一般简单。
CooCox正在打造一个汇聚全球行业专家、业余爱好者、半导体厂商的平台。
平台不但可供自由交流分享,还要集中丰富的可复用源码及文档资源。
6、stm32cubemx
类似于arduino和mbed的初始化开发环境stm32cubemx,
编译还是到stm32自己的TrueSTUDIO或者keil、IAR中编译、下载到芯片中。
据意法自己网站宣传,将会把stm32cube应用到所有的stm32项目中去。
这个软件只能够对意法自己的芯片操作。
7、赛普拉斯的PSOCCreator3.3:
其能够将大多数的程序用图形化编程完成,用户需要的特有流程需要经过代码或逻辑流程来实现。
功能还是比较强大,可是这个软件只能够对赛普拉斯自己的芯片操作。
以上这些开发环境自成体系,各有优缺点,keil和IAR偏向底层开发,历史悠久,开发比较繁琐,周期相对会长一些,属于收费软件,技术支持会好一些。
cooked、stm32cubemx和赛普拉斯的PSOCCreator3.3属于免费软件,都有像图形化编程发展的趋势,图形化软件开发会大量缩短开发周期,也相对直观很多。
可是由于是免费版的,其技术支持度和版本更新速度不是很快。
有时碰到技术问题可能无法及时解决。
Mbed也是一个相对非常类似于ArduinoIDE的一种开发环境,两者的共同特点是软硬件都免费开源,软件开发形式类似,都是代码编程,有非常简练,清晰直观的指令。
Arduino的IDE环境能够在本地进行,Mbed是来自ARM公司的基于互联网的编译环境。
两个都不能进行在线调试,只有经过其它的办法解决,mbed能够导入keil或IAR等软件,arduino经过其它软件例如VirtualBreadboard(VBB),SimulatorforArduino调试。
二、硬件:
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数字信号处理能力,和1M的flash。
它能够广泛的用于物联网设备,手持机,无人机飞控,数字信号算法,低功耗设备应用。
这将为今后优化浇灌中温湿度算法,充放电节能功耗优化,在系统中增加微型操作系统,给后期开发带来的开发带来很多便利。