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