嵌入式系统开发的未来趋势与挑战

发表时间: 2024-06-22 11:10

嵌入式系统软件开发技术概述

嵌入式系统开发经过三十多年的发展,现在已经是一门成熟的技术了,下面由yjbys编辑准备的关于嵌入式系统软件开发技术的文章,欢迎阅读。

1 微处理器技术

最早的微处理器是4位和8位器件。随着制造技术越来越复杂,开始出现集成的单片8位微处理器,16位微处理器也开始使用。随着微电子技术的发展,16位微处理器得到了广泛的应用。32位架构器件逐渐占领了高端应用市场。第一代32位器件都是CISC架构,但现在越来越多的RISC芯片提供更高的性能。嵌入式系统设计人员比以前有更广泛的微处理器选择范围,必须根据性能、要求、支持、可用性和价格做出选择。

2 系统架构

随着微处理器的发展,系统架构也在不断发展。最早的系统由一个 CPU 和一些逻辑器件组成。多年来,系统变得越来越复杂,但仍然可以使用相同的调试技术 - 电路仿真、芯片级调试、ROM 监视器和指令集模拟。嵌入式系统变得越来越强大,对功能的需求增长得更快。许多设计师开始重新审视微处理器及其用途。

3 设计组件

在嵌入式系统开发的早期阶段,所有的开发工作,包括软件和硬件设计,通常由一个工程师承担。软件在整个工作量中所占的比例很小,大约为5%-10%。随着时间的推移,软件开发占工程时间的比例不断增长。到20世纪80年代中期,软件开发已经由专业软件人员来完成,所占比例一般超过整个开发工作量的50%。

近年来,在硬件设计越来越复杂的同时,软件量也急剧增加,目前占到总开发的70%-80%。因此需要软件团队的参与,同时也产生了一些新的挑战。这些挑战之一就是要有一个可用的硬件平台进行软件测试。由于需要在较短的时间内开发更多的软件,因此需要尽快建立测试环境。要发布更多的软件,需要尽快建立测试环境。可行的方法有很多,比如本地代码执行原型环境、指令集软仿真(模拟)、使用标准的、低成本的现成的评估板等。此外,低成本的主机-目标机连接技术也越来越流行,其中具有代表性的就是JTAG接口。

4 软件内容

软件开发所花费的时间占总时间的比例正在增加。与此同时,全球贸易和竞争的压力正在缩短产品上市时间。这对设计策略产生了重大影响。最早的设计非常简单,仅包含自主开发的应用程序代码。随着系统复杂性的增加,多任务模型被软件开发人员越来越广泛地采用,许多人选择了标准的商业实时操作系统产品。随着标准越来越广泛地采用,购买软件或“知识产权”的比例一直在稳步增加。这一趋势对软件开发人员有许多影响。将标准软件组件(与应用程序代码及其他内容)集成是一个问题。在多任务环境中进行调试是另一个问题。与知识产权选择相关的业务决策特别复杂;除了当前的需求外,还必须考虑未来的需求(例如移植到另一个处理器)。

5.编程语言

对于早期的 4 位和 8 位微处理器,汇编语言是唯一的选择。随着 16 位微处理器技术的实现,出现了几种替代语言。有 Pascal 和 C 以及 PL/M。Forth 在某些类型的系统中也很流行,随着时间的推移和 32 位技术的使用越来越广泛,出现了 C 和 Ada。后者通常用于国防部内的系统。

在嵌入式软件开发中,C++正在逐渐取代C语言,目前嵌入式系统代码的1/4到1/3都是用C++编写的。Java原本是专门为嵌入式应用开发的,在需要运行时重新配置的应用中也占有一席之地。统一建模语言(UML)也已成为高级设计方法学最受欢迎的选择。

6.软件团队的规模和分布

如前所述,最初的嵌入式系统设计只需一个人即可完成。随着时间的推移,专业化产生了专门从事软件开发的工程师。下一步是建立嵌入式软件开发团队。在任何情况下,管理软件开发都是一项挑战,嵌入式系统开发也不例外,但有一些细微差别。使用传统的编程技术——C 和汇编等过程语言——大多数团队成员需要对整个系统有很好的了解。随着团队的壮大,这变得越来越不可行。通常,团队中会有一些特殊人才,他们是某一领域的专家。为了有效地管理团队,必须使用适当的策略来封装他们的专业知识。使专家的工作能够以安全、可靠和直观的方式被非专家使用。在这种情况下,面向对象的编程技术找到了自己的位置。

尽管有许多非常大的公司,但软件团队不仅仅是在扩大员工队伍,他们正在变得分散。团队中的一些成员在一个地方,而其他人可能在其他地方。这些地点甚至可能在不同的国家。这种安排在欧洲很常见,那里真正令人担忧的可能是沟通语言。在其他地方,时区可能是一个问题(或者是一个优势,因为分布式团队可以全天候工作)。随着印度等新技术中心的广泛崛起,这种情况变得越来越普遍。在这种背景下,对软件组件可重用性的需求已经变得很普遍。

7 UML 和建模

近年来,UML 已成为一种关键的设计方法,它与越来越多的嵌入式软件团队息息相关。广义上讲,使用设计工具有两种方式:要么作为编写代码的指南,要么作为直接生成代码的手段。对于嵌入式软件来说,代码生成是有争议的,可以说(并且有充分的理由)每个系统都是不同的,都有自己的特殊需求。这就是 xtUML(可执行和可翻译的 UML)的吸引力所在,因为它允许明确区​​分应用程序和架构。这里适用的原则与面向对象编程中的原则相同 - 使用工具和技术来平衡专家意见。

跟踪当前嵌入式系统开发趋势所推动的所有新技术并不容易。孤立地看待这些技术中的任何一种也是没有意义的,因为它们之间存在许多联系。例如,多任务处理与多处理器调试有关;基于标准的 RTOS 技术是处理器迁移的福音;使用设计方法可以使实现更容易。

【嵌入式系统软件开发技术概述】相关文章:

嵌入式系统应用技术概述06-05

嵌入式Linux系统概述06-08

嵌入式系统接口技术02-27

2016嵌入式系统开发技术知识点:嵌入式系统06-01

嵌入式系统简介 01-13

嵌入式系统的特点06-06

嵌入式系统组成03-09

嵌入式系统设计06-05

嵌入式系统的分类06-08

嵌入式系统名词05-16