• IIANews微官网
    扫描二维码 进入微官网
    IIANews微信
    扫描二维码 关注微信
    移动客户端
  • English
2026全景工博会 菲尼克斯电气二级-工业链接
工业以太网

用于嵌入式系统软件开发的可复用IP

  2000年08月01日  

David Kalinsky

客户培训总监

Aisys公司

在嵌入式系统软件开发中,其中一个最容易被忽视的领域是器件驱动程序和板级支持封装(BSP)复用。但现在,设计人员可以使用一种称作器件驱动程序开发环境(3DE)的最新工具,来加速BSP和器件驱动程序的开发工作。

  • 3DE要素

  • 自动化BSP的步骤

  • 网站推荐

过去,为评估开发工具和可执行软件的“投入产出”的决定是否合理,一直采用计算投资回报(ROI)的方法。但随着当今产品开发周期的日益缩短,ROI已变得无关紧要,产品投放市场的时间成为目前商家考虑的首要因素。简单地讲,产品面市时间晚所付出的代价要远远超过自己开发嵌入式软件所带来的全部利益。摩尔定律更加推动了这一发展趋势,它预测每隔18到24个月,半导体器件的复杂度就会增加一倍。最近,在含有中央处理器的硅片外围器件上,这种复杂度的增加趋势已经得到了充分体现,这些片上外围器件变得越来越复杂。由于摩尔定律以及嵌入式软件开发商的工作效率和生产能力有限,因而形成这样一种明显的趋势势,即一个软件开发组织不可能亲自动手开发所有的软件。

当前形势要求软件开发组织能够确定他们的核心优势;然后需要从其它的软件中找出能够体现他们核心优势的软件,这些软件仅运行他们本身的应用。这些组织把他们的宝贵资源集中于其核心优势方面,能够获得增值性能。

在嵌入式系统软件开发中,可复用IP包括开发环境建立模块(工具)和可复用执行代码。常见的商用软件开发环境建立模块如图1所示。

用于嵌入式系统软件开发的可复用IP - 1

图1:常见的商用化嵌入式系统软件开发环境组成

许多商业现货(COTS)嵌入式系统软件开发环境包含有“集成化开发环境”组件,见图1中的标识。在通常情况下,实际的软件设计还需要有其它的工具,例如计算机辅助软件设计封装、测试管理和版本控制工具。

在嵌入式系统软件开发中,第二大类可复用IP是可复用执行代码,其分层结构如图2所示,

用于嵌入式系统软件开发的可复用IP - 2

图2:嵌入式系统目标计算机上的可执行代码

最顶层是应用软件,它表示了多数嵌入式系统开发组织的核心能力。如果该应用软件是多任务同时执行的结构,那么在下一层会有实时操作系统(RTOS内核)以支持多任务作业。如果应用软件需要在一个或多个网络中进行数据通信,那么应用层下面的一层还应包括通信协议栈。再下一层包括器件驱动程序和板级支持封装(BSP),BSP是联系高层软件与嵌入式系统中基础硬件的一段代码,用以生成能够执行更高层软件的环境。器件驱动程序包含有特定的硬件代码,允许更高层软件直接操作嵌入式系统中的输入和输出器件。最底层是嵌入式微处理器硬件以及嵌入式系统的外围硬件。在硬件与应用层中间的灰色层代表“仅仅必需”的软件,它能够使可复用IP使用起来更方便。

3DE要素

除了上面讲到的那些嵌入式系统软件开发要素外,在嵌入式软件开发人员的标准指令系统工具与可复用IP中还将有一个新要素--器件驱动程序开发环境(3DE),它能够自动支持并加快长期被忽略的板级支持封装(BSP)与器件驱动程序的开发。

单个开发项目常常需要开发大量不同的BSP与配套的器件驱动程序。对于那些一开始就采用商用计算机板(COTS硬件)进行开发的项目来说,需要一块评估板基本BSP,同时需要改进这块支持RTOS的评估板BSP,以允许采用RTOS进行应用软件开发。

利用目标硬件板开发BSP,能够帮助工程师开发出用户自定义的硬件板,它可作为嵌入式软件的实际平台。BSP会随着硬件开发的进步而发展,至于软硬件的集成,则需要利用支持RTOS的目标硬件板BSP进行。

由于在单个项目中常常需要这些BSP变量,因此自动支持BSP建立过程具有诸多益处,它推动了3DE工具行业的发展并刺激了对该产品的需求。

3DE工具装备有现行的用户接口,很象一个“知识基地”(knowledge base),如图3所示。

用于嵌入式系统软件开发的可复用IP - 3

图3:3DE工具的命令解释程序和“知识基地”

因为许多片上与片外的外围器件的复杂性和独特性,在BSP和驱动程序开发阶段,存储在知识基地的源代码模块必须由专家采用手工进行编写。

自动化BSP的步骤

用户必须经过一系列的标准步骤,才能利用3DE工具建立BSP和配套驱动程序的整套工程环境参数,以及进行硬件参数设置、器件驱动程序选择、参数和代码的创建。

工程环境参数包括编译器选择和RTOS选择。由于数据结构包和中断处理等因素,编译器的选择会影响所生成的代码。RTOS的性能会影响BSP的整体结构,比如会修改BSP的执行顺序和中断处理过程。

硬件设置包括下面一些参数,即处理器内存映像图、时钟、外部中断优先级与嵌套、内部中断处理和复位动作。对于许多软件/固件开发人员来说,其中有些问题可能会不太清楚,因此一个好的3DE工具常常需要提供所有选项和参数的默认值,并形成合理的“首次切割”(first cut)BSP结构和配套的驱动程序。

器件驱动程序选择和参数定义是3DE工具的核心,例如,可以在DriveWay 的“芯片浏览器”(chip explorer)屏幕上完成所有操作,DriveWay是目前流行的一个3DE工具。

芯片浏览器的屏幕显示是一个简单的交叉连接表,列表中显示了所有的外围器件,因为显示有专用的处理器芯片,驱动程序能够有效地驱动这些外围器件。列表中的器件按字母顺序排列,每个器件都有其全面的技术“帮助”文件。用户只要点击屏幕上的器件,就可以查看到外围器件及其驱动程序的具体参数指标,之后在屏幕上会出现一系列有关该器件的更详细的性能指标,直到显示完其驱动程序的所有参数。在所做的每一步中,屏幕上的所有区域中都会出现默认值--因此无需深入研究过多的选项和寄存器,就可以快速获得“首次切割”的合理的驱动程序。

一旦确定某个驱动程序的参数要求,芯片浏览器屏幕就会刷新。然后用户就可以选择其它的外围器件,对其进行上述的参数设定。当所有相关的外围器件都按这种方法定义好后,用户可通过单击鼠标来执行代码生成。

代码生成过程是自动化的,它根据用户在上述步骤中定义的输入参数,将信息和“知识基地”中的源代码进行集成。典型的代码生成仅需几分钟的时间,便可产生几万行的BSP和驱动程序源代码,这些源代码被组织成文件组的形式,它们包括:

启动代码文件(在汇编程序中)

终端器件驱动程序文件(用于常驻目标调试程序接口)

网络器件驱动程序文件(用于源码级调试程序接口)

外围器件驱动程序文件(C语言)

外围器件驱动程序测试功能代码文件

实时操作系统接口代码文件

配置文件

生成文件

代码生成也是非常灵活的,如果用户要往这些文件中插入额外的代码并要再次进行代码生成,用户的新增加代码会受到保护,并以新的方式保存所生成的代码。一般来说,由于用户要更好地理解外围器件以及嵌入式系统的应用需求,代码生成至少要做七遍。

3DE工具的出现以及给嵌入式软件开发人员带来的标准化工具和可复用IP,造就了一个新的BSP和驱动程序结构的范例,从而无需在非常困难的位和字节级硬件/软件接口问题上花费太多的人力和时间。3DE工具把硬件/软件接口问题转化为利用高级的鼠标和菜单语言来解决,这一先进的方法能使软件开发具有更高的质量和效率。

欲了解更多信息,请联系:David Kalinsky。

E-mail: david@


网站推荐

利用IP评估模型可以缩短设计时间

一个设计复用的最新范例,可以帮助人们更方便地为其应用挑选出正确的IP,以便在设计过程中腾出更多时间用于其它重要的事情。它只需要下载指定的IP、确定IP参数、并在内核许可之前对其进行评估。

实施移植型IP复用策略

如果将要进行的设计小于0.18mm,那么设计人员肯定要考虑软件/硬件IP复用因素。在具有特殊要求的处理技术中使用IP,需要在多方面作出重新考虑。

下一代PLD工具的必备条件

设计百万门的PLD,要求下一代设计工具编译速度更快、效率更高并且更易进行设计复用,还要允许多个设计人员同时完成一个芯片的设计。

消费类市场中“信息产品”的设计

消费类数字信息产品/家庭娱乐系统包括机顶盒(有线电视和直接广播卫星)、3D游戏控制台、组合功能型DVD播放器和网上冲浪盒/网络电视,在未来十年中,它们将得到快速增长,并有望成为增长速度最快的市场热点之一。


最新视频
伊顿母线:从扬中“链”接全球,为AI能源蓄力   
聚焦电力结构变革,台达作答可持续命题   
魏德米勒麒麟驾到——飞!超!好!
工业 AI 赋能电子/半导体产业 智能制造升级
PTC Creo 13 设计未来型产品
PTC Codebeamer
专题报道
《我们的回答》ABB电气客户故事
《我们的回答》ABB电气客户故事 ABB以电气问题解决专家之志,回答未来之问。讲述与中国用户携手开拓创新、引领行业发展、推动绿色转型的合作故事,共同谱写安全、智慧和可持续的电气化未来。
企业通讯
魏德米勒麒麟驾到——飞!超!好!
魏德米勒麒麟驾到——飞!超!好!

魏德米勒麒麟系列隆重上市,以“飞、超、好”的开启新篇章。麒麟系列启势,中国智造全速出发。与此同时,麒麟MV强势出街,传递

2026全景工博会
2026全景工博会

2026中国国际工业博览会(简称“中国工博会”)定档于2026年10月12日-16日在国家会展中心(上海)举办。

在线会议
热门标签

社区

null /ca/_01-ABC00000000000094198.shtml /ca/_01-ABC00000000000094198.shtml