0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

板级支持包给提嵌入式开发供软件功能选择

电子设计 来源:郭婷 作者:电子设计 2019-03-22 08:48 次阅读

克服嵌入式开发的障碍

已经创建了许多开发人员工具和支持的硬件和软件产品,以帮助最大限度地降低嵌入式开发风险,加快从小型消费设备到高性能等各种产品的上市时间工业控制和遥感设备。即使入门也是一个挑战,因为软件开发取决于硬件是否准备就绪。后续集成受到硬件和软件之间的许多相互依赖性的影响,从设备驱动程序,适配层和OS内核向上到应用程序接口(API)和应用程序本身。虽然必须面对这些问题,但开发团队通常希望将他们的资源集中在应用程序级别,以创建独特的功能,从而使产品在市场中脱颖而出。

为了帮助克服一些早期障碍,芯片供应商已经创建了开发平台,可以解决许多硬件设计难题并加快开始处理软件的过程。在选择提供所有必需功能并接近理想配置的平台后,团队可以在项目进展时对硬件进行微调,以添加独特或增值功能。最终,可以为生产目的创建定制的,小型化的硬件版本。

另一方面,可提供大量单板计算机(SBC)或计算机模块(COM)硬件,采用流行的处理器架构,如x86,Intel®Atom™或ARM®,采用各种微型外形,如PC/104或Mini ITX。这些可以用作软件开发的平台,然后在很少或不需要对硬件进行进一步修改的情况下扩展到生产中。

任何嵌入式开发平台都需要板级支持包(BSP)来提供必要的软件用于控制特定于硬件的功能。 BSP的各种元素包括板上设备的驱动程序,使OS能够与板硬件通信的适配层,以及用于加载和启动OS的引导加载程序。由于存在将硬件与OS连接的各种软件组件,因此创建BSP取决于操作系统及其特性的知识。

软件选择:Windows嵌入式路由

创建使用Microsoft®Windows®CE或Windows XP Embedded等框架的嵌入式操作系统映像和应用程序软件为产品开发人员提供了在商业支持的生态系统中工作的优势。这种方法的好处包括访问现成的商业工具,如Visual Studio集成开发环境(IDE),其中包括用于设计和构建自定义操作系统映像的Platform Builder工具集。开发人员可以使用此工具从目录项菜单中仅选择所需的功能,从而最大限度地减少对内存等系统资源的需求,从而自定义操作系统映像。还有一些现成的设备驱动程序列表可以快速轻松地合并,或者在必要时帮助构建自定义驱动程序。

因为Microsoft Embedded OS内核和典型行为是已知的,所以第三方如电路板供应商可以更轻松地提供所需的支持,如BSP,以帮助开发人员快速启动和运行硬件。

除了BSP之外,还需要一个用于定制操作系统的软件开发工具包(SDK)来帮助工程团队创建应用程序软件。 SDK提供必要的软件,包括一组允许应用程序与操作系统交互的应用程序接口(API)。 Platform Builder工具集还包括一个应用程序向导,可帮助硬件团队创建基本的示例应用程序和动态链接库(DLL),这些应用程序与SDK一起帮助应用程序开发人员了解操作系统并使用eMbedded Visual等工具创建自己的自定义应用程序C ++®。图1说明了Windows Embedded CE开发中涉及的硬件和软件组件。

板级支持包给提嵌入式开发供软件功能选择

图1:Windows Embedded软件将应用程序与底层硬件连接起来。

Microsoft最近通过引入用于Windows CE .NET的标准SDK简化了跨设备应用程序的编写。这提供了一组基准组件,开发人员只需将标准SDK作为组件包含在其Windows CE .NET设备中即可确保在其设备中使用。 eMbedded Visual C ++ 4.0及更高版本中包含对标准SDK的支持。

Advantech AIMB212D是硬件平台的一个示例,非常适合开发基于Windows Compact Embedded(CE)或XP Embedded的设备( XPE),虽然它不仅限于Windows Embedded开发。该主板具有双核Intel Atom CPU,PCI和PCie插槽,千兆以太网支持,多个串行和USB端口以及GPIO。研华为使用SUSIAccess的低级传感器和云连接支持多种BIOS选项,WinXP和Win7驱动程序,实用程序和API。稍后会详细介绍。

开源选择

虽然Visual Studio现在支持Linux和iOS开发以及Windows Embedded,但Linux开发人员历史上并没有获得商业支持的好处工具。尽管如此,开源开发带来的自由以及与Linux交互的低前期成本是使Linux变得非常受欢迎的因素。事实上,大多数非桌面计算系统现在都运行在某种形式的Linux操作系统上。

即便如此,开发基于Linux的设备可能更容易,更高效,更方便。例如,当OS的属性变化如此广泛时,硬件供应商很难创建合适的BSP。创建标准化嵌入式Linux发行版的举措试图克服硬件开发人员的一些变幻莫测,从而简化硬件和软件开发的交叉。 uClinux是针对简单微控制器的项目示例。它可以基于Linux 2.0,2.4或2.6内核,并附带用户应用程序,库和工具链。微控制器供应商可以为任何给定产品的评估板创建一个uClinux BSP,从而为客户提供更快,更简单的开发路径,前提是他们为所选择的微控制器使用适当的uClinux端口。

Yocto Project是另一种方法的示例,旨在帮助硬件开发人员在将开源开发自由与商业支持框架的便利性相结合的环境中创建自定义Linux发行版。该项目建立了通用模板,工具和方法,并利用Linux基金会的长期支持计划(LTSI)来标准化内核。 LTSI提供必要的范围,以严格控制的节奏应用安全性和错误修复,允许每个内核版本得到适当维护。

与Yocto项目的连接可以为各种类型的组织提供优势,包括芯片制造商,工具供应商,Linux发行版的创建者和嵌入式设备开发人员。因此,该项目得到了众多行业参与者的支持,他们正在投入人力和资源来帮助简化Linux的设备开发。 Yocto项目为Linux构建系统和操作系统实施的碎片提供了解毒剂,这可能使产品开发复杂化并阻碍硬件或软件供应商为其客户提供支持的努力。 Yocto项目带来的额外效率还有助于降低开发成本,加快需要高质量保证的产品的上市时间,例如汽车模块或运营商级电信系统。

Digi Connectcore 6UL是一个带有源代码的完整Yocto Project Linux BSP的SBC示例。该板还集成了对无线连接的支持,包括IEEE 802.11a/b/g/n/ac和Bluetooth®4.2,用于添加Grove传感器或扩展板的连接器,以及支持加密,密钥存储和安全启动以保护的硬件安全元件连接智能设备。

Android Things

作为一款基于Linux的操作系统,除了大型组织的支持之外,Android作为智能手机和平板电脑的平台也取得了巨大的成功。开发人员可以使用Android SDK和Android Studio或第三方应用开发工具等工具快速为Android手机创建移动设备或应用。谷歌现在正在扩展Android系列以包括其他类型的设备:Android Wear就是一个例子,旨在开发可穿戴电子产品,如智能手表。

Android Things的到来对于开发人员来说可能是一个令人兴奋的举动嵌入式系统与Yocto项目类似,Android Things理念使开发人员不必创建或修改自己的Linux内核。这有望为小型,资源受限的设备创建应用程序,就像开发移动应用程序一样简单,并且可以将新的应用程序开发人员群体从移动场景带入嵌入式世界。随时可用的交钥匙,认证开发板和Android Things SDK使原型设计能够立即开始。

Android Things SDK(图2)支持用于移动开发的Google Services API子集,并删除那些不适合嵌入式开发的。通常,这些是需要用户输入或身份验证凭据的API。另一方面,添加了Things支持库,它引入了嵌入式设备中常见而不是移动设备中的硬件类型的API。这些包括连接到GPIO或接口的传感器和执行器,例如I 2 C,SPI或UART

板级支持包给提嵌入式开发供软件功能选择

图2: Android Things在物联网支持库中添加了额外的API来管理嵌入式设备中使用的硬件类型。

将传感器连接到云端

从多个通道捕获传感器数据的能力,汇总并发送到云中的分析和机器学习应用程序,对于未来工业自动化的发展至关重要。在Advantech AIMB212D和Digi Connectcore 6UL等连接SBC上托管的应用程序在第四次工业革命(工业4.0)的网络物理系统中发挥关键作用,收集和转发传感器数据,如用于振动传感的加速度计信号,生产率指标,组件可追溯性数据或质量信息,如检查图像。当然,这两种SBC都经过认证,可以连接到Microsoft Azure云,并附带软件来实现这一点。

除了嵌入式软件API,研华还提供带有AIMB212D的SUSIAccess™API。像SMbus和硬件监视器一样用于从连接的传感器捕获数据。 SUSIAccess结合了研华的安全和统一智能接口(SUSI),用于监控嵌入式设备,具有支持数据挖掘,备份和远程恢复的附加功能,并帮助将感测数据传输到研华的WISE-PaaS物联网软件平台,提供远程监控,设备管理等服务寻求使用Digi Connectcore 6UL板解决类似应用程序的开发人员,在基于Yocto的Linux环境中工作,可以利用Digi开发的软件扩展来促进云集成。其中包括Digi TrustFence™基于硬件/软件的安全框架,对空中下载(OTA)固件更新的支持,以及远程设备管理和健康监控。图3显示了构成Digi嵌入式Yocto平台的BSP和软件扩展,包括对云集成的支持。

板级支持包给提嵌入式开发供软件功能选择

图3:Digi嵌入式平台增加了软件扩展,充分利用了Yocto项目的托管特性。

Android Things特别适合创建物联网设备,不仅包括用于设置温度传感器,智能相机或其他传感器的低级接口的API,还提供对Weave通信平台的访问,以简化将设备连接到Google Cloud的过程。使用Weave设备SDK,开发人员可以将设备连接到Google的Weave服务器,该服务器处理安全设备注册,设备管理以及与Google智能助理等服务的集成。使用Weave开发者控制台可以轻松设置和监控设备,并且注册为Weave开发人员可以访问Weave Developer应用程序,以便通过移动设备或平板电脑测试和控制设备。

启动Android Things项目很容易,使用支持的电路板,如Wandboard的PICO-PI-IMX6UL。这是基于恩智浦i.MX6应用处理器,内置IEEE 802.11 b/g/n Wi-Fi蓝牙4.1支持,4 GB可移动存储卡,并提供GPIO,I 2 C,I 2 S,UART和SPI用于连接传感器或控制器等外部设备。进一步的连接和多媒体扩展是可能的。

结论

通过良好支持的SBC设计嵌入式系统更加友好和快捷,简化了对系统启动和运行所需资源的访问。即便如此,操作系统的选择也会对项目的成功产生深远的影响。 BSP和SDK中的驱动程序和API等软件以及应用它们的良好支持工具有助于最大限度地减少开发人员必须自己完成的工作,并允许更加关注应用程序级别的差异化功能。

像Yocto Project这样的计划使Linux开发人员能够享受类似于那些选择Windows Embedded路由的用户所提供的支持。 Android Things现在为小型连接设备的创建者提供类似的好处和简化的移动应用程序开发体验。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    18275

    浏览量

    222120
  • 温度传感器
    +关注

    关注

    48

    文章

    2650

    浏览量

    154294
  • 嵌入式
    +关注

    关注

    4981

    文章

    18281

    浏览量

    288382
收藏 人收藏

    评论

    相关推荐

    嵌入式软件开发应该掌握哪些知识?

    两个部分组成,其中嵌入式软件是指在嵌入式系统中运行的程序,用于控制硬件并提供特定的功能和服务。嵌入式软件
    发表于 02-19 11:23

    嵌入式软件开发软件开发的区别

    嵌入式软件开发软件开发是两个不同的概念,它们在一些关键方面有着明显的区别。嵌入式软件开发是指开发
    的头像 发表于 01-22 15:27 588次阅读

    嵌入式开发学习的十三法则分享

    嵌入式开发学习是一个不断积累和总结的过程,来自一个嵌入式开发高级工程师为我们总结的关于嵌入式开发学习的十三法则,大家不妨参考一下: 一、冗余度法则 在嵌入式系统具有足够的冗余度
    发表于 12-21 06:32

    嵌入式硬件和软件哪个好?

    方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、protel设计软件,有四层开发经验。 成为优秀的嵌入式硬件
    发表于 12-05 15:17

    嵌入式开发为什么需要输出调试信息?

    嵌入式开发为什么需要输出调试信息? 因为输出调试信息是嵌入式开发中一项非常重要的实践,它有助于保证软件的可靠性、稳定性和性能,也是故障排查的关键工具之一。 嵌入式开发输出调试信息主要
    发表于 11-28 16:46

    c语言嵌入式开发

    电子发烧友网站提供《c语言嵌入式开发.zip》资料免费下载
    发表于 11-17 14:11 2次下载
    c语言<b class='flag-5'>嵌入式开发</b>

    嵌入式开发系统基础知识

    电子发烧友网站提供《嵌入式开发系统基础知识.pdf》资料免费下载
    发表于 11-17 10:59 0次下载
    <b class='flag-5'>嵌入式开发</b>系统基础知识

    嵌入式开发学习路线

    电子发烧友网站提供《嵌入式开发学习路线.doc》资料免费下载
    发表于 11-17 10:13 12次下载
    <b class='flag-5'>嵌入式开发</b>学习路线

    嵌入式软件开发常用工具有哪些?

    各种插件进行嵌入式开发。 9、Tiny C Compiler:这是一款轻量级的C编译器,可以在各种平台上运行,支持多种微控制器和开发板。 10、MPLAB X IDE:是一个由Microchip
    发表于 11-10 11:03

    嵌入式开发入门学习

    电子发烧友网站提供《嵌入式开发入门学习.doc》资料免费下载
    发表于 10-26 09:37 1次下载
    <b class='flag-5'>嵌入式开发</b>入门学习

    Linux系统的嵌入式开发是什么

    嵌入式开发听起来很高大上,但其实它就在我们身边。   嵌入式开发是指将操作系统、应用程序或数据存储在嵌入式设备中,如手机、平板电脑、智能家居等。   随着物联网时代的到来,嵌入式开
    的头像 发表于 10-12 15:40 1024次阅读

    什么是嵌入式Linux?

    发展需要不断进化。随着芯片性能的增强和社会变革的需要,嵌入式系统越来越承接更多、更复杂的功能,所以嵌入式开发也以高薪稳定的状态稳坐在就业的顶端。(相较于其他行业,嵌入式工程师的工资在同
    发表于 10-11 13:47

    STM32嵌入式开发中的RTOS,你用过哪些?

    STM32嵌入式开发中的RTOS,你用过哪些?
    的头像 发表于 09-18 16:21 816次阅读
    STM32<b class='flag-5'>嵌入式开发</b>中的RTOS,你用过哪些?

    什么人适合学习嵌入式开发

    嵌入式开发又分为两类,这两类各有特点,当然需要的资质也完全不同: 一类是学电子工程、通信工程等偏硬件专业出身的人,主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader
    发表于 06-07 15:55

    嵌入式开发成本高的原因有哪些

    这里先问下大家:你觉得嵌入式开发成本高吗? 答案:是的,对于普通人来说,很高。当然,部分富豪除外。 下面给大家罗列一下嵌入式开发成本高的几点原因。
    的头像 发表于 06-02 10:24 606次阅读
    <b class='flag-5'>嵌入式开发</b>成本高的原因有哪些