当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]开发周期缩短而带来的巨大压力,迫使嵌入式系统开发人员必须高效利用嵌入式领域与传统PC工作站领域的现有技术;适应并复用现有稳定软件可为嵌入式开发人员提供不断开发重大新项目的必备基础。OpenCV就是PC软件进入嵌入式开发领域的一个实例。OpenCV是一款免费的开源计算机视觉库,可提供从影像过滤及转换,到特性抽象与机器学习等几十个不同类别的数百种算法。它已被成千上万的开发人员所使用,而且还在不断发展之中。目前有很多库是针对嵌入式系统的,但很少有像OpenCV这样能够在计算机视觉领域得到普遍推广,而且涵盖如此丰

嵌入式处理器的性能日益提升、价格不断下降,带来日益广泛的嵌入式计算机视觉应用,包括从安全及工业监控到自动化车辆与汽车安全等领域。开发人员可充分利用越来越高级的硬件,在不影响基本质量的同时,更快速、更低成本地开发具有突破性性能的产品。

开发周期缩短而带来的巨大压力,迫使嵌入式系统开发人员必须高效利用嵌入式领域与传统PC工作站领域的现有技术;适应并复用现有稳定软件可为嵌入式开发人员提供不断开发重大新项目的必备基础。

OpenCV就是PC软件进入嵌入式开发领域的一个实例。OpenCV是一款免费的开源计算机视觉库,可提供从影像过滤及转换,到特性抽象与机器学习等几十个不同类别的数百种算法。它已被成千上万的开发人员所使用,而且还在不断发展之中。目前有很多库是针对嵌入式系统的,但很少有像OpenCV这样能够在计算机视觉领域得到普遍推广,而且涵盖如此丰富的算法。


图1:OpenCV库缩略图。

尽管OpenCV最初来源于Intel的x86架构,但它也不失为目前功能日益强大的嵌入式器件的自然选择。OpenCV现已移植到嵌入式处理器常用CPU选择ARM架构上,这点也并不奇怪。我们完全能够在嵌入式器件上原封不动地采用OpenCV的交叉编译版,不过,存储器限制与其它架构注意事项可能会带来一个技术难题。因此我们需要对OpenCV进行优化,以使它在新的主机上实现更高性能与更高效率。

对嵌入式平台而言,“优化”这个词以前意味着要无限制地研究低级架构中不重要的细节,反复编写汇编语言代码。然而幸运的是,随着嵌入式处理器复杂性的提升,嵌入式开发工具已变得日益强大,用户友好性也得以大幅提高。

典型的嵌入式器件可描述为系统级芯片(SoC),其中不仅包含ARM处理器,而且还含有多种外设与加速器,可将CPU从相关支持任务中解放出来。SoC甚至可能具有多个ARM内核,或其它功能齐全的协处理器。


图2:SoC基本内部架构。

现在,SoC最重要的部分不是硬件本身,而是可帮助开发人员通过ARM应用程序高效利用SoC全部性能的支持性软件,这不仅包括优化C语言编译器的熟悉工具,还包括加速常见信号处理任务的优化软件库,以及处理SoC中不同模块之间低级互动的驱动器。此外,它可能还包括支持特定厂商协处理器与加速器的特殊工具。这些工具相结合,可使嵌入式优化成为高级应用开发中一个简单透明的组成部分。

通过高效集成OpenCV等高级软件与器件厂商提供的低端软件,进而创建高效可行的系统,是嵌入式开发的重要挑战之一。例如,我们不妨考虑这样一种情况,SoC中包括了针对高强度计算的全功能数字信号处理器(DSP)。该DSP可能非常适合OpenCV的影像分析算法,尤其是在CPU缺乏原生浮点指令情况下更是如此,不过,要让OpenCV在DSP架构上运行,可能还有大量工作要做。让OpenCV等高级软件实现分区,并在整个SoC上无缝运行是软件开发工具的重要使命。

从嵌入式开发人员的角度来说,将应用的不同部分透明地交给SoC上最合适的模块来处理是再好不过的了。这样做能够帮助开发人员将更多资源集中到终端产品开发方面,从而花费更少的时间处理特定平台问题,这是嵌入式器件的独特优势。支持上述要求的软件工具则可在基本的处理功能与硬件功能基础上更进一步,这对开发人员而言具有更重要的意义,器件厂商必须满足这一要求,才能保持自身的竞争优势。


图3:嵌入式应用分区后,在异构多内核SoC上运行更高效。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭