CN102124448B - 控制嵌入式系统开发期间的实时性 - Google Patents

控制嵌入式系统开发期间的实时性 Download PDF

Info

Publication number
CN102124448B
CN102124448B CN200980132284.7A CN200980132284A CN102124448B CN 102124448 B CN102124448 B CN 102124448B CN 200980132284 A CN200980132284 A CN 200980132284A CN 102124448 B CN102124448 B CN 102124448B
Authority
CN
China
Prior art keywords
real
time
clock signal
processor
signal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200980132284.7A
Other languages
English (en)
Other versions
CN102124448A (zh
Inventor
L·S·P·布鲁克斯
D·A·蒂加登
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Industry Software NV
Original Assignee
Mentor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mentor Corp filed Critical Mentor Corp
Publication of CN102124448A publication Critical patent/CN102124448A/zh
Application granted granted Critical
Publication of CN102124448B publication Critical patent/CN102124448B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/396Clock trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了可以用来在嵌入式系统的设计、仿真或者验证期间控制实时事件(例如,实时时钟)的方法、系统和装置的代表性实施方式。例如,在这里所公开的一个示例性实施方式中,生成实时时钟信号,并且利用该实时时钟信号触发由嵌入式软件应用定义的任务。在这个实施方式中,嵌入式软件应用由嵌入式处理器利用实时操作系统(RTOS)执行,并且实时时钟信号是独立于驱动嵌入式处理器的处理器时钟信号可控的,以允许实时时钟具有与处理器时钟不同的时基。

Description

控制嵌入式系统开发期间的实时性
相关申请的交叉引用
本申请主张于2008年7月10日递交的美国专利申请号12/218,107的优先权及利益,并在这里引入其全部内容。
技术领域
本申请总体上涉及设计、仿真和验证分布式嵌入式系统的领域。
背景技术
嵌入式系统在现代电子设备中无处不在。嵌入式系统可以存在于例如各式各样的消费品中—包括电视、移动电话、媒体播放器,以及汽车。事实上,据估计一年中生产的微处理器中超过98%的部分都被使用在嵌入式系统中。
在很多应用中,嵌入式系统被用来控制、监测或以其他方式管理大型系统的一个或多个子系统。此外,嵌入式系统经常被要求提供可靠的并且及时的行为。为了确保嵌入式系统可靠地满足大型系统的定时约束,嵌入式系统经常使用实时操作系统(RTOS),它控制任务如何由处理器执行并且提供精确的定时行为。
由于嵌入式系统经常与大量的其他组件交互并且期望执行实时软件应用,因而设计嵌入式系统是一种挑战。例如,嵌入式软件应用不能只提供适当的功能,而是还必须以所要求的速率运行,从而满足系统期限并适应所分配的内存量。此外,嵌入式系统设计过程通常包含多个开发阶段,每个阶段具有不同的抽象级别。例如,嵌入式系统或嵌入式软件应用最初可以全部在计算机环境中被建模和仿真。所有的周边系统同样可以在这样的环境中被建模和仿真。最终,随着设计过程的进行,可能会期望通过在嵌入式系统的物理原型上运行软件,或者通过运行软件应用的仿真并同时生成去往和来自总体系统中真实硬件组件的信号,来对嵌入式软件应用进行调试。在这样的仿真和验证期间,可能会期望在不妨碍总体系统的其他操作的情况下,启动、停止、暂停和继续软件应用的“实时性”。这样的控制和灵活性靠传统的开发工具不可能实现。因此,需要有改进的方法、系统和装置来为嵌入式系统的设计者在对实时嵌入式软件应用的开发和调试期间提供更好的控制、灵活性以及可见性。
发明内容
在这里公开了可以用来在嵌入式系统的设计、仿真或验证期间控制实时事件(例如,实时时钟)的方法、系统和装置的代表性实施方式。所公开的方法、系统和装置不应当被解释为任何形式的限制。反之,本公开涉及各个所公开实施方式的全部新颖的和非显而易见的特征和方面,不论是单独的或是与其他特征和方面的各种组合和子组合。所公开的方法、系统和装置不限于任何特定的方面、特征或它们的结合,而且所公开的方法、系统和装置也不要求存在一个或多个特定的优点或解决特定的问题。
在这里公开的一个示例性实施方式中,生成实时时钟信号,并且利用该实时时钟信号触发由嵌入式软件应用定义的任务。在这个实施方式中,嵌入式软件应用由嵌入式处理器利用实时操作系统(RTOS)执行,并且实时时钟信号具有与驱动嵌入式处理器的处理器时钟信号不同的时基,并且被独立控制(例如,针对处理器的“时间”独立于针对嵌入式软件应用和周边环境的“时间”而前进)。实时时钟信号例如可以由以下生成:在计算机工作站上运行的软件(例如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统上运行的软件,和/或在嵌入式系统中作为任务运行的软件。实时时钟信号的生成可以在不中断处理器时钟信号的情况下被挂起一段时间。此外,挂起实时时钟信号生成的动作可以响应于由嵌入式处理器执行嵌入式软件应用所控制的信号而被执行。实时时钟信号的生成可以在不中断处理器时钟信号的情况下被重新启动,并且重新启动被仿真的实时时钟的动作还可以使得触发得以继续。重新启动实时时钟信号生成的动作也可以响应于由嵌入式处理器执行嵌入式软件应用所控制的信号而被执行。此外,在一些实现中,嵌入式处理器是仿真的嵌入式处理器,并且处理器时钟信号是仿真的处理器时钟信号。例如,可以使用指令集仿真器或RTOS仿真器(例如,使用PC硬件和PC操作系统软件的RTOS实现,用以对在RTOS上运行的嵌入式应用的执行进行仿真)中的一种对嵌入式处理器和处理器时钟信号进行仿真。在一些实现中,使用系统简档器(profiler)来测量在嵌入式处理器上执行的软件的执行时间。在特定的实现中,嵌入式软件应用是第一嵌入式软件应用,嵌入式处理器是第一嵌入式处理器,RTOS是第一RTOS,并且处理器时钟信号是第一处理器时钟信号。在这些实现中,由第二嵌入式软件应用定义的任务可以由实时时钟信号触发,第二嵌入式软件应用由第二嵌入式处理器利用第二RTOS执行,其中实时时钟信号是独立于驱动第二嵌入式处理器的第二处理器时钟信号而可控的,使得实时时钟具有与第二处理器时钟不同的时基。
在这里公开的另一实施方式中,用于嵌入式系统的处理器的RTOS被修改,使得RTOS用来触发任务执行的实时时钟信号的源与为处理器提供时钟的处理器时钟信号的源解耦。该解耦创建了两个独立可控的时基。例如,在这个实施方式中,针对处理器的“时间”独立于针对嵌入式软件应用和周边环境的“时间”而前进。经修改的RTOS继而可以被存储在一个或多个计算机可读介质上(例如,在嵌入式系统的存储器中和/或在主机计算机的存储器中)。在特定的实现中,修改RTOS的动作包括针对RTOS的源代码改变或添加一行或多行源代码。此外,修改的动作可以包括修改RTOS,使得传送实时时钟信号的路径是以下一个或多个:局域网(LAN)信道、通用串行总线(USB)信道、串行外围接口(SPI)信道、联合测试推动团体(JTAG)信道、拐射线(FlexRay)信道、局域互连网络(LIN)信道、控制器区域网络(CAN)信道,或嵌入式系统的进程间通信(IPC)信道。在特定的实现中,RTOS被修改,使得实时时钟信号的源例如是:在计算机工作站上运行的软件(例如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统上运行的软件,和/或在嵌入式系统中作为任务运行的软件。
在这里公开的另一实施方式中,生成一系列实时事件信号,并且利用实时事件信号来触发由嵌入式软件应用定义的任务。在这个实施方式中,嵌入式软件应用由嵌入式处理器利用RTOS执行,并且实时事件信号具有与驱动嵌入式处理器的处理器时钟信号不同的时基,而且是独立可控的。例如,在这个实施方式中,针对处理器的“时间”独立于针对嵌入式软件应用和周边环境的“时间”而前进。实时事件可以例如由以下生成:在计算机工作站上运行的软件(例如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统上运行的软件,在运行RTOS以接收实时事件信号的嵌入式系统中作为任务运行的软件,或位于嵌入式系统上的时钟发生器电路。实时事件信号可以指示例如数据已经准备好从与嵌入式处理器耦合的外围设备(例如,连接到与设备耦合的传感器或致动器的外围设备)中加载或发送到该外围设备。一系列实时事件信号的生成可以在不中断处理器时钟信号的情况下被挂起一段时间。此外,挂起实时事件信号生成的动作可以响应于由嵌入式处理器执行嵌入式软件应用所控制的信号而被执行。一系列实时事件信号的生成可以在不中断处理器时钟信号的情况下被重新启动,并且重新启动的动作可以使得触发得以继续。重新启动实时事件信号的动作可以响应于由嵌入式处理器执行嵌入式软件应用所控制的信号而被执行。在特定的实现中,还生成实时时钟信号,并且利用该实时时钟信号来触发由嵌入式软件应用定义的至少一个其他任务。在这些实现中,实时时钟信号是独立于处理器时钟信号和实时事件信号二者可控的,使得实时时钟具有与处理器时钟信号和实时事件信号不同的时基。在其他实现中,生成实时时钟信号,并且利用该实时时钟信号来触发由嵌入式软件应用定义的至少一个其他任务。在这些实现中,实时时钟信号是独立于处理器时钟信号可控的,并且实时事件信号取决于实时时钟。在一些实现中,嵌入式处理器是仿真的嵌入式处理器并且实时事件信号是仿真的实时事件信号。例如,可以使用指令集仿真器或RTOS仿真器中的一种对嵌入式处理器和处理器时钟信号进行仿真。嵌入式处理器可以是嵌入式系统的一部分,并且实时事件信号可以由位于嵌入式系统上的电路生成。在一些实现中,使用系统简档器来测量在嵌入式处理器上执行的中断服务例程的执行时间。此外,在一些实现中,嵌入式软件应用是第一嵌入式软件应用,嵌入式处理器是第一嵌入式处理器,RTOS是第一RTOS,并且处理器时钟信号时第一处理器时钟信号。在这些实现中,由第二嵌入式软件应用定义的任务可以由实时事件信号触发,其中第二嵌入式软件应用由第二嵌入式处理器利用第二RTOS执行,并且其中实时事件信号是独立于驱动第二嵌入式处理器的第二处理器时钟信号可控的,使得实时事件信号具有与第二处理器时钟信号不同的时基。
在这里公开的另一实施方式中,嵌入式系统中的处理器的实时操作系统(RTOS)被修改,使得用来触发任务执行的实时事件信号的源与为处理器提供时钟的处理器时钟信号的源解耦。该解耦创建了独立可控的两个独立时基。例如,在这个实施方式中,针对处理器的“时间”独立于针对嵌入式软件应用和周边环境的“时间”而前进。经修改的RTOS继而可以被存储在一个或多个计算机可读介质上(例如,在嵌入式系统的存储器中或在主机计算机的存储器中)。修改的动作可以包括针对RTOS的源代码而改变或添加一行或多行源代码中。此外,修改的动作可以包括修改RTOS,使得传送实时事件信号的路径是以下一个或多个:局域网(LAN)信道、通用串行总线(USB)信道、串行外围接口(SPI)信道、联合测试推动团体(JTAG)信道、拐射线信道、局域互连网络(LIN)信道、控制器区域网络(CAN)信道,或者嵌入式系统的进程间通信(IPC)信道。在特定的实现中,该方法还包括修改RTOS,使得由RTOS所使用的实时时钟信号也与为处理器提供时钟的处理器时钟信号的源解耦。在特定的实现中,RTOS被修改,使得实时事件信号的源例如是:在计算机工作站上运行的软件(例如,在调试器或仿真器中运行的软件应用),在另一外部嵌入式系统上运行的软件,在嵌入式系统中作为任务运行的软件,或位于嵌入式系统上的时钟发生器电路。
另一个公开的实施方式是一种系统,该系统包括:主机计算机,其配置用于执行生成第一信号的软件;以及嵌入式系统,其耦合到主机计算机并且具有嵌入式处理器。在这个实施方式中,嵌入式处理器被配置用于基于从在主机计算机上运行的软件接收第一信号而运行执行软件应用的任务的RTOS,并且该嵌入式处理器还被配置用于基于接收第二信号而执行任务的个体指令。在这个实施方式中,第一信号是独立于第二信号可控的,使得第一信号和第二信号具有不同的时基。第一信号可以是实时时钟信号或者是并非实时时钟信号的实时事件信号。此外,第一信号可以通过以下之一来传送:局域网(LAN)信道、通用串行总线(USB)信道、串行外围接口(SPI)信道、联合测试推动团体(JTAG)信道、拐射线信道、局域互连网络(LIN)信道、控制器区域网络(CAN)信道,或者嵌入式系统的进程间通信(IPC)信道。在主机计算机上执行的软件可以在第二信号继续不被中断的情况下挂起第一信号。系统还可以包括耦合到主机计算机的一个或多个附加嵌入式系统,每个附加嵌入式系统具有运行相应RTOS的相应嵌入式处理器,配置用于基于从在主机计算机上所运行的软件接收第一信号而执行相应软件应用的任务,并且每个附加嵌入式系统配置用于基于接收独立于第一信号可控的其他相应信号而执行任务的个体指令。主机计算机还可以配置用于执行仿真器或调试器。生成第一信号的软件可以在仿真器或调试器中运行。
任何公开的方法都可以至少部分地由计算机程序执行,该程序例如电子设计自动化(EDA)软件工具,包括存储在一个或多个计算机可读介质上的计算机可执行的指令。此外,任何可以根据所公开的方法的实施方式进行修改的操作系统(例如,经修改的RTOS)也可以被存储在一个或多个计算机可读介质上。
所公开的技术的前述的以及其他的对象、特征和优点通过参考附图进行的下述的详细描述将变得更加明显。
附图说明
图1是示出了可以使用所公开技术的实施方式进行设计、仿真或验证的示意性嵌入式系统的示意性框图。
图2是示出了涉及图1中所示的嵌入式系统的不同的抽象层的示意性框图。
图3是示出了图1中所示的嵌入式系统可以操作的典型的控制系统的示意性框图。
图4是示出了针对使用所公开的技术的实施方式来设计、仿真或验证嵌入式系统的软件和/或硬件的第一布置的示意性框图。
图5是示出了针对使用所公开的技术的实施方式来设计、仿真或验证嵌入式系统的软件和/或硬件的第二布置的示意性框图。
图6是示出了供嵌入式系统的实时时钟在其中由嵌入式系统上的时钟源生成的示例性设计、仿真或验证环境的示意性框图。
图7是示出了当处理器时钟继续由在嵌入式系统上的时钟源生成时,供由在主机工作站上运行的软件在其中生成嵌入式系统的实时时钟的示例性设计、仿真,或验证环境示意性框图。
图8是示出了用于修改嵌入式系统的实时操作系统(RTOS),使得实时时钟的源是在主机工作站上运行的软件的示例性方法的流程图。
图9是示出了操作供嵌入式系统的实时时钟在其中由在主机工作站上运行的软件生成的设计、仿真,或验证环境的示例性方法的流程图。
图10是示出了供嵌入式系统中的实时事件控制操作在其中由嵌入式系统的外围设备生成的示例性设计、仿真,或验证环境的示意性框图。
图11是示出了供嵌入式系统中的实时事件控制操作在其中由在主机工作站上运行的软件生成的示例性设计、仿真,或验证环境的示意性框图。
图12是示出了用于修改嵌入式系统的RTOS,使得实时事件的源是在主机工作站上运行的软件的示意性方法的流程图。
图13是示出了供用于控制嵌入式系统的操作的实时事件在其中由在主机工作站上运行的软件生成的操作设计、仿真,或验证环境的示例性方法的流程图。
图14是概念性地示出了与处理器时钟相关联的独立的实时时钟的时序图,其中两个时钟具有不同的时基。在图14中,处理器时钟被用作时间轴的基础。
图15是概念性地示出了与处理器时钟相关联的独立的实时时钟的时序图,其中两个时钟具有不同的时基。在图15中,实时时钟被用作时间轴的基础。
图16是示出了供所公开的技术的方面在其中可以被执行的第一示例性计算机网络的示意性框图。
图17是示出了供所公开的技术的方面在其中可以被执行的第二示例性计算机网络的示意性框图。
图18是示出了用于在例如图16和图17中的计算机网络的分布式计算环境中使用所公开的技术的实施方式的一个示例性方法的流程图。
图19是示出了根据所公开的技术的实施方式修改RTOS源代码的一个示例性方法的流程图。
具体实施方式
I.总体考虑
下文公开了可以与设计、仿真或验证嵌入式系统结合使用的方法、系统和装置的代表性实施方式。所公开的方法、系统和装置不应当被解释为任何形式的限制。反之,本公开涉及各个所公开实施方式的全部新颖的和非显而易见的特征和方面,不论是单独的或是与其他特征和方面的各种组合和子组合。所公开的方法、系统和装置不限于任何特定的方面、特征或它们的结合,而且所公开的方法、系统和装置也不要求存在一个或多个特定的优点或解决特定的问题。
尽管一些所公开的方法的操作为了方便的描述而采取特定的、连续的顺序进行描述,应当理解的是除非在下述中通过特定的语言阐明了所需要的特定顺序,这种描述的方式中包括了重新排序的情形。例如,顺序地进行描述的操作在某些情况下可以被重新排序或者被同时执行。此外,为了简单起见,附图可能并未示出可以供所公开的方法在其中与其他方法共同使用的各种方式。此外,在描述中有时会使用例如“触发”和“生成”的术语来描述所公开的方法。这些术语是所执行的实际操作的高级抽象。与这些术语相对应的实际操作可以取决于特定的实现而进行变化并且可以被本领域技术人员容易地识别。
所公开的技术可以在一个或多个嵌入式系统的设计、仿真和/或验证期间应用。嵌入式系统通常是包括互相通信的多个嵌入式系统的分布式系统的一部分。嵌入式系统可以使用各种不同的硬件技术来实现,该硬件技术包括集成电路(例如,专用集成电路(ASIC),可编程逻辑器件(PLD),芯片系统(SOC或微处理器)或印刷电路板(PCB),它们本身可以包括一个或多个集成电路和/或模拟组件)。此外,嵌入式系统可以使用驱动或控制硬件的多种软件技术来实现。一个或多个嵌入式系统可以被使用在种类繁多的电子设备中,其范围从便携式电子设备(例如,移动电话、媒体播放器等等)到规模更大的项目(例如,计算机、控制系统、飞机、汽车、工厂等等)。所有这些包括至少部分使用公开的技术的实施方式进行设计、仿真和/或验证的一个或多个嵌入式系统的项目都被认为是在本公开文本的范围中。
任何所公开的方法都可以通过使用存储在一个或多个计算机可读介质(例如,有形的计算机可读介质,例如一个或多个光学介质(例如,CD或者DVD),易失性存储器组件(例如DRAM或者SRAM),或者非易失性存储器组件(例如硬盘驱动器))上的软件进行执行,该介质存储计算机可执行的指令,当该指令由计算机(例如,任何市场上有售的计算机)执行时使得该计算机执行任何所公开的方法。这样的软件可以包括例如用于提供交互式设计空间的电子设计自动化(EDA)软件工具,在该空间中,可以对嵌入式系统或者分布式嵌入式系统(包括两个或更多嵌入式系统)的任何硬件或者软件组件进行设计、仿真和/或验证。一种示例性软件工具是可以从Mentor Graphics Corporation获得的System 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以及在嵌入式系统的操作期间所生成的信息,或者用于向处理器提供信息。例如,存储器124可以存储将由处理器在嵌入式系统100的操作期间执行的用于RTOS软件组件以及一个或多个嵌入式应用软件组件(任务)的机器代码。存储器124可以包括任何一种或多种不同的非易失性存储器组件(例如,EEPROM、硬盘驱动器、微型磁盘、闪存、非易失性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上运行的操作系统(例如,RTOS)结合使用。
图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 244)。
处理器层230和I/O子系统层240共同代表嵌入式系统的硬件260。由于由处理器以及嵌入式系统的其他硬件所执行的操作对于与嵌入式系统交互的组件来说是不可见的,并且该操作不是由应用直接定义的,因此由处理器以及嵌入式系统的其他硬件所执行的操作可以被看作是在不同的时域或平面中进行操作。特别地,由于处理器的操作由嵌入式系统上的物理时钟源来控制,因此处理器层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的另一信号,该另一信号从硬件继续并且进入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组件,使得期望出现实时时钟的信道被改变为上述可选信道之一。对于某些RTOS,此修改可以这样来执行:修改配置文件、参数或者通过RTOS制造者提供的某些其他配置过程(例如,作为RTOS的构建/配置步骤中的一部分,或者在RTOS的运行时配置步骤期间)。然而,对于某些RTOS,可能需要修改RTOS本身的源代码。在某些情况下,备选地或者附加地,可能需要修改其他嵌入式组件,使得RTOS可以通过耦合到工作站660的期望I/O机制来预期实时时钟。例如,在某些情况下,可能还要或者备选地修改外围驱动器软件。
图8是示出了用于根据所公开的技术修改RTOS的一种示例性实施方式800的流程图。在810,接收用于嵌入式系统的处理器的RTOS的至少一部分(例如,用于处理定时服务或者计时器分配的RTOS部分)。在812,修改RTOS,使得传送实时时钟的路径是将要耦合到主机计算机的嵌入式系统的通信信道(例如,LAN信道,USB信道,SPI信道,JTAG信道,拐射线信道,LIN信道,CAN信道,IPC信道,或者它们的任何组合或者子组合)。因此,实时时钟信号的源与处理器时钟信号的源解耦(信号的最终的“时基”或者“时间平面”因而被解耦,并且因此可以独立控制)。在814,存储经修改的RTOS(例如,在主机工作站的一个或多个有形的计算机可读介质上,或者在用于执行的嵌入式系统的存储器中)。
图19是示出了用于修改RTOS以使用实时时钟信号的备选源的另一示例性方法的流程图。虽然该图示出了修改RTOS以使用实时时钟信号的备选源的过程,但是相同的过程也可以用来有效地修改RTOS以使用实时事件的备选源。在过程框1902,例如,动作者A向动作者B提供RTOS参考设计以供修改。在过程框1904,动作者B修改RTOS源以使用实时时钟信号的备选信道,如所公开的实施方式中所述。在过程框1906,动作者A从动作者B接收经修改的RTOS。依赖于RTOS的任何嵌入式软件应用继而可以在经修改的RTOS上执行。图19中示出的方法仅仅是一个示例,并非是根据所公开的技术的实施方式来修改RTOS的唯一方法。
图9是示出了用于控制实时时钟(例如,在上述任何设计、仿真或者验证环境中)的示例性方法900的流程图。在910,由主机计算机上运行的软件生成实时时钟信号。在912,实时时钟信号触发由嵌入式系统的嵌入式处理器上运行的RTOS所执行的软件应用定义的一个或多个任务。RTOS可以是经修改的RTOS,其配置用于通过耦合到主机计算机的通信信道来接收实时时钟信号。例如,可以通过图8中的方法800来修改RTOS。由于实时时钟独立于嵌入式系统的处理器时钟和时钟源,因此主机计算机上运行的软件可以按照时间同步的方式、以相对于处理器时钟的不同时基、在不中断处理器时钟的情况下控制嵌入式系统的嵌入式软件。例如,处理器时钟可以在方法动作910、912期间继续以全速(有时称为“高速”)运作。
在方法900的某些实现中,在主机计算机上运行的软件以“非阻塞模式”生成实时时钟信号。例如,在主机计算机上运行的软件可以继续以期望的速率生成时钟信号,而不需要等待处理器或者接收系统的其他组件确认实时时钟信号的接收。当实时时钟信号的接收者(例如,处理器和RTOS)处理实时事件的速度能够与提供实时事件一样快时,期望使用非阻塞模式。备选地,在主机计算机上运行的软件可以按照“阻塞模式”运作,在该模式中,在主机计算机上运行的软件在生成下一信号前等待系统的处理器、RTOS或者其他组件对实时时钟信号的接收进行确认。这为可能正在接收实时时钟信号的任何系统提供机会,以控制实时时钟域(“应用时域”或者“逻辑平面”)中的时间前进。例如,由嵌入式处理器执行的嵌入式软件应用可以这样来控制实时性的前进:在嵌入式软件应用准备好继续之前,不提供确认信号。例如当嵌入式系统上运行的嵌入式软件由调试器控制并且已经挂起时,此模式可能是有用的。阻塞模式有用的另一种情况是:接收系统处理事件的速度可能无法与主机计算机上运行的软件发送事件一样快。
虽然上述实施方式涉及控制由主机工作站上运行的软件所设计、仿真或者验证的嵌入式系统的实时时钟信号,但是其他实时事件(例如,异步的或者非周期性的事件)同样可以由主机计算机上运行的软件进行控制。例如,控制嵌入式系统操作的实时事件可以具有各种其他源。例如,耦合到嵌入式系统的致动器、传感器、其他嵌入式系统和/或其他外围设备可以生成影响嵌入式软件如何根据RTOS被执行的实时事件(例如,异步中断或者异步外部事件)。例如,响应于从耦合到嵌入式处理器的外围设备接收到中断,RTOS可以执行高优先级的任务。使用所公开的技术的实施方式,这些实时事件的源可以被修改,使得它们作为替代源于在主机计算机上运行的软件。
图10是示出了示例性设计、仿真或者验证环境的示意性框图1000,其中工作站1060耦合到嵌入式系统1010,并且耦合到嵌入式系统的处理器1020的外围设备通过I/O机制1022提供实时事件信号。在这个示例中,实时事件由另一嵌入式系统1070生成。然而,此特定布置不应被作为限制,因为实时事件可以由多种源生成。例如,在实时系统中,I/O外围设备(例如,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/O机制之一而耦合到嵌入式系统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,修改RTOS,使得接收实时事件的路径是将要耦合到主机计算机的嵌入式系统的通信信道(例如,LAN信道,USB信道,SPI信道,JTAG信道,拐射线信道,LIN信道,CAN信道,IPC信道或者它们的任何组合或者子组合)。因此,实时事件信号的源与处理器时钟信号的源解耦(信号的最终“时基”或者“时间平面”因而被解耦,并且因此可以独立控制)。在1214,存储经修改的RTOS(例如,在主机工作站的一个或多个有形的计算机可读介质上,或者在用于执行的嵌入式系统的存储器中)。
图13是示出了用于在设计、仿真或者验证环境中(例如,在任何以上关于图4和5所述的设计或者仿真环境中)控制实时事件的示例性方法1300的流程图。在1310,在主机计算机上运行的软件生成实时事件。在1312,实时事件信号触发由嵌入式系统的嵌入式处理器上运行的RTOS所执行的软件应用定义的一个或者多个任务。RTOS可以是经修改的RTOS,配置用于通过耦合到主机计算机的通信信道接收实时事件信号。例如,RTOS可以通过图12中的方法1200进行修改。由于实时事件独立于嵌入式系统的处理器时钟和时钟源,因此在主机计算机上运行的软件可以按照时间同步的方式、以相对于处理器时钟不同的时基、在不中断处理器时钟的情况下控制嵌入式系统的嵌入式软件。例如,处理器时钟可以在方法动作1310、1312期间继续以全速运作。
如上文关于图9所述的实时时钟信号,在主机计算机上运行的软件可以按照阻塞模式或者非阻塞模式生成实时事件。当与传感器、致动器或者设备的仿真模型一起使用时,阻塞模式可以为主机计算机上运行的嵌入式软件调试器或者仿真器提供在运行中的物理系统上“停止时间”(例如,停止实时性)的能力。当实时事件由传感器或者设备连续地生成时,通常无法实现这种控制。例如,如果实时事件由耦合到旋转电动机的传感器提供,则不可能停止旋转电动机的动量以使得软件调试器可以单步通过控制器代码。然而,通过对将要由主机计算机上运行的软件生成的实时事件进行重新映射,可以在对嵌入式软件进行调试中实现更大的灵活性以及可见性。
图11-图13中的实施方式和随附的论述包含依赖于RTOS实时时钟的实时事件以及独立于RTOS实时时钟的实时事件。例如,在实时系统中,可以通过实时时钟或者根据实时时钟导出或与实时时钟相关的另一时钟信号,周期性命令某些I/O外围设备。这些I/O外围设备可以向软件应用提供数据和/或从软件应用接收数据以供处理。通过使用关于图7-图9以及图11-图13描述的技术的组合,触发对这些数据进行读或者写的实时事件信号可以转而基于在主机计算机上运行的软件所生成的事件。例如,在主机计算机上运行的软件可以控制与实时时钟相关的所有事件,或者在某些实施方式中,控制整个实时域(或者应用时域)中的所有事件。在其他实施方式中,在主机计算机上运行的软件可以控制实时事件的任何子集,无论它们与实时时钟同步还是异步。
通常来说,涉及控制实时时钟相关的任何上述方法都可以与涉及控制实时事件的方法结合使用。例如,所公开的技术的实施方式包括方法、系统和设备,它们修改一个或多个嵌入式系统的RTOS,使得实时时钟和实时事件二者都可以由主机工作站上运行的软件来控制。
任何上述方法都可以通过使用物理嵌入式系统或者仿真嵌入式系统或者其混合体来执行,在混合体中,部分系统是仿真的而其余部分是物理的。例如,图7-图9或者图11-图13中的嵌入式系统或者嵌入式处理器可以是该系统或者处理器的物理实施方式(例如,嵌入式系统或者嵌入式处理器的物理原型),仿真的嵌入式系统(例如,使用RTOS仿真器),或者仿真的嵌入式处理器(例如,使用指令集仿真器)。在仿真的嵌入式系统环境中,驱动RTOS时基的实时时钟源可以与主机工作站的定时器服务解耦,并且可以独立控制(在主机工作站中,定时器服务通常具有与处理器时钟相同的时基,并且它们因而可以互相耦合)。此外,在仿真的环境中,嵌入式处理器可以由例如指令集仿真器进行仿真。系统的其他硬件组件可以由任何适合的硬件仿真器进行仿真,或者可以是实际的物理硬件组件。
此外,虽然如图6-图13中所述的示例性实施方式是仅仅与单个被设计、仿真或者验证的嵌入式系统结合示出,但所公开的实施方式也可以被使用在包含多个嵌入式系统的任何上述的设计、仿真或验证环境中。例如,所公开的实施方式可被用于具有两个或更多嵌入式系统的设计、仿真或者验证环境中,该环境具有由在主机计算机上运行的软件按需求控制的实时时钟信号或者实时事件。例如,实际的或者模拟的嵌入式系统的任何聚集都可以同时包括在根据所公开的技术的设计、仿真,或者验证环境中。
此外,实时时钟和/或外围设备I/O实时事件可以来自主机计算机上运行的单个软件过程,或者来自在一个或者多个主机计算机上运行的两个或者更多同步的软件过程。所公开的技术的实施方式例如允许一个嵌入式系统上的实时事件上具有断点,并且维持与其他嵌入式系统的实时同步。这些实施方式的实时事件可以使用任何可用的通信信道(例如,任何通常用于调试的可以获得的信道,例如LAN、USB,或者JTAG信道,或者任何其他的可以获得的信道,例如CAN、LIN、IPC,或者其他这样的信道)被传送给目标嵌入式系统。
此外,虽然以上如图7-图9和图11-图13中所述的示例性实施方式描绘了源自在主机计算机上运行的软件的实时时钟和事件信号,但是应当注意和理解的是,信号的源对某些实施方式来说是任意的,只要它独立于处理器时钟源(解耦并且具有可能不同的时基)。例如,提供时间解耦的实时时钟和事件信号的软件可以作为嵌入式处理器上执行的单独任务来执行,并且由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是否以确定性方式进行操作。然而,由于实时时钟和/或实时事件的源受到控制,因此可以以高精度来测量嵌入式系统的实际中断服务程序(IRS)执行时间。例如,可以控制实时事件,使得它们不中断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的板载时钟)。考虑到可供所公开的技术的原理得到应用的多种可能的实施方式,应当承认被用来说明的实施方式仅仅是该技术的较佳的示例并且不应当被作为对本发明的范围的限制。相反地,本发明的范围是由下述的权利要求以及它们的等同物来定义。我们因而要求从这些权利要求的范围和精神中所获得的全部同样作为本发明的组成部分。

Claims (56)

1.一种用于控制嵌入式系统开发期间的实时性的方法,包括:
生成实时时钟信号;以及
利用所述实时时钟信号触发由嵌入式软件应用定义的任务,
其中所述嵌入式软件应用由嵌入式处理器利用实时操作系统执行,以及
其中所述实时时钟信号是独立于驱动所述嵌入式处理器的处理器时钟信号可控的,使得所述实时时钟信号在不中断所述处理器时钟信号的情况下操作并且具有与所述处理器时钟信号不同的时基,以及
其中所述处理器时钟信号从不同于所述实时时钟信号的源导出。
2.根据权利要求1所述的方法,其中所述实时时钟信号由计算机工作站上运行的软件生成。
3.根据权利要求2所述的方法,其中所述计算机工作站上运行的所述软件是调试器或者仿真器中运行的应用。
4.根据权利要求1所述的方法,其中所述实时时钟信号由另一外部嵌入式系统上运行的软件生成。
5.根据权利要求1所述的方法,其中所述实时时钟信号由作为所述嵌入式处理器中的任务而运行的软件生成。
6.根据权利要求1所述的方法,还包括:在不中断所述处理器时钟信号的情况下,在一段时间内挂起所述实时时钟信号的生成。
7.根据权利要求6所述的方法,其中挂起所述实时时钟信号的生成的动作响应于由所述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
8.根据权利要求6所述的方法,还包括:在不中断所述处理器时钟信号的情况下,重新启动所述实时时钟信号的生成,重新启动所述实时时钟信号的生成的动作使所述触发继续。
9.根据权利要求8所述的方法,其中重新启动所述实时时钟信号的生成的动作响应于由所述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
10.根据权利要求1所述的方法,其中所述嵌入式处理器是仿真的嵌入式处理器,并且所述处理器时钟信号是仿真的处理器时钟信号,所述仿真的嵌入式处理器以及所述仿真的处理器时钟信号由计算机工作站上运行的软件进行仿真。
11.根据权利要求10所述的方法,其中所述仿真的嵌入式处理器以及所述仿真的处理器时钟信号使用指令集仿真器或者实时操作系统仿真器之一被仿真。
12.根据权利要求1所述的方法,其中所述嵌入式处理器是嵌入式系统的一部分,并且其中所述实时时钟信号部分地由位于所述嵌入式系统上的时钟生成器电路生成。
13.根据权利要求1所述的方法,还包括:使用系统简档器来测量所述嵌入式处理器上执行的软件的执行时间。
14.根据权利要求1所述的方法,其中所述嵌入式软件应用是第一嵌入式软件应用,所述嵌入式处理器是第一嵌入式处理器,所述实时操作系统是第一实时操作系统,以及所述处理器时钟信号是第一处理器时钟信号,所述方法还包括:
利用所述实时时钟信号触发由第二嵌入式软件应用定义的任务,所述第二嵌入式软件应用由第二嵌入式处理器利用第二实时操作系统执行,
其中所述实时时钟信号是独立于驱动所述第二嵌入式处理器的第二处理器时钟信号可控的,使得所述实时时钟信号具有与所述第二处理器时钟信号不同的时基。
15.一种用于控制嵌入式系统开发期间的实时性的装置,包括:
用于生成实时时钟信号的模块;以及
用于利用所述实时时钟信号触发由嵌入式软件应用定义的任务的模块,
其中所述嵌入式软件应用由嵌入式处理器利用实时操作系统执行,以及
其中所述实时时钟信号是独立于驱动所述嵌入式处理器的处理器时钟信号可控的,使得所述实时时钟信号在不中断所述处理器时钟信号的情况下操作并且具有与所述处理器时钟信号不同的时基,以及
其中所述处理器时钟信号从不同于所述实时时钟信号的源导出。
16.一种用于控制嵌入式系统开发期间的实时性的方法,包括:
修改用于嵌入式系统的处理器的实时操作系统,使得所述实时操作系统用来触发任务执行的实时时钟信号的源与为所述处理器提供时钟的处理器时钟信号的源解耦并且不使所述处理器时钟信号的源中断;以及
在一个或多个计算机可读介质上存储经修改的实时操作系统。
17.根据权利要求16所述的方法,其中修改的动作包括:针对所述实时操作系统的源代码而改变或添加一行或多行源代码。
18.根据权利要求16所述的方法,其中修改的动作包括修改所述实时操作系统,使得传送所述实时时钟信号的路径是以下一个或多个:局域网信道,通用串行总线信道,串行外围接口信道,联合测试推动团体信道,拐射线信道,局域互连网络信道,控制器区域网络信道,或所述嵌入式系统的进程间通信信道。
19.根据权利要求16所述的方法,其中所述经修改的实时操作系统存储在所述嵌入式系统的存储器中或者存储在主机计算机的存储器中。
20.根据权利要求16所述的方法,其中所述实时操作系统被修改,使得所述实时时钟信号的源是:在计算机工作站上运行的软件,在另一外部嵌入式系统上运行的软件,作为所述嵌入式系统中的任务而运行的软件,或者位于所述嵌入式系统上的时钟生成器电路。
21.根据权利要求20所述的方法,其中所述实时时钟信号的源是在计算机工作站上运行的软件,并且其中在所述计算机工作站上运行的所述软件是在调试器或者仿真器中运行的应用。
22.一种用于控制嵌入式系统开发期间的实时性的装置,包括:
用于修改用于嵌入式系统的处理器的实时操作系统,使得所述实时操作系统用来触发任务执行的实时时钟信号的源与为所述处理器提供时钟的处理器时钟信号的源解耦并且不使所述处理器时钟信号的源中断的模块;以及
用于在一个或多个计算机可读介质上存储经修改的实时操作系统的模块。
23.一种用于控制嵌入式系统开发期间的实时性的方法,包括:
生成一系列实时事件信号;以及
利用所述实时事件信号触发由嵌入式软件应用定义的任务,
其中所述嵌入式软件应用由嵌入式处理器利用实时操作系统执行,以及
其中所述实时事件信号是独立于驱动所述嵌入式处理器的处理器时钟信号可控的,使得所述实时事件信号具有与所述处理器时钟信号不同的时基并且不中断所述处理器时钟信号,以及
其中所述处理器时钟信号从不同于所述实时事件信号的源导出。
24.根据权利要求23所述的方法,其中所述实时事件信号由计算机工作站上运行的软件生成。
25.根据权利要求24所述的方法,其中所述计算机工作站上运行的所述软件在调试器或者仿真器中运行。
26.根据权利要求23所述的方法,其中所述实时事件信号由另一外部嵌入式系统上运行的软件生成。
27.根据权利要求23所述的方法,其中所述实时事件信号由作为所述嵌入式处理器中的任务而运行的软件生成。
28.根据权利要求23所述的方法,其中所述实时事件信号指示数据已经准备好从与所述嵌入式处理器耦合的外围设备中加载或者向所述外围设备发送。
29.根据权利要求28所述的方法,其中所述外围设备连接到与设备耦合的传感器或者致动器。
30.根据权利要求23所述的方法,还包括:
生成实时时钟信号;以及
利用所述实时时钟信号触发由所述嵌入式软件应用定义的至少一个其他任务,
其中所述实时时钟信号是独立于所述处理器时钟信号和所述实时事件信号可控的,使得所述实时时钟信号具有与所述处理器时钟信号和所述实时事件信号不同的时基。
31.根据权利要求23所述的方法,还包括:
生成实时时钟信号;以及
利用所述实时时钟信号触发由所述嵌入式软件应用定义的至少一个其他任务,
其中所述实时时钟信号是独立于所述处理器时钟信号可控的,使得所述实时时钟信号具有与所述处理器时钟信号不同的时基,以及其中所述实时事件信号依赖于所述实时时钟信号并且具有相同的时基。
32.根据权利要求23所述的方法,还包括:在不中断所述处理器时钟信号的情况下,在一段时间内挂起所述一系列实时事件信号的生成。
33.根据权利要求32所述的方法,其中挂起所述一系列实时事件信号的生成的动作响应于由所述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
34.根据权利要求32所述的方法,还包括:在不中断所述处理器时钟信号的情况下,重新启动所述一系列实时事件信号的生成,重新启动的动作使得所述触发继续。
35.根据权利要求34所述的方法,其中重新启动所述实时事件信号的动作响应于由所述嵌入式处理器执行所述嵌入式软件应用所控制的信号而被执行。
36.根据权利要求23所述的方法,其中所述嵌入式处理器是仿真的嵌入式处理器,并且所述处理器时钟信号是仿真的处理器时钟信号,所述仿真的嵌入式处理器以及所述仿真的处理器时钟信号由计算机工作站上运行的软件进行仿真。
37.根据权利要求36所述的方法,其中使用指令集仿真器或者实时操作系统仿真器中的一种对所述仿真的嵌入式处理器以及所述仿真的处理器时钟信号进行仿真。
38.根据权利要求23所述的方法,其中所述嵌入式处理器是嵌入式系统的一部分,以及其中所述实时事件信号由位于所述嵌入式系统上的电路生成。
39.根据权利要求23所述的方法,还包括:使用系统简档器来测量所述嵌入式处理器上执行的软件的执行时间。
40.根据权利要求23所述的方法,其中所述嵌入式软件应用是第一嵌入式软件应用,所述嵌入式处理器是第一嵌入式处理器,所述实时操作系统是第一实时操作系统,以及所述处理器时钟信号是第一处理器时钟信号,所述方法还包括:
利用所述实时事件信号触发由第二嵌入式软件应用定义的任务,所述第二嵌入式软件应用由第二嵌入式处理器利用第二实时操作系统执行,
其中所述实时事件信号是独立于驱动所述第二嵌入式处理器的第二处理器时钟信号可控的,使得所述实时事件信号具有与所述第二处理器时钟信号不同的时基。
41.一种用于控制嵌入式系统开发期间的实时性的装置,包括:
用于生成一系列实时事件信号的模块;以及
用于利用所述实时事件信号触发由嵌入式软件应用定义的任务的模块,
其中所述嵌入式软件应用由嵌入式处理器利用实时操作系统执行,以及
其中所述实时事件信号是独立于驱动所述嵌入式处理器的处理器时钟信号可控的,使得所述实时事件信号具有与所述处理器时钟信号不同的时基并且不中断所述处理器时钟信号,以及
其中所述处理器时钟信号从不同于所述实时事件信号的源导出。
42.一种用于控制嵌入式系统开发期间的实时性的方法,包括:
修改嵌入式系统中的处理器的实时操作系统,使得用于触发任务执行的实时事件信号的源与为所述处理器提供时钟的处理器时钟信号的源解耦并且不使所述处理器时钟信号的源中断;以及
在一个或多个计算机可读介质上存储经修改的实时操作系统。
43.根据权利要求42所述的方法,其中修改的动作包括:针对所述实时操作系统的源代码而改变或添加一行或多行源代码。
44.根据权利要求42所述的方法,其中修改的动作包括修改所述实时操作系统,使得传送实时事件信号的路径是以下一个或多个:局域网信道,通用串行总线信道,串行外围接口信道,或者联合测试推动团体信道,拐射线信道,局域互连网络信道,控制器区域网络信道,或者所述嵌入式系统的进程间通信信道。
45.根据权利要求42所述的方法,其中所述经修改的实时操作系统存储在所述嵌入式系统的存储器中或者主机计算机的存储器中。
46.根据权利要求42所述的方法,还包括修改所述实时操作系统,使得所述实时操作系统使用的实时时钟信号也与为所述处理器提供时钟的所述处理器时钟信号的源解耦。
47.根据权利要求42所述的方法,其中所述实时操作系统被修改,使得所述实时事件信号的源是:在计算机工作站上运行的软件,在另一外部嵌入式系统上运行的软件,作为所述嵌入式系统中的任务而运行的软件,或者位于所述嵌入式系统上的时钟生成器电路。
48.根据权利要求42所述的方法,其中所述实时事件信号的源是计算机工作站上运行的软件,以及其中所述计算机工作站上运行的所述软件在调试器或者仿真器中运行。
49.一种用于控制嵌入式系统开发期间的实时性的装置,包括:
用于修改嵌入式系统中的处理器的实时操作系统,使得用于触发任务执行的实时事件信号的源与为所述处理器提供时钟的处理器时钟信号的源解耦并且不使所述处理器时钟信号的源中断的模块;以及
用于在一个或多个计算机可读介质上存储经修改的实时操作系统的模块。
50.一种用于控制嵌入式系统开发期间的实时性的系统,包括:
主机计算机,配置用于执行生成第一信号的软件;以及
嵌入式系统,其耦合到所述主机计算机,并且具有嵌入式处理器,
所述嵌入式处理器配置用于运行实时操作系统,所述实时操作系统基于从所述主机计算机上运行的所述软件接收所述第一信号而执行软件应用任务,
所述嵌入式处理器配置用于基于第二信号的接收而执行所述任务的个体指令,所述第一信号是独立于所述第二信号可控的,使得所述第一信号和所述第二信号具有不同的时基,使得所述第一信号不中断所述第二信号,并且使得所述第二信号从不同于所述第一信号的源导出。
51.根据权利要求50所述的系统,其中所述第一信号是实时时钟信号。
52.根据权利要求50所述的系统,其中所述第一信号是除实时时钟信号之外的实时事件信号。
53.根据权利要求50所述的系统,其中所述第一信号通过以下之一传送:局域网信道,通用串行总线信道,串行外围接口信道,联合测试推动团体信道,拐射线信道,局域互连网络信道,控制器区域网络信道,或者所述嵌入式系统的进程间通信信道。
54.根据权利要求50所述的系统,其中在所述主机计算机上执行的所述软件能够在所述第二信号无中断继续的同时挂起所述第一信号。
55.根据权利要求50所述的系统,还包括:耦合到所述主机计算机的一个或多个附加嵌入式系统,每个所述附加嵌入式系统都具有运行相应实时操作系统的相应嵌入式处理器,所述相应实时操作系统配置用于基于从所述主机计算机上运行的软件接收所述第一信号而执行相应的软件应用任务,并且所述相应实时操作系统中的每一个配置用于基于其他相应信号的接收而执行所述任务的个体指令,所述其他相应信号是独立于所述第一信号可控的,以允许所述第一信号和所述其他相应信号具有不同的时基。
56.根据权利要求50所述的系统,其中所述主机计算机还配置用于执行仿真器或者调试器,以及其中生成所述第一信号的所述软件在所述仿真器或者所述调试器中运行。
CN200980132284.7A 2008-07-10 2009-07-10 控制嵌入式系统开发期间的实时性 Active CN102124448B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/218,107 2008-07-10
US12/218,107 US9459890B2 (en) 2008-07-10 2008-07-10 Controlling real time during embedded system development
PCT/US2009/050226 WO2010006245A1 (en) 2008-07-10 2009-07-10 Controlling real time during embedded system development

Publications (2)

Publication Number Publication Date
CN102124448A CN102124448A (zh) 2011-07-13
CN102124448B true CN102124448B (zh) 2015-03-25

Family

ID=41171342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980132284.7A Active CN102124448B (zh) 2008-07-10 2009-07-10 控制嵌入式系统开发期间的实时性

Country Status (4)

Country Link
US (2) US9459890B2 (zh)
EP (1) EP2318922B1 (zh)
CN (1) CN102124448B (zh)
WO (1) WO2010006245A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9459890B2 (en) 2008-07-10 2016-10-04 Mentor Graphics Corporation Controlling real time during embedded system development
US20110191787A1 (en) * 2010-02-02 2011-08-04 Sun Microsystems, Inc. System and method for providing sensor data from embedded device to software development environment
WO2015041670A1 (en) * 2013-09-20 2015-03-26 Schneider Electric Usa Inc. Systems and methods for verification and deployment of applications to programmable devices
CN103885816B (zh) * 2014-03-28 2017-01-25 南京大学 一种实时嵌入式系统的仿真方法
JP6378128B2 (ja) * 2015-04-28 2018-08-22 ルネサスエレクトロニクス株式会社 性能検証装置、システム、方法、およびコンピュータに当該方法を実行させるためのプログラム
CN105159140B (zh) * 2015-08-11 2018-04-13 中国航空工业集团公司西安飞机设计研究所 实时控制系统的仿真方法及装置
CN105718320B (zh) * 2016-01-18 2020-11-06 华为技术有限公司 一种时钟任务处理方法、装置及设备
US10496439B1 (en) * 2016-12-15 2019-12-03 Space Sciences Corporation Finite resource allocator with intrinsically subordinate operating system
CN108462991B (zh) * 2017-02-22 2020-07-14 北京小鸟听听科技有限公司 处理器时钟同步方法、设备及系统
CN108701030B (zh) * 2017-09-05 2022-05-27 深圳欣锐科技股份有限公司 一种基于处理器的数据处理方法和装置
CN110737616B (zh) * 2018-07-20 2021-03-16 瑞昱半导体股份有限公司 处理中断优先级的电路系统
CN110457120B (zh) * 2019-07-22 2021-10-29 浙江大学 基于osek嵌入式实时操作系统的非周期定时器驻留机制
US10949592B1 (en) * 2020-03-23 2021-03-16 Hitachi Automotive Systems, Ltd. Co-simulation execution platform
CN113010179B (zh) * 2021-02-23 2024-03-15 深圳市广和通无线股份有限公司 基于实时操作系统的独立应用的运行方法
CN115062496B (zh) * 2022-08-08 2023-01-17 北京智芯半导体科技有限公司 嵌入式应用的验证方法、装置、电子设备及芯片

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868770A (en) * 1987-12-02 1989-09-19 Analogy, Inc. Simulation results enhancement method and system
JP2520544B2 (ja) * 1991-09-26 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置
US5640546A (en) * 1993-02-23 1997-06-17 Network Programs, Inc. Composition of systems of objects by interlocking coordination, projection, and distribution
US5663900A (en) * 1993-09-10 1997-09-02 Vasona Systems, Inc. Electronic simulation and emulation system
US5493672A (en) * 1994-05-16 1996-02-20 Sun Microsystems, Inc. Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution
US5551013A (en) * 1994-06-03 1996-08-27 International Business Machines Corporation Multiprocessor for hardware emulation
US5546562A (en) * 1995-02-28 1996-08-13 Patel; Chandresh Method and apparatus to emulate VLSI circuits within a logic simulator
US5768567A (en) * 1996-05-14 1998-06-16 Mentor Graphics Corporation Optimizing hardware and software co-simulator
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
KR20030045024A (ko) * 2001-06-05 2003-06-09 코닌클리케 필립스 일렉트로닉스 엔.브이. 태스크의 진행을 평가하는 방법 및 시스템
US7043718B1 (en) * 2002-02-15 2006-05-09 Lsi Logic Corporation System real-time analysis tool
US7472055B2 (en) * 2002-06-03 2008-12-30 Broadcom Corporation Method and system for deterministic control of an emulation
DE10246746B3 (de) * 2002-10-07 2004-04-08 Siemens Ag Rechnersystem für Echtzeit- und Nicht-Echtzeitprogramme
US7475288B2 (en) * 2004-10-05 2009-01-06 Hans Erich Multhaup Accelerated hardware emulation environment for processor-based systems
US20060277546A1 (en) * 2005-06-02 2006-12-07 Rothman Michael A Detecting virtualization
US20080307240A1 (en) * 2007-06-08 2008-12-11 Texas Instruments Incorporated Power management electronic circuits, systems, and methods and processes of manufacture
US8146107B2 (en) * 2007-07-10 2012-03-27 Mitel Networks Corporation Virtual machine environment for interfacing a real time operating system environment with a native host operating system
US9459890B2 (en) * 2008-07-10 2016-10-04 Mentor Graphics Corporation Controlling real time during embedded system development

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Software Verification for System on a Chip using a C/C++ Simulator and FPGA Emulator;Yuichi Nakamura;《VLSI Design, Automation and Test, 2006 International Symposium》;20060426;第3-5节;图4-5 *

Also Published As

Publication number Publication date
US20100011237A1 (en) 2010-01-14
EP2318922B1 (en) 2018-10-17
US10552560B2 (en) 2020-02-04
US9459890B2 (en) 2016-10-04
US20170185708A1 (en) 2017-06-29
EP2318922A1 (en) 2011-05-11
WO2010006245A1 (en) 2010-01-14
CN102124448A (zh) 2011-07-13

Similar Documents

Publication Publication Date Title
CN102124448B (zh) 控制嵌入式系统开发期间的实时性
Zurawski Embedded Systems Handbook 2-Volume Set
Zeng et al. Schedule optimization of time-triggered systems communicating over the FlexRay static segment
KR100483636B1 (ko) 에뮬레이션및시뮬레이션을이용한설계검증방법및장치
Schütz The testability of distributed real-time systems
De Schutter Better Software. Faster!: Best Practices in Virtual Prototyping
US20210081585A1 (en) Method for event-based simulation of a system
Alvarez et al. Centralized failure injection for distributed, fault-tolerant protocol testing
Urbina et al. Simulation environment based on systemc and veos for multi-core processors with virtual autosar ecus
Posadas et al. POSIX modeling in SystemC
Zheng et al. Real-time simulation support for runtime verification of cyber-physical systems
Peraldi-Frati et al. Timing modeling with autosar-current state and future directions
Cox Ritsim: Distributed systemc simulation
Fennibay et al. A heterogeneous simulation and modeling framework for automation systems
Becker et al. Heroes: Virtual platform driven integration of heterogeneous software components for multi-core real-time architectures
Helmstetter et al. Fast and accurate TLM simulations using temporal decoupling for FIFO-based communications
Haberl Code generation and system integration of distributed automotive applications
Hemingway et al. Automated synthesis of time-triggered architecture-based TrueTime models for platform effects simulation and analysis
Seyyedi Globally Accurate Locally Inaccurate (GALI): On the Combination of Time-Triggered Architectures with Instruction Accurate Simulators for the Analysis of System Behavior
Kramer et al. New Functions, New Sensors, New Architectures–How to Cope with the Real-Time Requirements
Nebel et al. Object-oriented specification and design of embedded hard real-time systems
Almeida Reliable Software Development Aided by QEMU Simulation
Joo et al. An end-to-end tool for developing cpss from design to implementation
Denil et al. DEVS for AUTOSAR platform modelling.
Pieper et al. Formal and Practical Techniques for the Complex System Design Process Using Virtual Prototypes: Better Early Than Never

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210804

Address after: American Texas

Patentee after: SIEMENS INDUSTRY SOFTWARE N.V.

Address before: oregon

Patentee before: Mentor Co.

TR01 Transfer of patent right