控制嵌入式系统开发期间的实时性的制作方法

文档序号:6594501阅读:236来源:国知局
专利名称:控制嵌入式系统开发期间的实时性的制作方法
技术领域
本申请总体上涉及设计、仿真和验证分布式嵌入式系统的领域。
背景技术
嵌入式系统在现代电子设备中无处不在。嵌入式系统可以存在于例如各式各样的 消费品中一包括电视、移动电话、媒体播放器,以及汽车。事实上,据估计一年中生产的微处 理器中超过98%的部分都被使用在嵌入式系统中。在很多应用中,嵌入式系统被用来控制、监测或以其他方式管理大型系统的一个 或多个子系统。此外,嵌入式系统经常被要求提供可靠的并且及时的行为。为了确保嵌入 式系统可靠地满足大型系统的定时约束,嵌入式系统经常使用实时操作系统(RTOS),它控 制任务如何由处理器执行并且提供精确的定时行为。由于嵌入式系统经常与大量的其他组件交互并且期望执行实时软件应用,因而设 计嵌入式系统是一种挑战。例如,嵌入式软件应用不能只提供适当的功能,而是还必须以所 要求的速率运行,从而满足系统期限并适应所分配的内存量。此外,嵌入式系统设计过程通 常包含多个开发阶段,每个阶段具有不同的抽象级别。例如,嵌入式系统或嵌入式软件应用 最初可以全部在计算机环境中被建模和仿真。所有的周边系统同样可以在这样的环境中被 建模和仿真。最终,随着设计过程的进行,可能会期望通过在嵌入式系统的物理原型上运行 软件,或者通过运行软件应用的仿真并同时生成去往和来自总体系统中真实硬件组件的信 号,来对嵌入式软件应用进行调试。在这样的仿真和验证期间,可能会期望在不妨碍总体系 统的其他操作的情况下,启动、停止、暂停和继续软件应用的“实时性”。这样的控制和灵活 性靠传统的开发工具不可能实现。因此,需要有改进的方法、系统和装置来为嵌入式系统的 设计者在对实时嵌入式软件应用的开发和调试期间提供更好的控制、灵活性以及可见性。

发明内容
在这里公开了可以用来在嵌入式系统的设计、仿真或验证期间控制实时事件(例 如,实时时钟)的方法、系统和装置的代表性实施方式。所公开的方法、系统和装置不应当 被解释为任何形式的限制。反之,本公开涉及各个所公开实施方式的全部新颖的和非显而 易见的特征和方面,不论是单独的或是与其他特征和方面的各种组合和子组合。所公开的 方法、系统和装置不限于任何特定的方面、特征或它们的结合,而且所公开的方法、系统和 装置也不要求存在一个或多个特定的优点或解决特定的问题。在这里公开的一个示例性实施方式中,生成实时时钟信号,并且利用该实时时钟 信号触发由嵌入式软件应用定义的任务。在这个实施方式中,嵌入式软件应用由嵌入式处理器利用实时操作系统(RTOS)执行,并且实时时钟信号具有与驱动嵌入式处理器的处理 器时钟信号不同的时基,并且被独立控制(例如,针对处理器的“时间”独立于针对嵌入式 软件应用和周边环境的“时间”而前进)。实时时钟信号例如可以由以下生成在计算机工 作站上运行的软件(例如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统 上运行的软件,和/或在嵌入式系统中作为任务运行的软件。实时时钟信号的生成可以在 不中断处理器时钟信号的情况下被挂起一段时间。此外,挂起实时时钟信号生成的动作可 以响应于由嵌入式处理器执行嵌入式软件应用所控制的信号而被执行。实时时钟信号的生 成可以在不中断处理器时钟信号的情况下被重新启动,并且重新启动被仿真的实时时钟的 动作还可以使得触发得以继续。重新启动实时时钟信号生成的动作也可以响应于由嵌入式 处理器执行嵌入式软件应用所控制的信号而被执行。此外,在一些实现中,嵌入式处理器是 仿真的嵌入式处理器,并且处理器时钟信号是仿真的处理器时钟信号。例如,可以使用指 令集仿真器或RTOS仿真器(例如,使用PC硬件和PC操作系统软件的RTOS实现,用以对在 RTOS上运行的嵌入式应用的执行进行仿真)中的一种对嵌入式处理器和处理器时钟信号 进行仿真。在一些实现中,使用系统简档器(profiler)来测量在嵌入式处理器上执行的软 件的执行时间。在特定的实现中,嵌入式软件应用是第一嵌入式软件应用,嵌入式处理器是 第一嵌入式处理器,RTOS是第一 RT0S,并且处理器时钟信号是第一处理器时钟信号。在这 些实现中,由第二嵌入式软件应用定义的任务可以由实时时钟信号触发,第二嵌入式软件 应用由第二嵌入式处理器利用第二 RTOS执行,其中实时时钟信号是独立于驱动第二嵌入 式处理器的第二处理器时钟信号而可控的,使得实时时钟具有与第二处理器时钟不同的时 基。在这里公开的另一实施方式中,用于嵌入式系统的处理器的RTOS被修改,使得 RTOS用来触发任务执行的实时时钟信号的源与为处理器提供时钟的处理器时钟信号的源 解耦。该解耦创建了两个独立可控的时基。例如,在这个实施方式中,针对处理器的“时间” 独立于针对嵌入式软件应用和周边环境的“时间”而前进。经修改的RTOS继而可以被存储 在一个或多个计算机可读介质上(例如,在嵌入式系统的存储器中和/或在主机计算机的 存储器中)。在特定的实现中,修改RTOS的动作包括针对RTOS的源代码改变或添加一行 或多行源代码。此外,修改的动作可以包括修改RT0S,使得传送实时时钟信号的路径是以 下一个或多个局域网(LAN)信道、通用串行总线(USB)信道、串行外围接口(SPI)信道、联 合测试推动团体(JTAG)信道、拐射线(FlexRay)信道、局域互连网络(LIN)信道、控制器区 域网络(CAN)信道,或嵌入式系统的进程间通信(IPC)信道。在特定的实现中,RTOS被修 改,使得实时时钟信号的源例如是在计算机工作站上运行的软件(例如,在调试器或仿真 器中运行的软件应用),在另一外部嵌入式系统上运行的软件,和/或在嵌入式系统中作为 任务运行的软件。在这里公开的另一实施方式中,生成一系列实时事件信号,并且利用实时事件信 号来触发由嵌入式软件应用定义的任务。在这个实施方式中,嵌入式软件应用由嵌入式处 理器利用RTOS执行,并且实时事件信号具有与驱动嵌入式处理器的处理器时钟信号不同 的时基,而且是独立可控的。例如,在这个实施方式中,针对处理器的“时间”独立于针对嵌 入式软件应用和周边环境的“时间”而前进。实时事件可以例如由以下生成在计算机工 作站上运行的软件(例如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统上运行的软件,在运行RTOS以接收实时事件信号的嵌入式系统中作为任务运行的软件,或 位于嵌入式系统上的时钟发生器电路。实时事件信号可以指示例如数据已经准备好从与嵌 入式处理器耦合的外围设备(例如,连接到与设备耦合的传感器或致动器的外围设备)中 加载或发送到该外围设备。一系列实时事件信号的生成可以在不中断处理器时钟信号的情 况下被挂起一段时间。此外,挂起实时事件信号生成的动作可以响应于由嵌入式处理器执 行嵌入式软件应用所控制的信号而被执行。一系列实时事件信号的生成可以在不中断处理 器时钟信号的情况下被重新启动,并且重新启动的动作可以使得触发得以继续。重新启动 实时事件信号的动作可以响应于由嵌入式处理器执行嵌入式软件应用所控制的信号而被 执行。在特定的实现中,还生成实时时钟信号,并且利用该实时时钟信号来触发由嵌入式软 件应用定义的至少一个其他任务。在这些实现中,实时时钟信号是独立于处理器时钟信号 和实时事件信号二者可控的,使得实时时钟具有与处理器时钟信号和实时事件信号不同的 时基。在其他实现中,生成实时时钟信号,并且利用该实时时钟信号来触发由嵌入式软件应 用定义的至少一个其他任务。在这些实现中,实时时钟信号是独立于处理器时钟信号可控 的,并且实时事件信号取决于实时时钟。在一些实现中,嵌入式处理器是仿真的嵌入式处理 器并且实时事件信号是仿真的实时事件信号。例如,可以使用指令集仿真器或RTOS仿真器 中的一种对嵌入式处理器和处理器时钟信号进行仿真。嵌入式处理器可以是嵌入式系统的 一部分,并且实时事件信号可以由位于嵌入式系统上的电路生成。在一些实现中,使用系统 简档器来测量在嵌入式处理器上执行的中断服务例程的执行时间。此外,在一些实现中, 嵌入式软件应用是第一嵌入式软件应用,嵌入式处理器是第一嵌入式处理器,RTOS是第一 RT0S,并且处理器时钟信号时第一处理器时钟信号。在这些实现中,由第二嵌入式软件应用 定义的任务可以由实时事件信号触发,其中第二嵌入式软件应用由第二嵌入式处理器利用 第二 RTOS执行,并且其中实时事件信号是独立于驱动第二嵌入式处理器的第二处理器时 钟信号可控的,使得实时事件信号具有与第二处理器时钟信号不同的时基。在这里公开的另一实施方式中,嵌入式系统中的处理器的实时操作系统(RTOS) 被修改,使得用来触发任务执行的实时事件信号的源与为处理器提供时钟的处理器时钟信 号的源解耦。该解耦创建了独立可控的两个独立时基。例如,在这个实施方式中,针对处理 器的“时间”独立于针对嵌入式软件应用和周边环境的“时间”而前进。经修改的RTOS继而 可以被存储在一个或多个计算机可读介质上(例如,在嵌入式系统的存储器中或在主机计 算机的存储器中)。修改的动作可以包括针对RTOS的源代码而改变或添加一行或多行源代 码中。此外,修改的动作可以包括修改RT0S,使得传送实时事件信号的路径是以下一个或多 个局域网(LAN)信道、通用串行总线(USB)信道、串行外围接口(SPI)信道、联合测试推动 团体(JTAG)信道、拐射线信道、局域互连网络(LIN)信道、控制器区域网络(CAN)信道,或 者嵌入式系统的进程间通信(IPC)信道。在特定的实现中,该方法还包括修改RT0S,使得由 RTOS所使用的实时时钟信号也与为处理器提供时钟的处理器时钟信号的源解耦。在特定 的实现中,RTOS被修改,使得实时事件信号的源例如是在计算机工作站上运行的软件(例 如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统上运行的软件,在嵌入 式系统中作为任务运行的软件,或位于嵌入式系统上的时钟发生器电路。另一个公开的实施方式是一种系统,该系统包括主机计算机,其配置用于执行生 成第一信号的软件;以及嵌入式系统,其耦合到主机计算机并且具有嵌入式处理器。在这个实施方式中,嵌入式处理器被配置用于基于从在主机计算机上运行的软件接收第一信号而 运行执行软件应用的任务的RT0S,并且该嵌入式处理器还被配置用于基于接收第二信号而 执行任务的个体指令。在这个实施方式中,第一信号是独立于第二信号可控的,使得第一信 号和第二信号具有不同的时基。第一信号可以是实时时钟信号或者是并非实时时钟信号的 实时事件信号。此外,第一信号可以通过以下之一来传送局域网(LAN)信道、通用串行总 线(USB)信道、串行外围接口(SPI)信道、联合测试推动团体(JTAG)信道、拐射线信道、局 域互连网络(LIN)信道、控制器区域网络(CAN)信道,或者嵌入式系统的进程间通信(IPC) 信道。在主机计算机上执行的软件可以在第二信号继续不被中断的情况下挂起第一信号。 系统还可以包括耦合到主机计算机的一个或多个附加嵌入式系统,每个附加嵌入式系统具 有运行相应RTOS的相应嵌入式处理器,配置用于基于从在主机计算机上所运行的软件接 收第一信号而执行相应软件应用的任务,并且每个附加嵌入式系统配置用于基于接收独立 于第一信号可控的其他相应信号而执行任务的个体指令。主机计算机还可以配置用于执行 仿真器或调试器。生成第一信号的软件可以在仿真器或调试器中运行。任何公开的方法都可以至少部分地由计算机程序执行,该程序例如电子设计自动 化(EDA)软件工具,包括存储在一个或多个计算机可读介质上的计算机可执行的指令。此 外,任何可以根据所公开的方法的实施方式进行修改的操作系统(例如,经修改的RT0S)也 可以被存储在一个或多个计算机可读介质上。所公开的技术的前述的以及其他的对象、特征和优点通过参考附图进行的下述的 详细描述将变得更加明显。


图1是示出了可以使用所公开技术的实施方式进行设计、仿真或验证的示意性嵌 入式系统的示意性框图。图2是示出了涉及图1中所示的嵌入式系统的不同的抽象层的示意性框图。图3是示出了图1中所示的嵌入式系统可以操作的典型的控制系统的示意性框 图。图4是示出了针对使用所公开的技术的实施方式来设计、仿真或验证嵌入式系统 的软件和/或硬件的第一布置的示意性框图。图5是示出了针对使用所公开的技术的实施方式来设计、仿真或验证嵌入式系统 的软件和/或硬件的第二布置的示意性框图。图6是示出了供嵌入式系统的实时时钟在其中由嵌入式系统上的时钟源生成的 示例性设计、仿真或验证环境的示意性框图。图7是示出了当处理器时钟继续由在嵌入式系统上的时钟源生成时,供由在主机 工作站上运行的软件在其中生成嵌入式系统的实时时钟的示例性设计、仿真,或验证环境 示意性框图。图8是示出了用于修改嵌入式系统的实时操作系统(RTOS),使得实时时钟的源是 在主机工作站上运行的软件的示例性方法的流程图。图9是示出了操作供嵌入式系统的实时时钟在其中由在主机工作站上运行的软 件生成的设计、仿真,或验证环境的示例性方法的流程图。
10
图10是示出了供嵌入式系统中的实时事件控制操作在其中由嵌入式系统的外围 设备生成的示例性设计、仿真,或验证环境的示意性框图。图11是示出了供嵌入式系统中的实时事件控制操作在其中由在主机工作站上运 行的软件生成的示例性设计、仿真,或验证环境的示意性框图。图12是示出了用于修改嵌入式系统的RT0S,使得实时事件的源是在主机工作站 上运行的软件的示意性方法的流程图。图13是示出了供用于控制嵌入式系统的操作的实时事件在其中由在主机工作站 上运行的软件生成的操作设计、仿真,或验证环境的示例性方法的流程图。图14是概念性地示出了与处理器时钟相关联的独立的实时时钟的时序图,其中 两个时钟具有不同的时基。在图14中,处理器时钟被用作时间轴的基础。图15是概念性地示出了与处理器时钟相关联的独立的实时时钟的时序图,其中 两个时钟具有不同的时基。在图15中,实时时钟被用作时间轴的基础。图16是示出了供所公开的技术的方面在其中可以被执行的第一示例性计算机网 络的示意性框图。图17是示出了供所公开的技术的方面在其中可以被执行的第二示例性计算机网 络的示意性框图。图18是示出了用于在例如图16和图17中的计算机网络的分布式计算环境中使 用所公开的技术的实施方式的一个示例性方法的流程图。图19是示出了根据所公开的技术的实施方式修改RTOS源代码的一个示例性方法 的流程图。
具体实施例方式I.总体考虑下文公开了可以与设计、仿真或验证嵌入式系统结合使用的方法、系统和装置的 代表性实施方式。所公开的方法、系统和装置不应当被解释为任何形式的限制。反之,本公 开涉及各个所公开实施方式的全部新颖的和非显而易见的特征和方面,不论是单独的或是 与其他特征和方面的各种组合和子组合。所公开的方法、系统和装置不限于任何特定的方 面、特征或它们的结合,而且所公开的方法、系统和装置也不要求存在一个或多个特定的优 点或解决特定的问题。尽管一些所公开的方法的操作为了方便的描述而采取特定的、连续的顺序进行描 述,应当理解的是除非在下述中通过特定的语言阐明了所需要的特定顺序,这种描述的方 式中包括了重新排序的情形。例如,顺序地进行描述的操作在某些情况下可以被重新排序 或者被同时执行。此外,为了简单起见,附图可能并未示出可以供所公开的方法在其中与其 他方法共同使用的各种方式。此外,在描述中有时会使用例如“触发”和“生成”的术语来 描述所公开的方法。这些术语是所执行的实际操作的高级抽象。与这些术语相对应的实际 操作可以取决于特定的实现而进行变化并且可以被本领域技术人员容易地识别。所公开的技术可以在一个或多个嵌入式系统的设计、仿真和/或验证期间应用。 嵌入式系统通常是包括互相通信的多个嵌入式系统的分布式系统的一部分。嵌入式系统 可以使用各种不同的硬件技术来实现,该硬件技术包括集成电路(例如,专用集成电路(ASIC),可编程逻辑器件(PLD),芯片系统(S0C或微处理器)或印刷电路板(PCB),它们本 身可以包括一个或多个集成电路和/或模拟组件)。此外,嵌入式系统可以使用驱动或控 制硬件的多种软件技术来实现。一个或多个嵌入式系统可以被使用在种类繁多的电子设备 中,其范围从便携式电子设备(例如,移动电话、媒体播放器等等)到规模更大的项目(例 如,计算机、控制系统、飞机、汽车、工厂等等)。所有这些包括至少部分使用公开的技术的实 施方式进行设计、仿真和/或验证的一个或多个嵌入式系统的项目都被认为是在本公开文 本的范围中。任何所公开的方法都可以通过使用存储在一个或多个计算机可读介质(例如,有 形的计算机可读介质,例如一个或多个光学介质(例如,CD或者DVD),易失性存储器组件 (例如DRAM或者SRAM),或者非易失性存储器组件(例如硬盘驱动器))上的软件进行执行, 该介质存储计算机可执行的指令,当该指令由计算机(例如,任何市场上有售的计算机)执 行时使得该计算机执行任何所公开的方法。这样的软件可以包括例如用于提供交互式设计 空间的电子设计自动化(EDA)软件工具,在该空间中,可以对嵌入式系统或者分布式嵌入 式系统(包括两个或更多嵌入式系统)的任何硬件或者软件组件进行设计、仿真和/或验 ilE。 一禾中歹iJt生胃: ! /入 Mentor Graphics CorporationSystem Vision tool ο这样的软件可以在单个计算机或者网络计算机(例如,通过因特网、广域网、局域 网、客户-服务器网络或者其他这样的网络)上执行。为了清楚,仅仅描述了基于软件的实 现的某些选定的方面。省略了在本领域所公知的其他细节。例如,应当理解的是,所公开的 技术并非被限制于任何特定的计算机语言、程序、计算机,或者网络架构。出于同样的原因, 可以用来执行计算机可读的指令的计算机硬件并未进一步详细地描述。此外,可以使用多种不同的数据结构或者格式,在计算机可读介质(例如一种或 多种有形的计算机可读介质,例如光学媒介(例如,CD或者DVD),易失性存储器组件(例如 DRAM或者SRAM),或者非易失性存储器组件(例如硬盘驱动器))上,创建、更新,或者存储 由任何所公开的方法产生的针对一个或多个嵌入式系统的设计信息、针对在一个或多个嵌 入式系统中的执行而修改的软件(例如,经修改的实时操作系统或者嵌入式软件应用),或 者源自对一个或多个嵌入式系统的仿真的仿真结果(包括任何中间的或者部分的结果)。 这样的设计信息、经修改的软件和/或仿真结果可以在本地计算机或者网络上(例如,由服 务器计算机)进行创建或者更新。可以通过包括因特网、内部网络、万维网、软件应用、电话、电视、电缆、视频、无线 电、磁通信、电子通信或者其他通信手段的多种有形通信介质来传递或者访问用于实现任 何所公开的方法的计算机可执行的指令、使用任何所公开的方法而产生的设计信息、由所 公开的方法所生成的经修改的软件,和/或使用任何所公开的方法而产生的仿真结果。例 如,用于导致计算机执行任何所公开的方法的计算机可执行的指令可以通过任何这样的有 形通信介质从服务器计算机传递到客户端计算机并且存储在位于客户端计算机的有形的 计算机可读介质中。任何所公开的方法也可以在计算机仿真环境中使用,其中使用存储在一个或多个 计算机可读介质上的嵌入式系统的表达(或者模型)对嵌入式系统进行仿真或者分析。然 而,出于介绍的目的,本公开文本有时通过嵌入式系统或者其组件的物理对偶(例如,处理器,总线、接口,以及其他这样的项目)来指代该嵌入式系统或者其组件。然而,应当理解的 是,在公开文本或者权利要求中的任何对物理组件的提及不仅包括物理组件,还包括在仿 真、设计,或者其他这样的EDA环境中所使用的这样的组件的表达(或者模型)。II.嵌入式系统概沭图1是典型的嵌入式系统100的示意性框图。被示出的嵌入式系统100包括在印 刷电路板(PCB) 110上的多个硬件组件。应当注意的是,PCB 110仅仅是针对嵌入式系统硬 件的多种可行物理封装中的一种。其他的封装选择包括集成电路(例如,ASIC、PLD,或者 SoC)。此外,多个嵌入式系统可以被包含在相同的物理封装(例如,多核ASIC或者多处理 器PCB)中。所有这些封装可能都被认为在本公开文本的范围中,并且可与所公开的技术结 合使用。然而,为了便于说明,附图以及随后的论述以PCB作为参考。在图1中,尽管这个 实现不应当被解释为限制,独立的嵌入式系统的范围在概念上被示为PCB 110。此外,在嵌 入式系统100中示出的组件的数量和类型将随着实现的不同而变化并且不应当被解释为 限制。嵌入式系统100包括处理器120(例如,微处理器或者微控制器)。处理器120可以 是任何适合的处理器,但是通常使用软件150进行操作,软件150包括实时操作系统(RTOS) 软件组件以及一个或者多个应用软件组件。RTOS软件组件通常对处理器如何执行应用软件 组件(任务)进行控制和调度。一般来说,RTOS提供“确定的”定时行为。换句话说,由RTOS提供的操作系统服务 仅仅消耗已知的并且预期的时间量,由此允许操作系统运行在实时环境中使用的应用,在 该环境中,及时地完成特定的任务可能对整个系统的正确操作来说非常重要。出于这个原 因,使用RTOS的处理器经常被用于复杂电子设备中的嵌入式应用。应当注意的是,所公开 的技术通常可以在提供确定的定时行为的操作系统或者调度器中使用,它们都被认为是包 含在如在这里所使用的术语RTOS之中。图1中的处理器120耦合到一个或多个输入/输出(I/O)机制122,其支持嵌入式 系统100与附加系统或者组件进行通信。I/O机制122可以包括一个或多个本领域中已知 的通信信道。例如,I/O机制122可以包括以下一个或多个局域网(LAN)信道,通用串行 总线(USB)信道,串行外围接口(SPI)信道,联合测试推动团体(JTAG)信道,拐射线信道, 局域互连网络(LIN)信道,控制器区域网络(CAN)信道,进程间通信(IPC)信道,或者任何 它们的组合或子组合。此列表不应当被解释为限制,因为I/O机制可以包括其他模拟的或 数字的通信信道(包括例如,任何模数(A/D)或者数模(D/A)转换器)。所示出的嵌入式系统100还包括存储器124,其耦合到处理器120并且用于存储 软件150以及在嵌入式系统的操作期间所生成的信息,或者用于向处理器提供信息。例如, 存储器IM可以存储将由处理器在嵌入式系统100的操作期间执行的用于RTOS软件组件 以及一个或多个嵌入式应用软件组件(任务)的机器代码。存储器1 可以包括任何一种 或多种不同的非易失性存储器组件(例如,EEPR0M、硬盘驱动器、微型磁盘、闪存、非易失性 RAM之类的)或者易失性存储器组件(例如,DRAM、SRAM之类的)。所示出的嵌入式系统100还包括时钟源130以及时钟生成器电路132。时钟源130 可以包括例如晶体振荡器(例如,石英振荡器)或者其他稳定的、周期性的信号源。时钟生 成器电路132通常包括组合逻辑和/或时序逻辑,配置用于从时钟源130接收时钟信号以 及提供从原始的时钟信号所获得的一个或多个其他的时钟信号。例如,时钟生成器电路132可以包括产生不同频率的时钟信号的时钟分频逻辑或者时钟倍增逻辑。在所示出的实施方式中,例如,时钟生成器电路132针对处理器120生成两个时钟 信号处理器时钟140和实时时钟142。处理器时钟140和实时时钟142 二者都根据来自时 钟源130的原始时钟信号而获得。由于实时时钟142来自与处理器时钟140同样的源,两 个时钟可以相互耦合,并且共享相同的时基。应当注意的是,时钟电路130和132的布置仅 仅是生成共享相同的时基的两个时钟的多种方法中的一种,并且不应当被解释为限制。例 如,时钟140和142中的每一个可以根据不同的时钟源或者时钟生成器电路(例如,两个独 立的石英振荡器)获得。然而,由于两个时钟源最终依赖于现实世界的物理学进行振荡,因 此它们共享相同的时基并且因此被认为是互相耦合的。处理器时钟140控制处理器120执行个体指令的基本速率。相反,实时时钟142控 制由处理器120对任务(例如,指令集)进行调用、执行以及先占的速率。实时时钟142通 常比处理器时钟140慢,并且与在处理器120上运行的操作系统(例如,RT0S)结合使用。图2是示出了与嵌入式系统100有关的不同的抽象层的示意性框图200。应用层 210代表软件150的应用部分,其嵌入在系统100中,并且提供系统的所需要的行为。应用 层210是对与嵌入式系统进行交互的其他组件和系统“可见的”的分层,其响应于实时时钟 信号以及在某些情况下响应于其他实时事件而输入和输出信息。RTOS层220代表在处理 器上运行的软件150的RTOS部分。RTOS层220提供系统的确定的行为,并且执行应用层 210。应用层210和RTOS层220共同代表嵌入式系统的软件250。嵌入式系统的软件 250代表在处理器上运行的软件150。由于有软件应用执行的操作本质上是生成可预知的 输出以及控制整个嵌入式系统的逻辑行为的逻辑操作,因此应用层和RTOS层可以被视为 在“应用时域”或者“逻辑平面”中进行操作。应用时域推进的速率由实时时钟和/或由一 个或多个实时事件(其可以与实时时钟同步或者异步)来定义。图2中的处理器层230代表供软件250在其上操作的处理器。I/O子系统层240 代表嵌入式系统的各种其他硬件组件,其耦合到处理器及其执行的软件250或者以其他方 式支持其操作。此外,在I/O子系统层240中的某些组件支持处理器(例如,JTAG 242),其 他组件支持应用(例如,模拟和数字I/O M4)。处理器层230和I/O子系统层240共同代表嵌入式系统的硬件沈0。由于由处理器 以及嵌入式系统的其他硬件所执行的操作对于与嵌入式系统交互的组件来说是不可见的, 并且该操作不是由应用直接定义的,因此由处理器以及嵌入式系统的其他硬件所执行的操 作可以被看作是在不同的时域或平面中进行操作。特别地,由于处理器的操作由嵌入式系 统上的物理时钟源来控制,因此处理器层230可以被视为在“物理时域”或者“物理平面”中 进行操作。继而在概念上,“逻辑平面”与嵌入式软件应用所执行的逻辑操作相关,而“物理 平面”与执行嵌入式软件的或者以其他方式物理上存在于嵌入式系统中的底层系统相关, 并且并不控制嵌入式系统的逻辑行为。图3是示出了图1中所示的嵌入式系统100可以操作的典型的控制系统300的示 意性框图。在相关部分中,图3示出了嵌入式系统310、致动器320、设备330以及传感器 340。在所示出的实施方式中,致动器320耦合到嵌入式系统310,并且从嵌入式系统310接 收影响致动器状态的控制信号。致动器320转而耦合到设备330,并且配置用于根据致动器的状态而改变设备的某些性能或者操作特性。传感器340耦合到设备330,并且配置用于获 得与致动器320所改变的设备的性能或者操作特性有关的测量值。传感器340还耦合到嵌 入式系统310,并且向嵌入式系统提供代表测量值的传感器信号。以此方式,控制系统300 构成了闭环控制系统。这样的闭环控制系统被用于各种应用中,它们全部都可以使用所公开的技术的实 施方式进行设计、仿真或者验证。例如,这样的闭环控制系统描述了在现代汽车以及其他交 通工具中存在的机电系统。例如,控制系统300可以包括汽车的电子节流阀控制,在这种情 况下设备330将会是电子节流阀体,致动器320将会是节流阀转动体(例如,电动机),其响 应于来自嵌入式系统310的控制信号而进行操作从而移动节流阀体的节流阀板,以及传感 器340将会是节流阀板位置传感器(例如,电位计),其进行操作以检测并且测量节流阀板 的位置。此外,虽然在图3中示出的是单个闭环控制系统,但是单个嵌入式系统可以与耦 合到相应附加设备的一个或多个附加致动器或者传感器交互,从而形成多个附加闭环系 统。类似地,嵌入式系统可以是较大的分布式嵌入式系统(包括由通信网络或者信道连接 的两个或更多嵌入式系统)的一部分,每个控制任意数目的致动器并且从任意数量的传感 器接收信号。III.示例件设计、仿真和验证环境在对嵌入式系统(例如,在分布式嵌入式系统中使用的嵌入式系统)进行设计、仿 真或者验证的过程期间,经常会需要对嵌入式系统的一个、某些或全部组件(包括将要在 嵌入式系统上执行的软件)或者嵌入式系统试图与之耦合的一个、某些或全部组件(例如, 致动器、设备、传感器,以及其他这样的组件)进行仿真。在图4和图5中示出了可以用来使用所公开的技术的实施方式来对嵌入式系统或 者分布式嵌入式系统中的任何组件进行设计、仿真或者验证的示例性环境。特别地,图4是 示出了耦合到工作站420的嵌入式系统410的示意性框图400。图5是示出了嵌入式系统 510、512、514的示意性框图500,其中嵌入式系统510、512、514共同形成耦合到工作站520、 530的示例性分布式嵌入式系统516。虽然在图5中示出的是3个嵌入式系统以及2个工 作站,但是任意数目的嵌入式系统都可以被包括在分布式嵌入式系统516中,并且任意数 量的工作站都可以被包括在该环境中。工作站420、520、530通常通过适合的通信总线或者 其他向嵌入式系统提供通信的接口耦合到嵌入式系统。工作站可以用于例如设计、仿真或者验证任何传感器、致动器、设备或者嵌入式系 统410、510、512、514试图与之通信的其他嵌入式系统。设计者还可以使用工作站420、520、 530上的软件工具对将在嵌入式系统上执行的嵌入式软件应用进行设计或者仿真。换句话 说,图4和图5中所示的示例性仿真环境可以被用作针对硬件和软件二者的设计、仿真或者 验证过程的一部分。例如,工作站420、520、530可以提供调试环境,其允许用户对软件就像 该软件正在由处理器执行一样进行调试。工作站420、520、530还可以提供仿真环境,其允 许用户在嵌入式系统中对应用的执行进行仿真(例如,使用指令集仿真器、RTOS仿真器,或 者其他适合的仿真器),从而向可以有助于对软件所试图进行的操作进行验证的嵌入式系 统产生适当的信号。此外,工作站420、520、530可以提供仿真环境,在其中对与嵌入式系统 进行交互的硬件组件(例如,致动器、设备,以及传感器)进行仿真。可以提供如上所述的仿真环境的软件工具的一个示例是来自Mentor Graphics Corporation的市场上有售的 System Vision系统建模软件工具。此外,虽然在图4中仅仅示出了单个工作站,但应当理解的是,嵌入式系统所耦合 到的仿真环境可以由两个或更多工作站来实现,其中每个都运行两个或者更多软件工具, 或者该仿真环境可以包含通过附加I/O机制耦合到嵌入式系统的多个仿真环境(通过一 个、两个,或者更多的工作站实现)。此外,应当理解的是,整体的系统(包括一个或者更多 的嵌入式系统)可以被仿真,使得在设计、仿真或者验证过程中不使用物理嵌入式系统。任何上述的环境都可以在对所公开的技术的具体实施方式
的执行中使用。IV.控制实时事件在开发分布式嵌入式系统的设计、仿真和/或验证阶段期间,经常需要在所控制 的环境中对分布式嵌入式系统的一个或多个组件(硬件或软件)进行建模,以及对该组件 的操作进行仿真。例如,常常期望在嵌入式软件正由嵌入式系统的处理器执行并且正与其 他系统和/或分布式系统的组件交互时,分析或调试用于嵌入式系统的嵌入式软件。然而, 由于嵌入式系统的实时时钟和处理器时钟通常相互耦合并且共享相同的时基,嵌入式软件 的软件调试或者仿真可能会存在问题。例如,在工作站上运行的软件调试器或者仿真器可 能无法与根据嵌入式系统上的源时钟导出的实时时钟保持同步。或者,在某些情况下,可 能期望以远快于源时钟所提供速率的速率,对在工作站上运行的软件中的实时事件进行仿 真。然而,由于实时时钟和处理器时钟之间的相互耦合以及所共享的时基,通常都不可能实 现这样的被控制的仿真。此外,当正在设计或者验证的系统耦合到其他嵌入式系统、致动器、设备和/或传 感器时,通常不可能在其他组件的物理时域中启动、停止或以其他方式控制时钟或者定时 事件。例如,如果设计者正在使用耦合到工作站以及物理发动机的嵌入式系统的原型对用 于控制发动机的嵌入式系统中的软件进行验证,在工作站上运行的软件不可能迅速地“停 止”发动机运行于其中的底层物理时域(例如,在工作站上运行的软件不可能立即停止以及 启动在磁场中旋转的物理发动机电枢,也不能够立即停止以及启动与其轴连接的设备)。为了帮助解决这些问题,所公开的技术的实施方式将实时时钟与正在被设计、仿 真或者验证的嵌入式系统的处理器时钟分离(或称解耦)。所公开的技术的实施方式允许 独立于正在被设计、仿真或者验证的嵌入式系统的物理时域来控制应用时域(因此,两个 时域可以具有不同的并且独立的时域,其中每个都可以单独控制)。例如,在某些实施方式 中,控制嵌入式应用的实时时钟由工作站上运行的软件生成,而不是由嵌入式系统上的时 钟源生成。处理器时钟因此可以保持不受干扰,并且继续根据时钟源导出。此分离使得可 以在不改变该系统的底层执行的情况下启动、停止、暂停和继续嵌入式应用的“实时性”。图6是示出了示例性设计、仿真或验证环境的示意性框图600,其中工作站660耦 合至嵌入式系统610,并且实时时钟根据嵌入式系统的时钟源导出。特别地,嵌入式系统 610包括时钟源630,其生成由时钟生成器电路632接收的原始时钟信号。时钟生成器电路 632根据原始时钟信号生成两个时钟信号实时时钟信号和处理器时钟信号。实时时钟信 号和处理器时钟信号二者都耦合到嵌入式处理器620。出于说明的目的,在图6中用虚线 650示出了实时时钟从其原始源的路径。出于进一步说明的目的,沿着路径650的信号被为 触发(通常是通过处理器620的中断子系统)沿路径670的另一信号,该另一信号从硬件
16继续并且进入RTOS软件680的中断子系统。嵌入式处理器620的RTOS使用实时时钟信号 来控制由嵌入式处理器正在执行的嵌入式软件应用定义的任务的执行。处理器620使用处 理器时钟来控制执行与每个实时事件相关联的指令的速率。图7是示出了图6中的示例性设计、仿真或验证环境的示意性框图700,其中实时 时钟独立于处理器时钟(或称与之解耦),并且因此可以具有不同的时基。在图7中用虚 线652示出了实时时钟信号路径。在所示出的实施方式中,实时时钟由工作站660上运行 的软件生成。特别地,图7中的实时时钟信号由工作站660上运行的软件调试器或者仿真 工具之类的软件生成。“仿真的”实时时钟信号通过在工作站660与处理器620之间提供 通信信道的I/O机制之一而耦合到嵌入式系统610。实时时钟信号可以通过能够将工作站 660耦合到处理器620的中断子系统的、嵌入式系统的任何适当I/O机制622进行传播。例 如,实时时钟信号可以通过以下来路由LAN信道,USB信道,SPI信道,JTAG信道,拐射线信 道,LIN信道,CAN信道,IPC信道,或者它们的任何组合或者子组合。与图6中沿路径650 的信号如何被示为触发沿路径670的另一信号相类似,图7中沿路径652的信号被示为触 发(通常通过处理器620的中断子系统)沿路径670的另一信号,该另一信号从硬件继续, 并且进入RTOS软件680的中断子系统。为了使RTOS可以沿着耦合到工作站的通信信道适当地接收实时时钟信号,通常 会执行对RTOS和/或其他嵌入式软件的修改。例如,可以修改处理用于RTOS的基本定时 服务的RTOS组件,使得期望出现实时时钟的信道被改变为上述可选信道之一。对于某些 RT0S,此修改可以这样来执行修改配置文件、参数或者通过RTOS制造者提供的某些其他 配置过程(例如,作为RTOS的构建/配置步骤中的一部分,或者在RTOS的运行时配置步骤 期间)。然而,对于某些RT0S,可能需要修改RTOS本身的源代码。在某些情况下,备选地或 者附加地,可能需要修改其他嵌入式组件,使得RTOS可以通过耦合到工作站660的期望I/ 0机制来预期实时时钟。例如,在某些情况下,可能还要或者备选地修改外围驱动器软件。图8是示出了用于根据所公开的技术修改RTOS的一种示例性实施方式800的流 程图。在810,接收用于嵌入式系统的处理器的RTOS的至少一部分(例如,用于处理定时服 务或者计时器分配的RTOS部分)。在812,修改RT0S,使得传送实时时钟的路径是将要耦合 到主机计算机的嵌入式系统的通信信道(例如,LAN信道,USB信道,SPI信道,JTAG信道, 拐射线信道,LIN信道,CAN信道,IPC信道,或者它们的任何组合或者子组合)。因此,实时 时钟信号的源与处理器时钟信号的源解耦(信号的最终的“时基”或者“时间平面”因而被 解耦,并且因此可以独立控制)。在814,存储经修改的RTOS (例如,在主机工作站的一个或 多个有形的计算机可读介质上,或者在用于执行的嵌入式系统的存储器中)。图19是示出了用于修改RTOS以使用实时时钟信号的备选源的另一示例性方法的 流程图。虽然该图示出了修改RTOS以使用实时时钟信号的备选源的过程,但是相同的过程 也可以用来有效地修改RTOS以使用实时事件的备选源。在过程框1902,例如,动作者A向 动作者B提供RTOS参考设计以供修改。在过程框1904,动作者B修改RTOS源以使用实时 时钟信号的备选信道,如所公开的实施方式中所述。在过程框1906,动作者A从动作者B接 收经修改的RT0S。依赖于RTOS的任何嵌入式软件应用继而可以在经修改的RTOS上执行。 图19中示出的方法仅仅是一个示例,并非是根据所公开的技术的实施方式来修改RTOS的 唯一方法。
17
图9是示出了用于控制实时时钟(例如,在上述任何设计、仿真或者验证环境中) 的示例性方法900的流程图。在910,由主机计算机上运行的软件生成实时时钟信号。在 912,实时时钟信号触发由嵌入式系统的嵌入式处理器上运行的RTOS所执行的软件应用定 义的一个或多个任务。RTOS可以是经修改的RT0S,其配置用于通过耦合到主机计算机的通 信信道来接收实时时钟信号。例如,可以通过图8中的方法800来修改RT0S。由于实时时 钟独立于嵌入式系统的处理器时钟和时钟源,因此主机计算机上运行的软件可以按照时间 同步的方式、以相对于处理器时钟的不同时基、在不中断处理器时钟的情况下控制嵌入式 系统的嵌入式软件。例如,处理器时钟可以在方法动作910、912期间继续以全速(有时称 为“高速”)运作。在方法900的某些实现中,在主机计算机上运行的软件以“非阻塞模式”生成实时 时钟信号。例如,在主机计算机上运行的软件可以继续以期望的速率生成时钟信号,而不需 要等待处理器或者接收系统的其他组件确认实时时钟信号的接收。当实时时钟信号的接收 者(例如,处理器和RT0S)处理实时事件的速度能够与提供实时事件一样快时,期望使用非 阻塞模式。备选地,在主机计算机上运行的软件可以按照“阻塞模式”运作,在该模式中,在 主机计算机上运行的软件在生成下一信号前等待系统的处理器、RTOS或者其他组件对实时 时钟信号的接收进行确认。这为可能正在接收实时时钟信号的任何系统提供机会,以控制 实时时钟域(“应用时域”或者“逻辑平面”)中的时间前进。例如,由嵌入式处理器执行的 嵌入式软件应用可以这样来控制实时性的前进在嵌入式软件应用准备好继续之前,不提 供确认信号。例如当嵌入式系统上运行的嵌入式软件由调试器控制并且已经挂起时,此模 式可能是有用的。阻塞模式有用的另一种情况是接收系统处理事件的速度可能无法与主 机计算机上运行的软件发送事件一样快。虽然上述实施方式涉及控制由主机工作站上运行的软件所设计、仿真或者验证的 嵌入式系统的实时时钟信号,但是其他实时事件(例如,异步的或者非周期性的事件)同样 可以由主机计算机上运行的软件进行控制。例如,控制嵌入式系统操作的实时事件可以具 有各种其他源。例如,耦合到嵌入式系统的致动器、传感器、其他嵌入式系统和/或其他外 围设备可以生成影响嵌入式软件如何根据RTOS被执行的实时事件(例如,异步中断或者异 步外部事件)。例如,响应于从耦合到嵌入式处理器的外围设备接收到中断,RTOS可以执行 高优先级的任务。使用所公开的技术的实施方式,这些实时事件的源可以被修改,使得它们 作为替代源于在主机计算机上运行的软件。图10是示出了示例性设计、仿真或者验证环境的示意性框图1000,其中工作站 1060耦合到嵌入式系统1010,并且耦合到嵌入式系统的处理器1020的外围设备通过I/O 机制1022提供实时事件信号。在这个示例中,实时事件由另一嵌入式系统1070生成。然 而,此特定布置不应被作为限制,因为实时事件可以由多种源生成。例如,在实时系统中,I/ 0外围设备(例如,A/D转换器,脉冲宽度调制器、数字I/O或者其他这样的外围设备)经常 被用于采样以及向处理器发送数字数据,其中嵌入式软件应用对数据进行操作并且向其他 子系统发送输出信号。出于说明的目的,在图10中以虚线1050的形式示出了实时事件的 路径,该路径从其在另一嵌入式系统1070上的原始源去往处理器1020。与图6中沿路径 650的信号如何被示为触发沿路径670的另一信号相类似,图10中沿路径1050的信号被示 为触发(通常通过处理器1020的中断子系统)沿路径1080的另一信号,该另一信号从硬件继续并且进入RTOS软件1090的中断子系统。图11是示出了图10中的示例性设计、仿真或者验证环境被修改后的示意性框图 1100,该修改使得实时事件由主机计算机1060上而非其他嵌入式系统1070上运行的软件 生成。图11中的实时事件可以由工作站1060上运行的软件调试器或者仿真工具之类的软 件生成。“仿真的”实时事件可以通过在工作站1060与处理器1020之间提供通信信道的I/ 0机制之一而耦合到嵌入式系统1010。在图11中用虚线1052示出了实时事件路径。实时 事件可以通过能够将工作站1060耦合到处理器1020的中断子系统的、嵌入式系统的任何 适当I/O机制1022进行传播。例如,实时事件可以通过以下进行路由LAN信道,USB信道, SPI信道,JTAG信道,拐射线信道,LIN信道,CAN信道,IPC信道或者它们的任何组合或者 子组合。与图10中沿路径1050的信号如何被示为触发沿路径1080的另一信号相类似,图 11中沿路径1052的信号被示为触发(通常通过处理器1020的中断子系统)沿路径1080 的另一信号,该另一信号从硬件继续,并且进入RTOS软件1090的中断子系统。如上文关于图6所讨论的,为了使处理器1020沿着耦合到工作站的通信信道适当 地接收实时时钟信号,通常执行对RTOS和/或其他嵌入式软件的修改。以上关于图7所述 的多种技术也可以被用于修改RTOS和/或其他嵌入式软件,使得处理器1020可以通过耦 合到工作站1060的所需要的I/O机制来等待实时事件。图12是示出了用于修改RTOS以从主机计算机上运行的软件接收实时事件的一种 示例性实施方式1200的流程图。在1210,接收用于嵌入式系统的处理器的RTOS的至少一 部分(例如,用于处理I/O服务或者外围设备分配的RTOS部分)。在1212,修改RT0S,使 得接收实时事件的路径是将要耦合到主机计算机的嵌入式系统的通信信道(例如,LAN信 道,USB信道,SPI信道,JTAG信道,拐射线信道,LIN信道,CAN信道,IPC信道或者它们的 任何组合或者子组合)。因此,实时事件信号的源与处理器时钟信号的源解耦(信号的最 终“时基”或者“时间平面”因而被解稱,并且因此可以独立控制)。在1214,存储经修改的 RTOS (例如,在主机工作站的一个或多个有形的计算机可读介质上,或者在用于执行的嵌入 式系统的存储器中)。图13是示出了用于在设计、仿真或者验证环境中(例如,在任何以上关于图4和 5所述的设计或者仿真环境中)控制实时事件的示例性方法1300的流程图。在1310,在主 机计算机上运行的软件生成实时事件。在1312,实时事件信号触发由嵌入式系统的嵌入式 处理器上运行的RTOS所执行的软件应用定义的一个或者多个任务。RTOS可以是经修改的 RT0S,配置用于通过耦合到主机计算机的通信信道接收实时事件信号。例如,RTOS可以通过 图12中的方法1200进行修改。由于实时事件独立于嵌入式系统的处理器时钟和时钟源, 因此在主机计算机上运行的软件可以按照时间同步的方式、以相对于处理器时钟不同的时 基、在不中断处理器时钟的情况下控制嵌入式系统的嵌入式软件。例如,处理器时钟可以在 方法动作1310、1312期间继续以全速运作。如上文关于图9所述的实时时钟信号,在主机计算机上运行的软件可以按照阻塞 模式或者非阻塞模式生成实时事件。当与传感器、致动器或者设备的仿真模型一起使用时, 阻塞模式可以为主机计算机上运行的嵌入式软件调试器或者仿真器提供在运行中的物理 系统上“停止时间”(例如,停止实时性)的能力。当实时事件由传感器或者设备连续地生 成时,通常无法实现这种控制。例如,如果实时事件由耦合到旋转电动机的传感器提供,则
19不可能停止旋转电动机的动量以使得软件调试器可以单步通过控制器代码。然而,通过对 将要由主机计算机上运行的软件生成的实时事件进行重新映射,可以在对嵌入式软件进行 调试中实现更大的灵活性以及可见性。图11-图13中的实施方式和随附的论述包含依赖于RTOS实时时钟的实时事件以 及独立于RTOS实时时钟的实时事件。例如,在实时系统中,可以通过实时时钟或者根据实 时时钟导出或与实时时钟相关的另一时钟信号,周期性命令某些I/O外围设备。这些I/O 外围设备可以向软件应用提供数据和/或从软件应用接收数据以供处理。通过使用关于图 7-图9以及图11-图13描述的技术的组合,触发对这些数据进行读或者写的实时事件信号 可以转而基于在主机计算机上运行的软件所生成的事件。例如,在主机计算机上运行的软 件可以控制与实时时钟相关的所有事件,或者在某些实施方式中,控制整个实时域(或者 应用时域)中的所有事件。在其他实施方式中,在主机计算机上运行的软件可以控制实时 事件的任何子集,无论它们与实时时钟同步还是异步。通常来说,涉及控制实时时钟相关的任何上述方法都可以与涉及控制实时事件的 方法结合使用。例如,所公开的技术的实施方式包括方法、系统和设备,它们修改一个或多 个嵌入式系统的RT0S,使得实时时钟和实时事件二者都可以由主机工作站上运行的软件来 控制。任何上述方法都可以通过使用物理嵌入式系统或者仿真嵌入式系统或者其混合 体来执行,在混合体中,部分系统是仿真的而其余部分是物理的。例如,图7-图9或者图 11-图13中的嵌入式系统或者嵌入式处理器可以是该系统或者处理器的物理实施方式(例 如,嵌入式系统或者嵌入式处理器的物理原型),仿真的嵌入式系统(例如,使用RTOS仿真 器),或者仿真的嵌入式处理器(例如,使用指令集仿真器)。在仿真的嵌入式系统环境中, 驱动RTOS时基的实时时钟源可以与主机工作站的定时器服务解耦,并且可以独立控制(在 主机工作站中,定时器服务通常具有与处理器时钟相同的时基,并且它们因而可以互相耦 合)。此外,在仿真的环境中,嵌入式处理器可以由例如指令集仿真器进行仿真。系统的其 他硬件组件可以由任何适合的硬件仿真器进行仿真,或者可以是实际的物理硬件组件。此外,虽然如图6-图13中所述的示例性实施方式是仅仅与单个被设计、仿真或者 验证的嵌入式系统结合示出,但所公开的实施方式也可以被使用在包含多个嵌入式系统的 任何上述的设计、仿真或验证环境中。例如,所公开的实施方式可被用于具有两个或更多嵌 入式系统的设计、仿真或者验证环境中,该环境具有由在主机计算机上运行的软件按需求 控制的实时时钟信号或者实时事件。例如,实际的或者模拟的嵌入式系统的任何聚集都可 以同时包括在根据所公开的技术的设计、仿真,或者验证环境中。此外,实时时钟和/或外围设备I/O实时事件可以来自主机计算机上运行的单个 软件过程,或者来自在一个或者多个主机计算机上运行的两个或者更多同步的软件过程。 所公开的技术的实施方式例如允许一个嵌入式系统上的实时事件上具有断点,并且维持与 其他嵌入式系统的实时同步。这些实施方式的实时事件可以使用任何可用的通信信道(例 如,任何通常用于调试的可以获得的信道,例如LAN、USB,或者JTAG信道,或者任何其他的 可以获得的信道,例如CAN、LIN、IPC,或者其他这样的信道)被传送给目标嵌入式系统。此外,虽然以上如图7-图9和图11-图13中所述的示例性实施方式描绘了源自 在主机计算机上运行的软件的实时时钟和事件信号,但是应当注意和理解的是,信号的源
20对某些实施方式来说是任意的,只要它独立于处理器时钟源(解耦并且具有可能不同的时 基)。例如,提供时间解耦的实时时钟和事件信号的软件可以作为嵌入式处理器上执行的单 独任务来执行,并且由RTOS控制(调度)。当物理嵌入式系统不具有适合的I/O机制来与 主机计算机上运行的软件通信或者无法以及时的方式这样做时,这是有用的。图14和图15是概念性地示出了如在应用时域中所感知到的时间怎样可以与如从 使用所公开的技术的实施方式的物理域中所感知到的时间(这些例如以上如图7-9和图 11-13中所述)分离的时序图1400和1500。这些图说明了当实时时钟和处理器时钟具有 各自的时基时的情形。特别地,图14示出了时序图1400,其中处理器时钟速率被用作时间 轴的基础。在时序图1400中,波形1412示出了处理器时钟的周期性脉冲,并且波形1410 示出了实时时钟。出于说明的目的,波形1410和1412被示为当一起操作时具有相同的频 率以及彼此同步。然而,实际上,两个波形之间的频率差异可以是显著的,并且两个波形有 可以是异步的。图14示出了在时间1420处,在逻辑域中的实时时钟被挂起。其原因可能是例如 在工作站上运行的软件调试器挂起被测试的软件的执行以作为调试过程的一部分。由于在 所示出的实施方式中的实时时钟独立于处理器时钟,因此图14示出了处理器时钟在没有 中断的情况下继续进行操作。在时间1422处,实时时钟被重新激活,并且波形1410继续。图15与时序图1400相似但是使用实时时钟作为时间轴的基础。时间1420和时间 1422也在图15中示出,但却是使用实时时钟作为时间轴的基础而被示出。因此,波形1412 在两个时间1420和1422之间的那个部分被示为出现在单个实时时钟周期内。图15从应 用时域的角度示出当实时时钟信号被临时挂起时没有产生中断。例如,在嵌入式系统的处 理器上执行的软件按照一系列逻辑步骤来定义,这些逻辑步骤通常不会取决于实时时钟是 否被挂起(并且假设系统的其他逻辑组件由相同的实时时钟控制)而发生变化。此外,虽然在上文结合图14-图15描述的示例性实施方式所示出的仿真环境中, 应用时域慢于其普通物理时域的对应物,但是应当理解的是,情况也可以相反,并且应用时 域可以快于其普通物理时域的对应物。当期望加速实时性以便在相对短的时间内仿真和验 证长期操作时,这一点非常有用。由于一些所公开的实施方式对提供给RTOS以及在嵌入式处理器上运行的应用软 件的实时时钟信号和/或实时事件进行控制,因此看似将存在某些风险实时时钟或者其 他实时事件的源与处理器时钟源的分离可能导致难以获知嵌入式处理器上运行的RTOS是 否以确定性方式进行操作。然而,由于实时时钟和/或实时事件的源受到控制,因此可以以 高精度来测量嵌入式系统的实际中断服务程序aRs)执行时间。例如,可以控制实时事件, 使得它们不中断ISR,如同实时事件被与处理器时钟相关联时可能发生的一样。在所公开的 技术的一个实施方式中,系统简档器被用于精确地测量执行时间(例如,即使执行时间超 过了常规时间配额的限度)。V.用于应用所公开的技术的示例性网络环境上述技术的任何方面都可以使用分布式计算机网络来执行。图16示出了一个这 样的网络。服务器计算机1600可以具有关联的存储设备1602(在服务器计算机的内部或 者外部)。例如,服务器计算机1600可以配置用于执行任何所公开的实施方式(例如,作为 EDA软件工具的一部分,例如用于设计、仿真或者验证嵌入式系统的EDA工具)。服务器计算机1600可以耦合到通常如1604所示的网络,其可以包括广域网、局域网、客户-服务器 网络、因特网或者其他这样的网络。一个或者多个客户端计算机(例如在1606、1608中所 示)可以使用网络协议耦合到网络1604。该工作也可以在单个、专用的工作站上执行,该工 作站具有它自己的存储器以及一个或多个CPU。图17示出了另一种示例性网络。一个或多个计算机1702通过网络1704进行通信 并且形成了计算环境1700(例如,分布式计算环境)。计算环境1700中的每个计算机1702 都可以用于执行任何所公开的实施方式中的至少一部分。在被示出的实施方式中的网络 1704还耦合到一个或多个客户端计算机1708。图18示出了用于运用远程服务器计算机(例如,图16中所示的服务器计算机 1600)或者远程计算环境(例如,图17中所示的计算环境1700)对所公开的技术的实施方 式进行使用的方法。如果不可能使用所公开的技术的实施方式将实时时钟从处理器时钟解 耦,图18中所示的示例性方法仅在以下情况下是可能的,即系统仿真中的模型信息交换的 时间延迟(用作交换信息的时间)少于交换之间的时间(通常不可能实现)。然而,使用所 公开的技术的实施方式,模型信息交换的时间延迟是无关的,这是由于仿真可以等待(被 阻塞)交换之间所需要的任何时间量而不会有实时溢出的可能性。例如,图18例如示出了 系统仿真,其中系统模型跨联网的计算环境分布,并且在运行时交换仿真速率信息以便获 知何时进行阻塞并且等待更多的数据。在过程框1802,在服务器上运行的模型被阻塞,等待 来自客户端的速率信息请求。在过程框1804,客户端做出针对速率信息的请求。在过程框 1806,服务器接收该请求并且向客户端发送速率数据。在过程框1808和1810,客户端和服 务器以所传送并且达成一致的速率交换仿真数据。经过对所公开的技术的原理进行说明和描述,对本领域技术人员来说,很明显地 可以对所公开的实施方式进行排列和细节上的修改而不会背离这些原则。例如,虽然所公 开的实施方式是以应用在嵌入式系统的开发过程中进行描述,但是它们更为普遍地可以应 用在任何硬件和/或软件开发过程中,在该过程中需要对影响硬件和/或软件组件的执行 的时钟或者事件进行控制,并且该时钟或者事件通常源于另一源和/或以其他方式共享相 同的时基(例如,来自PCB的板载时钟)。考虑到可供所公开的技术的原理得到应用的多种 可能的实施方式,应当承认被用来说明的实施方式仅仅是该技术的较佳的示例并且不应当 被作为对本发明的范围的限制。相反地,本发明的范围是由下述的权利要求以及它们的等 同物来定义。我们因而要求从这些权利要求的范围和精神中所获得的全部同样作为本发明 的组成部分。
权利要求
1.一种方法,包括生成实时时钟信号;以及利用所述实时时钟信号触发由嵌入式软件应用定义的任务,其中所述嵌入式软件应用由嵌入式处理器利用实时操作系统(RTOS)执行,以及其中所述实时时钟信号是独立于驱动所述嵌入式处理器的处理器时钟信号可控的,使 得所述实时时钟信号具有与所述处理器时钟信号不同的时基。
2.根据权利要求1所述的方法,其中所述实时时钟信号由计算机工作站上运行的软件 生成。
3.根据权利要求2所述的方法,其中所述计算机工作站上运行的所述软件是调试器或 者仿真器中运行的应用。
4.根据权利要求1所述的方法,其中所述实时时钟信号由另一外部嵌入式系统上运行 的软件生成。
5.根据权利要求1所述的方法,其中所述实时时钟信号由作为所述嵌入式处理器中的 任务而运行的软件生成。
6.根据权利要求1所述的方法,还包括在不中断所述处理器时钟信号的情况下,在一 段时间内挂起所述实时时钟信号的生成。
7.根据权利要求6所述的方法,其中挂起所述实时时钟信号的生成的动作响应于由所 述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
8.根据权利要求6所述的方法,还包括在不中断所述处理器时钟信号的情况下,重新 启动所述实时时钟信号的生成,重新启动所述实时时钟的动作使所述触发继续。
9.根据权利要求8所述的方法,其中重新启动所述实时时钟信号的生成的动作响应于 由所述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
10.根据权利要求1所述的方法,其中所述嵌入式处理器是仿真的嵌入式处理器,并且 所述处理器时钟信号是仿真的处理器时钟信号,所述仿真的嵌入式处理器以及所述仿真的 处理器时钟由计算机工作站上运行的软件进行仿真。
11.根据权利要求10所述的方法,其中所述仿真的嵌入式处理器以及所述仿真的处理 器时钟信号使用指令集仿真器或者RTOS仿真器之一被仿真。
12.根据权利要求1所述的方法,其中所述嵌入式处理器是嵌入式系统的一部分,并且 其中所述实时时钟信号部分地由位于所述嵌入式系统上的时钟生成器电路生成。
13.根据权利要求1所述的方法,还包括使用系统简档器来测量所述嵌入式处理器上 执行的软件的执行时间。
14.根据权利要求1所述的方法,其中所述嵌入式软件应用是第一嵌入式软件应用,所 述嵌入式处理器是第一嵌入式处理器,所述RTOS是第一 RT0S,以及所述处理器时钟信号是 第一处理器时钟信号,所述方法还包括利用所述实时时钟信号触发由第二嵌入式软件应用定义的任务,所述第二嵌入式软件 应用由第二嵌入式处理器利用第二 RTOS执行,其中所述实时时钟信号是独立于驱动所述第二嵌入式处理器的第二处理器时钟信号 可控的,使得所述实时时钟具有与所述第二处理器时钟信号不同的时基。
15.—个或多个有形的计算机可读介质,存储用于使计算机执行根据权利要求1所述的方法的计算机可执行指令。
16.一种方法,包括修改用于嵌入式系统的处理器的实时操作系统(RTOS),使得所述RTOS用来触发任务 执行的实时时钟信号的源与为所述处理器提供时钟的处理器时钟信号的源解耦;以及在一个或多个计算机可读介质上存储经修改的RT0S。
17.根据权利要求16所述的方法,其中修改的动作包括针对所述RTOS的源代码而改 变或添加一行或多行源代码。
18.根据权利要求16所述的方法,其中修改的动作包括修改所述RT0S,使得传送所述 实时时钟信号的路径是以下一个或多个局域网(LAN)信道,通用串行总线(USB)信道,串 行外围接口(SPI)信道,联合测试推动团体(JTAG)信道,拐射线信道,局域互连网络(LIN) 信道,控制器区域网络(CAN)信道,或所述嵌入式系统的进程间通信(IPC)信道。
19.根据权利要求16所述的方法,其中所述经修改的RTOS存储在所述嵌入式系统的存 储器中或者存储在主机计算机的存储器中。
20.根据权利要求16所述的方法,其中所述RTOS被修改,使得所述实时时钟信号的源 是在计算机工作站上运行的软件,在另一外部嵌入式系统上运行的软件,作为所述嵌入式 处理器中的任务而运行的软件,或者位于所述嵌入式系统上的时钟生成器电路。
21.根据权利要求20所述的方法,其中所述实时时钟信号的源是在计算机工作站上运 行的软件,并且其中在所述计算机工作站上运行的所述软件是在调试器或者仿真器中运行 的应用。
22.—个或多个有形的计算机可读介质,存储用于使计算机执行根据权利要求16所述 的方法的计算机可执行指令。
23.一种方法,包括生成一系列实时事件信号;以及利用所述实时事件信号触发由嵌入式软件应用定义的任务,其中所述嵌入式软件应用由嵌入式处理器利用实时操作系统(RTOS)执行,以及其中所述实时事件信号是独立于驱动所述嵌入式处理器的处理器时钟信号可控的,使 得所述实时事件信号具有与所述处理器时钟信号不同的时基。
24.根据权利要求23所述的方法,其中所述实时事件信号由计算机工作站上运行的软 件生成。
25.根据权利要求M所述的方法,其中所述计算机工作站上运行的所述软件在调试器 或者仿真器中运行。
26.根据权利要求23所述的方法,其中所述实时事件信号由另一外部嵌入式系统上运 行的软件生成。
27.根据权利要求23所述的方法,其中所述实时事件信号由作为所述嵌入式处理器中 的任务而运行的软件生成。
28.根据权利要求23所述的方法,其中所述实时事件信号指示数据已经准备好从与所 述嵌入式处理器耦合的外围设备中加载或者向所述外围设备发送。
29.根据权利要求观所述的方法,其中所述外围设备连接到与设备耦合的传感器或者 致动器。
30.根据权利要求23所述的方法,还包括生成实时时钟信号;以及利用所述实时时钟信号触发由所述嵌入式软件应用定义的至少一个其他任务,其中所述实时时钟信号是独立于所述处理器时钟信号和所述实时事件信号二者可控 的,使得所述实时时钟信号具有与所述处理器时钟信号和所述实时事件信号不同的时基。
31.根据权利要求23所述的方法,还包括生成实时时钟信号;以及利用所述实时时钟信号触发由所述嵌入式软件应用定义的至少一个其他任务,其中所述实时时钟信号是独立于所述处理器时钟信号可控的,使得所述实时时钟信号 具有与所述处理器时钟信号不同的时基,以及其中所述实时事件信号依赖于所述实时时钟 并且具有相同的时基。
32.根据权利要求23所述的方法,还包括在不中断所述处理器时钟信号的情况下,在 一段时间内挂起所述一系列实时事件信号的生成。
33.根据权利要求32所述的方法,其中挂起所述实时事件信号的生成的动作响应于由 所述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
34.根据权利要求32所述的方法,还包括在不中断所述处理器时钟信号的情况下,重 新启动所述一系列实时事件信号的生成,重新启动的动作使得所述触发继续。
35.根据权利要求34所述的方法,其中重新启动所述实时事件信号的动作响应于由所 述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
36.根据权利要求23所述的方法,其中所述嵌入式处理器是仿真的嵌入式处理器,并 且所述处理器时钟信号是仿真的处理器时钟信号,所述仿真的嵌入式处理器以及所述仿真 的处理器时钟信号由计算机工作站上运行的软件进行仿真。
37.根据权利要求36所述的方法,其中使用指令集仿真器或者RTOS仿真器中的一种对 所述仿真的嵌入式处理器以及所述仿真的处理器时钟信号进行仿真。
38.根据权利要求23所述的方法,其中所述嵌入式处理器是嵌入式系统的一部分,以 及其中所述实时事件信号由位于所述嵌入式系统上的电路生成。
39.根据权利要求23所述的方法,还包括使用系统简档器来测量所述嵌入式处理器 上执行的软件的执行时间。
40.根据权利要求23所述的方法,其中所述嵌入式软件应用是第一嵌入式软件应用, 所述嵌入式处理器是第一嵌入式处理器,所述RTOS是第一 RT0S,以及所述处理器时钟信号 是第一处理器时钟信号,所述方法还包括利用所述实时事件信号触发由第二嵌入式软件应用定义的任务,所述第二嵌入式软件 应用由第二嵌入式处理器利用第二 RTOS执行,其中所述实时事件信号是独立于驱动所述第二嵌入式处理器的第二处理器时钟信号 可控的,使得所述实时事件信号具有与所述第二处理器时钟信号不同的时基。
41.一个或多个有形的计算机可读介质,存储用于使计算机执行根据权利要求23所述 的方法的计算机可执行指令。
42.一种方法,包括修改嵌入式系统中的处理器的实时操作系统(RTOS),使得用于触发任务执行的实时事件信号的源与为所述处理器提供时钟的处理器时钟信号的源解耦;以及在一个或多个计算机可读介质上存储经修改的RT0S。
43.根据权利要求42所述的方法,其中修改的动作包括针对所述RTOS的源代码而改 变或添加一行或多行源代码。
44.根据权利要求42所述的方法,其中修改的动作包括修改所述RT0S,使得传送实时 事件信号的路径是以下一个或多个局域网(LAN)信道,通用串行总线(USB)信道,串行外 围接口(SPI)信道,或者联合测试推动团体(JTAG)信道,拐射线信道,局域互连网络(LIN) 信道,控制器区域网络(CAN)信道,或者所述嵌入式系统的进程间通信(IPC)信道。
45.根据权利要求42所述的方法,其中所述经修改的RTOS存储在所述嵌入式系统的存 储器中或者主机计算机的存储器中。
46.根据权利要求42所述的方法,还包括修改所述RT0S,使得所述RTOS使用的实时时 钟信号也与为所述处理器提供时钟的所述处理器时钟信号的所述源解耦。
47.根据权利要求42所述的方法,其中所述RTOS被修改,使得所述实时事件信号的所 述源是在计算机工作站上运行的软件,在另一外部嵌入式系统上运行的软件,作为所述嵌 入式处理器中的任务而运行的软件,或者位于所述嵌入式系统上的时钟生成器电路。
48.根据权利要求42所述的方法,其中所述实时事件信号的所述源是计算机工作站上 运行的软件,以及其中所述计算机工作站上运行的所述软件在调试器或者仿真器中运行。
49.一个或多个有形的计算机可读介质,其存储用于使计算机执行根据权利要求42所 述的方法的计算机可执行指令。
50.一种系统,包括主机计算机,配置用于执行生成第一信号的软件;以及嵌入式系统,其耦合到所述主机计算机,并且具有嵌入式处理器,所述嵌入式处理器配置用于运行实时操作系统(RTOS),所述RTOS基于从所述主机计 算机上运行的所述软件接收所述第一信号而执行软件应用任务,所述嵌入式处理器配置用于基于接收第二信号而执行所述任务的个体指令,所述第一 信号是独立于所述第二信号可控的,使得所述第一信号和第二信号具有不同的时基。
51.根据权利要求50所述的系统,其中所述第一信号是实时时钟信号。
52.根据权利要求50所述的系统,其中所述第一信号是除实时时钟信号之外的实时事 件信号。
53.根据权利要求50所述的系统,其中所述第一信号通过以下之一传送局域网(LAN) 信道,通用串行总线(USB)信道,串行外围接口(SPI)信道,联合测试推动团体(JTAG)信 道,拐射线信道,局域互连网络(LIN)信道,控制器区域网络(CAN)信道,或者所述嵌入式系 统的进程间通信(IPC)信道。
54.根据权利要求50所述的系统,其中在所述主机计算机上执行的所述软件能够在所 述第二信号无中断继续的同时挂起所述第一信号。
55.根据权利要求50所述的系统,还包括耦合到所述主机计算机的一个或多个附加 嵌入式系统,每个都具有运行相应RTOS的相应嵌入式处理器,所述RTOS配置用于基于从所 述主机计算机上运行的软件接收所述第一信号而执行相应的软件应用任务,并且每个RTOS 配置用于基于接收其他相应信号而执行所述任务的个体指令,所述其他相应信号是独立于所述第一信号可控的,以允许所述第一信号和所述其他相应信号具有不同的时基。
56.根据权利要求50所述的系统,其中所述主机计算机还配置用于执行仿真器或者调 试器,以及其中生成所述第一信号的所述软件在所述仿真器或者所述调试器中运行。
全文摘要
这里公开了可以用来在嵌入式系统的设计、仿真或者验证期间控制实时事件(例如,实时时钟)的方法、系统和装置的代表性实施方式。例如,在这里所公开的一个示例性实施方式中,生成实时时钟信号,并且利用该实时时钟信号触发由嵌入式软件应用定义的任务。在这个实施方式中,嵌入式软件应用由嵌入式处理器利用实时操作系统(RTOS)执行,并且实时时钟信号是独立于驱动嵌入式处理器的处理器时钟信号可控的,以允许实时时钟具有与处理器时钟不同的时基。
文档编号G06F9/455GK102124448SQ200980132284
公开日2011年7月13日 申请日期2009年7月10日 优先权日2008年7月10日
发明者D·A·蒂加登, L·S·P·布鲁克斯 申请人:明导公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1