嵌入式开发环境和硬件平台调研报告.docx
《嵌入式开发环境和硬件平台调研报告.docx》由会员分享,可在线阅读,更多相关《嵌入式开发环境和硬件平台调研报告.docx(9页珍藏版)》请在冰豆网上搜索。
嵌入式开发环境和硬件平台调研报告
嵌入式开发环境和硬件平台调研报告
LT
嵌入式开发环境和硬件平台调研报告
调研的主要目标:
软件:
●找到一款适合今后发展的嵌入式软件开发平台,此平台适合大多数嵌入式硬件开发;
●满足主流应用开发(例如物联网应用,手持机开发,各类接口,通讯协议,常用器件等)。
●开发周期短。
IDC预计,到2016年,ARM在嵌入式处理器市场的份额将提升至68%,高于2012年的60%。
由此看出未来嵌入式将进入ARM的时代。
考虑到了未来发展,硬件上采用的是32位arm核心的MCU处理器。
这样就围绕着arm来确定开发的软件环境。
首先说说arduino,紧接着是MBED,其次是Keil和IAR,再是coocex,最后是各个厂家自己的arm开发环境。
硬件:
●选择需要满足今后若干年(10~20年)不会落后,具有先进的前瞻性技术。
●产品性能稳定可靠,功耗要低。
●应用前景广泛,各类硬件接口丰富。
●开发周期短。
●技术支持力度强。
主流厂商,销量大,技术支持好(案例多)产品生态链全。
为适应未来发展,选择了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是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的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核)arduino
2、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调试器(先进的高级语言调试器)
3、Coocex:
CooCox品牌名称的含义是CooperateonCortex。
自2009年成立之日起,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正在打造一个汇聚全球行业专家、业余爱好者、半导体厂商的平台。
平台不仅可供自由交流分享,还要集中丰富的可复用源码及文档资源。
http:
//www.coocox.org
4、stm32cubemx
类似于arduino和mbed的初始化开发环境stm32cubemx,
编译还是到stm32自己的TrueSTUDIO或者keil、IAR中编译、下载到芯片中。
据意法自己网站宣传,2016年将会把stm32cube应用到所有的stm32项目中去。
这个软件只可以对意法自己的芯片操作。
5、赛普拉斯的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销量最大的(2013年市场占有率45%,2015年10亿颗)半导体厂商意法的stm32系列芯片;其在世界和国内的应用都非常广泛,可以参考的例程也最丰富。
意法针对mbed定制了25款开发板,基本上涵盖了cortex-m0~m7各系列。
其编译和仿真环境可以是keil和air,或者是SW4stm32(意法自己的编译环境)。
这次选择的两款芯片都具有低功耗模式。
特别是stm32l476,采用了意法自己专利低功耗技术,获得极低的功耗表现。
这款芯片属于CORTEX-M4系列,具备DSP数字信号处理能力,和1M的flash。
它可以广泛的用于物联网设备,手持机,无人机飞控,数字信号算法,低功耗设备应用。
这将为今后优化浇灌中温湿度算法,充放电节能功耗优化,在系统中增加微型操作系统,给后期开发带来的开发带来很多便利。