客户选择单板计算机的最重要因素不是价格,性能或可用I/O,而是可用性研究表明,软件和开发工具。精心设计的电路板支持包是此类支持的关键部分,可能是确保客户无缝集成不断扩展的单板计算机功能的最重要的单一组件。精心开发的电路板支持包使客户能够专注于操作系统和应用程序,有助于缩短学习时间,并有可能缩短产品上市时间。
除了缩短开发时间外,电路板支持包还可以帮助客户充分利用单板计算机的全部内置功能。上文引用的研究由EE Times母公司CMP Media Inc.的Jerry Krasner于1999年完成,该研究还表明,选择板载实时操作系统(RTOS)的主要标准是性能。电路板支持包为上层RTOS奠定了基础,有助于确保其整体速度和可靠性。
电路板支持包的想法远非新的。其主要目标是将OS核心与硬件隔离开来,使其在一个处理器系列中可移植。创建板支持包的过程有时被称为“移植”。板级支持包通常由三个主要组件组成:将单板计算机初始化为已知状态的固件,基本驱动程序集和所谓的引导监视器。
固件组件对于每个董事会;它包含初始化处理器和总线,设置仲裁,设置配置寄存器等的例程。基本驱动程序集至少包含定时器驱动程序和串行端口(如果存在),以及以太网,小型计算机系统接口和其他接口的可选驱动程序。
启动监视器是一个允许的应用程序用户通过串行或以太网链接连接到单板计算机并下载系统的其余部分,包括操作系统和应用程序。如果操作系统已经在板载闪存中,则启动监视器可以立即加载并执行代码。引导监视器提供了一种将代码下载到目标单板计算机的方法,而无需使用联合任务操作组(JTAG)调试器等硬件辅助工具。
当从裸板开始时,开发板支持包的过程应该从编写初始化代码开始。通常,您需要学习和使用汇编语言。但是,重要的是将汇编的范围限制为基本数据和寄存器集初始化,剩余部分用于C语言等高级语言。编译器继续改进,生成更有效的代码,闪存大小现在已经非常大了。
在某些体系结构中,您可能对代码大小与速度的控制更为严格。例如,ARM Thumb兼容处理器允许在同一文件中为不同的代码块选择16位或32位指令集。作为一般规则,将程序集限制为板支持包中的单个文件,并确保为代码和数据提供广泛的注释。在开发的这个阶段,您可以使用能够直接访问板上硬件的硬件辅助调试工具(例如JTAG)。最好的工具甚至可以为您的电路板或类似电路板提供预定义的寄存器组,以备编辑和下载。
如果您计划为单板计算机使用不同的操作系统,则下一个合乎逻辑的步骤可能是定义和开发特定的API以及基础功能,以处理您在船上的大部分或全部组件。这有时被称为微代码库 - 其目的是为开发人员提供他们可能使用的任何特定应用程序和操作系统的构建块。这种方法提供了更大的灵活性,但消耗更多的时间和工程工作,因为API的结构,设计和有效性成为高优先级。此类API可以在样本开发系统中找到,例如ARM Integrator系列或Intel IXP1200。
但是,在大多数情况下,您将专注于为特定操作系统开发板级支持包。在这种情况下,您可以在完成初始化代码后开始开发基本驱动程序。这些通常包括定时器和串行端口的驱动程序。定时器支持对于OS功能至关重要,除非在定时器内置于处理器的情况下,OS核心中包含支持。如果您计划使用启动监视器,则必须使用串行端口驱动程序。以太网可以用作串行的高速选项。
在开发驱动程序时,尽量避免静态资源配置,尤其是在使用PCI总线时。支持动态编码的额外工作可能会在开发的后期阶段支付红利,此时您需要添加对其他设备的支持。使代码尽可能模块化非常重要 - 不同组件的代码必须位于不同的文件中,具有清晰的头文件结构,并且必须包含记录良好的配置文件。
有一些争论是否必须启动监视器。对于最终用户来说,它可以是一个方便且有吸引力的选择。引导监视器代表了很大一部分代码,您应该从操作系统方面作为组件进行开发。这意味着您需要决定是否应将其编写为独立于硬件。因为它将使用您提供的驱动程序,所以可以编写一次并为每个特定处理器系列编译,而不是针对特定的板。这消除了将这种支持集成到新设计中的负担,但是应该仔细测试引导监视器并提供源代码。
如果您确定自己的话,没有必要提供启动监视器。客户将使用JTAG调试器等工具开发其他驱动程序或组件。这些工具执行启动监视器的功能,并使用主机和单板计算机之间的相同物理接口捆绑了许多其他功能和选项。
您应该选择基于a的开发和调试工具。记录稳定和经过验证的性能,而不是使用最近才发布的高度复杂版本。您应该仔细选择硬件和软件的混合,以便开发可靠,紧凑和优化的代码。如果您正在使用新设计的单板计算机的第一个原型,用于帮助检测硬件错误的总线分析器可能是一项宝贵的投资。
执行新的板级支持包代码在一台新的单板计算机上,即使您认为代码没有错误,也可能并且经常会带来意想不到的结果。挂起,神秘的中断和数据传输错误只是可能困扰新的电路板支持包的令人不快的行为的几个例子。
首次测试
始终使用书面且明确标识的测试规范测试新的电路板支持包。规范应涵盖系统和总线速度,高速缓存打开和关闭,数据大小和传输速度,轮询和中断模式以及错误检查的所有可能组合。软件,特别是为新硬件平台开发时,很少没有错误;坚实的测试规范将帮助您识别并及时解决问题。
除了“基本”测试规范外,通常建议开发压力测试或应用程序,特别是如果该板是用于军队或通信市场,可靠性至关重要。一系列精心设计的压力测试可以帮助您和您的客户放心,该板的设计具有足够的安全裕度,能够承受最恶劣的预期工作条件。正如本文开头所指出的,在选择单板计算机供应商时,优先支持是第1号标准。新板与测试规范(基本和压力)的一致性是提供此类支持的基本要素。
许多供应商和独立组织也提供验证服务。例如,WindRiver提供源代码形式的验证测试套件及其Tornado板支持包Developer's Kit。一旦您的电路板支持包成功通过工具包中的测试套件,WindRiver将为为VxWorks RTOS编写的电路板支持包提供付费验证和合规性认证。在大多数情况下,RTOS供应商至少提供了一个移植指南,以及类似于WindRiver提供的工具。
后PC时代的一个明显趋势是系统等领域的设计复杂性日益增加片上(SoC),网络处理器,便携式系统以及数据通信和电信应用。供应商正忙于通过将多种功能集成到一块电路板上来提供经济高效的解决方案。
例如,Cirrus Logic的MSP(市场专用处理器)Maverick EP72111将ARM720T内核与音频接口,LCD控制器集成在一起,DRAM控制器,同步串行,ROM,SDRAM,UART,红外,通用I/O,以太网,键盘和PCMCIA。英特尔的IXP1200架构将StrongARM内核与另外六个称为微引擎的特定内核相结合。在诸如此类的系统中,固件的大小与OS加上应用程序映像相当甚至超过它并不罕见。
新面孔
在世界范围内SoC设计,新的接口 - 包括通用串行总线(USB)和FireWire(IEEE 1394) - 正在从PC世界迁移。新PC中包含的USB端口很有可能成为事实上的首选接口,采用新的USB 2.0规范,其速度远远高于目前常用的USB 1.1。
内置-in support
许多RTOS供应商,包括Microware和WindRiver,已经在其操作系统中构建了USB支持; Microware声称USB 2.0兼容性。在单板计算机中USB替换或与以太网共存只是时间问题。当然,对于开发人员来说,这意味着在板级支持包中增加了USB支持。 FireWire目前提供400-Mbit/秒的实时性能,为那些处理视频信息的应用程序提供了极具吸引力的解决方案。
在电信市场中,对热插拔应用的需求强劲。增加热插拔支持,特别是对于CompactPCI系统,可以使您的电路板支持包对服务于该市场的开发人员更具吸引力。有几种工具可以简化热插拔感知驱动程序的开发。
最灵活,最强大的电路板支持包解决方案将包括一个能够与应用程序交互的设备管理器,操作系统核心和用户,除了提供动态加载和卸载驱动程序,系统模块或服务的请求外。
总体信息很明确:现在在板支持包的设计概念上进行的投资将极大地塑造未来单板计算机。无论是通过协作方式还是由个别公司制定,此类投资都应为在此环境中工作的所有开发人员创造优势。
全部0条评论
快来发表一下你的评论吧 !