用于原位开发嵌入式软件的系统和方法

文档序号:6458213阅读:152来源:国知局
专利名称:用于原位开发嵌入式软件的系统和方法
技术领域
本发明一般涉及集成系统领域。特别地,本发明涉及用于原位(in-situ ) 开发嵌入式软件系统和方法。
背景技术
现在的片上系统(SoC)设计的开发管理人员和工程师可以从广阔范 围的开发工具和方法中选择来达到硬件/软件联合发展空间中的发展目标。 如所熟知的,SoC是构成自含式系统的单一芯片,其中,所述自含式系统 一般包括一个或更多微控制器、微处理器和/或数字信号处理器核心、 一个 或更多存储器、 一个或更多输入/输出(I/O)设备以及用于控制包括所述 1/0设备的所述系统的软件。例如用于SoC中的嵌入式软件的开发者关注 的是达到对在其上运行代码的目标硬件的及时访问。因为产品上市时间压 力高,所以所述情形在SoC应用的情况下尤其切实。因为所述高上市时间压力,软件开发者被迫与将组成最终SoC产品的 硬件并行地开发软件。这意味着软件将运行所在的实际硬件在开发期间不 可用。因此,当前技术的SoC软件开发通常依赖于用于提供针对新软件代 码的开发环境的硬件仿真或软件联合仿真。在仿真或联合仿真中,硬件被 映射到模拟整个SoC的行为的仿真/联合仿真平台上。 一旦被编程,则所 述仿真/联合仿真平台使得SoC的硬件和软件能够被测试和调试。软件联 合仿真平台的主要要素是用产业标准语言(例如SystemC、 VHDL、 Verilog) 编写的不同抽象级(例如事务级、周期精确、行为的等等)的硬件块的模 型。在所述硬件仿真/软件联合仿真平台上开发嵌入式软件的过程相比于该 软件将最终运行所在的实际SoC硬件的速度可以是非常緩慢的。例如,在仿真/联合仿真上51导例如操作系统代码的复杂代码花费很长 时间,并且因此是不实际的。因此,该过程的缺点是开发代码必须以小段 在仿真器上被执行。将开发代码分割为这些小段是非常耗时和低效的。另 外,经由仿真软件调试开发代码不允许其以完全或甚至接近完全的系统操 作速度执行。发明内容本公开的一个实施例涉及一种开发用于与拥有第一基础操作环境的新 集成系统一起使用的新外围硬件的新外围代码的方法。所述方法包括提供 拥有基本类似于所述第一基础操作环境的第二基础操作环境的已存在集成 系统。外围开发代码被力口载到所述已存在集成系统中,以及所述新外围硬 件的模型被提供。所述模型被映射到存储器中的寄存器空间中。所述开发 代码在所述已存在集成系统中被执行,从而使得所述外围开发代码经由所 述寄存器空间与所述模型交互。本公开的另一实施例涉及一种用于开发与具有至少一个核心寄存器的 新外围硬件相结合使用的新外围代码的系统。所述系统包括中央处理单元(CPU)和存储器,其中,所述存储器在操作上与所述CPU通信并且包括对应于所述新外围硬件的所述至少 一个核心寄存器的寄存器空间。被存储在所述存储器中的系统软件用于由所述CPU执行,从而提供现有操作环境。所述新外围硬件的模型被映射到所述寄存器空间。存储在所述存储器中并且可由所述CPU执行的开发代码包括用于经由所述寄存器空间与所述模型功能上交互的指令。本公开的又一 实施例涉及一种开发新外围硬件的外围代码的方法,所 述外围硬件被配置为在第一操作环境中运行。所述方法包括提供对应于所 述外围代码的第一开发代码,以及提供所述新外围硬件的嵌入式模型。所述嵌入式模型被映射到存储器映射的输入/输出(MM I/O)空间。所述第 一开发代码和所述嵌入式^t型被执行,从而所述第一开发代码与所述嵌入 式模型经由所述MMI/0空间相互交互。对应于所述外围代码的第二开发代码和所述新外围硬件的非嵌入式模型被分别提供。所述非嵌入式模型被映射到所述MM I/O空间。所述第二开发代码和所述非嵌入式模型被执行, 从而所述第二开发代码与所述非嵌入式模型经由所述MM I/O空间相互交 互。


为说明本发明,附图示出了本发明的一个或更多实施例的各方面。然 而,应当理解,本发明不限于附图中所示的精确安排和工具,在附图中图1示出了根据本发明的第一实施例的用于实施原位建模的开发系统 的功能框图;以及图2示出了根据本发明的第二实施例的用于实施原位建模的开发系统 的功能框图。
具体实施方式
图1示出了根据本发明的第一实施例构成的开发系统100,其中,该 系统用于实施例如片上系统(SoC)的被开发的集成系统(未示出)的原 位建模。本领域的技术人员将理解,所述被开发的集成系统不一定是SoC, 而可以是包括处理器和一个或更多外围(peripheral)的任意系统,特别地, 其中,所述新系统的处理器和处理环境将4艮大程度上与现有或传统处理器 系统相同,并且一个或更多新外围被添加。其它应用的示例包括新的基于 Unix和PC的集成系统的i殳计。在高层次,开发系统100允许软件开发者将原位建模技术用于例如 SoC设备104的现有集成系统硬件,其类似于将最终是被开发的新集成系 统的一部分的新硬件,,从而模拟所述新硬件的功能。更特别地,开发系 统100允许软件开发者在非常类似于被开发硬件的实际硬件(例如,除一 个或更多新外围(外围核心)外,新硬件的主要部分可以与开发硬件相同) 上以及在如果不相同则非常类似于被开发系统的基础软件(或操作系统) 环境(例如,相同操作系统可以在被开发系统中使用,以及,仅例如外围驱动程序、输入/输出驱动程序等(这里统称为"外围")的运行在操作系 统之上的软件可以是新的)中运行被开发系统的新软件代码(开发代码)。如下面讨论的,开发系统100经由将建模环境软件模块108与SoC设备 104集成来提供所述开发环境。更具体地转向开发系统100, SoC设备104可以例如是传统设备或被 开发新系统的前身。SoC设备104可以包括中央处理单元(CPU) 112 (例 如微控制器、微处理器或数字信号处理器)、存储器控制器114、中断控 制器116和I/0外围118等等。本领域的技术人员将容易理解,适于用作 SoC设备104的SoC设备可以包括多个CPU112、存储器控制器114、中 断控制器116和I/O外围118。为方便起见,仅示出了它们各自的一个。 CPU 112可以包括非可屏蔽中断(NMI) 120。 1/0外围118与SoC设备 104外部的真实I/O设备122交互从而产生合适的效应,其中,所述效应 在所述真实I/O设备是音频扬声器的情况下例如是声音。开发系统100还包括物理存储器124,其中,该物理存储器包含存储 器映射输入/输出(MMI/O)空间126。 CPU 112、存储器控制器114、中 断控制器116和传统I/O外围118可以经由与去往SoC设备104的通信总 线INTERNAL BUS (内部总线)的连接相互通信。用于构成SoC开发系 统100的SoC设备104、真实I/O设备122和物理存储器124的组合的物 理实例化例如可以经由SoC、印刷电路板或其它已知电子集成方法来实现。在本实施例中,CPU112是能够执行程序指令的微处理器,并且用于 管理SoC设备104 (以及因此开发系统100)的整体运转。在该示例中, 存储器控制器114提供存储器124与CPU 112之间的接口 ,其处理去往和 来自该存储器的数据传输。存储器控制器114管理存储器写/读协议,所述 协议允许CPU 112访问存储器124以及可能的其它存储器(未示出)。在图l的实施例中,中断控制器116是能够为到来的中断请求指派优 先级并且例如经由从该中断控制器到CPU的电子中断信号(INTERRUPT (中断))将中断请求递送到CPU 112。 INTERRUPT (中断)信号是来 自提供允许设备从处理器(例如CPU 112 )请求服务的机制的硬件或软件的同步或异步信号。特别在实时计算中,中断是用于计算机多任务的常用技术。例如来自传统I/0外围118的硬件中断使得CPU112经由上下文开 关(未示出)保存其执行状态,并且开始处理该中断条件。例如来自建模 环境模块108的软件中断通常被实现为使得上下文开关以类似于硬件中断 的方式切换到中断处理器的指令集中的指令。经由对比,CPU112的NMI 120是不能被标准中断屏蔽技术忽略的特定类型的中断。NMI典型用于针 对非可恢复硬件错误的信号注意,其用于系统调试以及用于处理例如系统 复位的特殊情况。传统I/O外围118是经由真实I/O设备122在CPU 112与外部世界之 间接合的SoC硬件。例如,如果真实1/0设备122是音频扬声器,则传统 I/O外围118可以包括音频信号发生器。当然,真实1/0设备122可以是除音频扬声器之外的任意现有i/o设备,例如键盘、鼠标、图形控制器和/或打印机等等,从而传统I/0外围118将是用于在出现问题时驱动真实I/O 设备的适当的相应各个外围。物理存储器124可以是能够存储信息的任意机器可读媒体,其中,所 述信息例如是关联于软件的数据和指令。机器可读媒体的示例如随机存取 存储器(RAM)设备。尽管在图1中存储器124被示为在SoC设备104 的外部,但物理存储器124可以可选地作为嵌入式存储器驻留在该SoC设 备的内部。在其它实施例中,存储器124可以包括两种或更多机器可读媒 体。MM I/O空间126是物理存储器124的一部分,其在开发系统100的 上下文中被分配给新外围(未示出)的寄存器空间,其中,所述新外围是 正被开发的,以及新软件针对该新外围正被开发。在一个示例中,MM I/O 空间126可以是物理存储器124中的任意100字节的块。在开发系统100 的上下文中,MM I/O空间126模拟被开发外围的寄存器。存储器映射I/0 是其中外围控制和状态寄存器被映射到存储器空间而非I/O空间中的通用 硬件设计方法。从软件开发者的角度看,存储器映射i/o设备看起来非常 像所述设备寄存器其自身。其寄存器甚至可以经由普通指针和数据结构来访问,这很大程度上简化了设备驱动实现。在开发系统100的上下文中, 建模环境模块108被接合到MM I/O空间126。建模环境模块108是这样的建模软件,其可以被嵌入SoC设备104中, 例如在存储器124中或其它存储器(未示出)里或与SoC设备104通信, 并且其用适于在CPU112上执行的任意编程语言来实现,其中,所述编程 语言例如但不限于高级编程语言(例如C/C十+编程语言)和/或例如汇编语 言的低级代码。建模环境模块108提供实施用于模拟新外围的功能的建模 任务的模型环境代码。因为在所示实施例中建模环境模块108驻留在开发 系统100的硬件中,所述开发系统的仿真操作可以以完全或接近完全的系 统运转速度来执行。应当指出,被开发新外围硬件的模型可以处于不同的 设计抽象级别,例如事务级、周期精确、行为、寄存器传输级,并且其用 例如SystemC或其变型的体系结构化建模语言、或者例如VHDL或Verilog 的硬件描述语言来编写。根据本发明构成的开发系统(例如图1的开发系统100)的操作如下。 至少三个高级操作结合使用所述开发系统来实施。这些操作是1 )对应于在建模环境模块108中建模的新外围的一个或更多核心寄存 器(core register W皮映射到现有集成系统的系统存储器中的存储器位置(例 如映射到开发系统100的物理存储器124的MM I/O空间126 );2)开发代码^皮存储到存储器中(例如存储到物理存储器124中),以 用于经由所映射的I/0存储器位置与所述新外围交互;以及3 )开发代码在现有软件操作环境中的CPU上(例如在SoC设备104 的操作环境中的CPU 112上)被执行。结合图1的实施例更具体地说,新开发代码被输入到开发系统100中, 以及在SoC设备104的基础软件操作环境中被CPU 112执行。在这样做 时,关联于现有SoC设备104和被开发新系统的基础代码和新开发代码在 开发系统100的现实环境中运行。在建模环境模块108中建模的新外围中 的一个或更多寄存器被映射到物理存储器位置(由物理存储器124的MM I/O空间126代表),并且对于开发系统100的现有硬件端上的基础软件和新开发代码以及该开发系统的建模环境端上所建模的新核心可用。所述模型环境(即,建模环境模块108)作为来自操作系统的周期性线程或作 为周期性非可屏蔽中断(由NMI120处理)执行,以及因此能够轮询(poll) 从被开发代码到MM I/O空间126的寄存器空间中的转储(deposit)。 MM I/O空间126的寄存器转储在建模环境模块108的模型环境代码中被 执行,以及响应在适当时被转储到MMI/O空间126的寄存器中。当中断 从所建模外围被生成时,合适的响应值被建模环境模块108强制放入中断 控制器116,其中,建模环境模块108仿真进入基础软件代码的中断,以 及由此,新开发代码的中断处理器被训练。另外,当可能时,建模环境模块108的建模环境代码可以利用现有的 传统I/O外围(例如传统I/O外围118 )来测试新核心I/O功能。这允许 应用代码与真实设备交互,以及由此增强所述开发环境。例如,如果正在被建模的新外围是新的音频信号处理核心,则传统I/0外围118是用于驱 动音频扬声器(真实1/0设备122)的音频信号发生器,因此,该传统音 频信号发生器可以使用所建模信号处理核心的输出信号来驱动所述扬声 器,从而允许开发者测试该新音频信号处理核心的运行和设计。本公开的开发系统(例如图1的开发系统100)可以被如下利用。为 方便起见,以下描述涉及开发系统100。然而,本领域的普通技术人员将发系统,其中,如以上所描述的,所述开发系统例如是基于Unix或PC的 开发系统。如果基础软件代码还未被加载到SoC设备104中,则其被与新外围开 发代码和建模环境模块108 (包括所建模的新外围) 一起加载到该SoC设 备中。作为建立开发系统100的一部分,所建模外围的每个寄存器被映射 到物理存储器(在本示例中为MM I/O空间126)中,以及所述外围开发 代码和/或基础软件代码被配置为对所述寄存器进行识别,用于允许外围开 发代码与所建模外围通信。一旦所有所述软件、建^=莫环境108和外围模型的加载完成,则例如SoC设备104的CPU 112的物理CPU中的基础软件代码、外围开发代码和外 围模型的执行被启动。当运行时,并且如上面所提到的,在一些实施例中, 建才莫环境模块108可以经由SoC设备104的CPU 112上的一个或更多周 期性线程中的基础软件环境执行。在可选实施例中,所述模型环境代码经 由所述^5出软件代码作为周期性非可屏蔽中断(例如由CPU 112的NMI 120进行处理)执行。在所述建模环境运行的同时,所述新外围开发代码 经由基础软件在CPU 112上运行。当所建模的新外围核心和新外围开发代 码运行时,建模环境模块108和^出软件/新外围开发代码都轮询到MM I/O空间126的相应各个寄存器中的转储。这样,新外围开发代码与所建 模的新外围之间的交互被仿真。更特别地,所进行的从新外围开发代码到MM I/O空间126中的每个 寄存器转储由建模环境模块108中的相应的各个所建模的新外围执行,以 及作为响应,每个相应的各个新外围模型将在适当时转储到MM I/O空间 126的寄存器中,其中,该新外围的响应用于由相应的新外围开发代码使 用。通过与在MMI/0空间126中转储一个或更多响应相结合,相应的各个所建模的新外围核心可以用信号通知已进行所述响应转储的中断控制器 116。 一旦中断被中断控制器116挂起,则该中断控制器将适当地提供其典 型的调度中断功能,以及向CPU112发出一个或更多INTERRUPT(中断) 信号以便用信号通知该CPU执行合适的新外围开发代码来处理所述中断。 开发系统100只要^L需要用于测试所有新外围开发代码就可以继续运行。取决于被开发的新外围和相应的新外围代码,现有的传统I/O外围118 和真实1/0设备122可以用于在物理世界的上下文中采样和评估所述新外 围开发代码和所述新外围核心的性能,其中,所述被开发新外围和外围代 码当用在产品中时将最终在所述物理世界中被^f吏用。经由示例,如果所述 新外围开发代码和新外围核心实现了一种音频数据压缩的改进方法,以及 真实I/O设备122是音频扬声器,以及传统I/O外围118是音频信号发生 器,则被开发的音频压缩算法由SoC设备104执行以便驱动所述音频信号 发生器,该音频信号发生器接着驱动所述音频扬声器从而允许开发者听到由所述新外围开发代码生成的输出。图2示出了用于实施原位逻辑建模的可选开发系统200。类似于图1 的开发系统100,图2的开发系统200允许軟件开发者使用原位建模技术 来模拟被开发新硬件(外围)的功能。然而,取代如图1的开发系统100 中那样利用嵌入式建模环境108来仿真被开发新外围,图2的开发系统200 被配置为被与硬件描述语言(HDL)逻辑仿真器工作站204或类似外部设 备接合,其中,所述硬件描述语言(HDL)逻辑仿真器工作站204或类似 外部设备提供与所述新外围开发代码交互的新外围的模型。开发系统200 的其它方面可以与图1的开发系统100的对应各个方面相同或类似。在基本类似于图1的开发系统100的一个实施例中,图2的开发系统 200包括SoC设备210,该SoC设备210包括一个或更多CPU 212、至少 一个存储器控制器214、至少一个中断控制器216以及一个或更多传统I/O 外围218。 CPU212可以包括NMI 220。开发系统200还可以包括一个或 更多真实I/O设备222和至少一个存储器224。存储器224包括包含一个 或更多寄存器的MMI/O空间226,其中,所述寄存器用于MMI/0空间 的一端的被开发新外围代码与MM I/O空间的另一端的所建模新外围核心 之间的通信。这些单元的每个可以如相对于图1的SoC开发系统IOO被描 述的那样。HDL逻辑仿真器工作站204可以包括HDL仿真器/加速器228。尽管 HDL仿真器/加速器228被示为放置在单独的工作站204中,但在可选实 施例中,该HDL仿真器/加速器可以不是基于工作站的。例如,HDL仿真 器/加速器228可以被并入直接接合到开发系统200的物理模块或设备板 中。为使能HDL仿真器/加速器228与开发系统200之间的通信,HDL逻 辑仿真器工作站204可以包括交叉接口 232,以及所述开发系统可以包括 相应的各个HDL仿真器工作站接口 236。 HDL仿真器工作站接口 236可 以例如是允许SoC设备210与HDL仿真器工作站接口 204之间的通信的 程序代码。类似地,交叉接口 232可以例如是允许SoC设备210的开发代 码测试环境与例如HDL仿真器/加速器228的HDL仿真器之间的通信的程序代码。HDL仿真器工作站接口 236与交叉接口 232之间的连接可以是 例如电缆连接的任意合适的高速连接,其中,所述电缆连接例如是以太网、 USB或火线电缆。HDL仿真器/加速器228可以是允许用户运行带加速的逻辑仿真的逻 辑仿真器。示例逻辑仿真器/加速器包括但不限于IBM (Armonk,纽约) 的AWAN仿真器和Synopsys公司(Mountain View,加利福尼亚)的VCS 仿真器。HDL仿真器描述核心设计的体系结构框,并且是通过草稿设计框 的传统方法。HDL仿真器典型使用允许设计者为其硬件设计编写必要规范 的硬件描述语言(HDL)。现在使用的两种主要HDL语言是Verilog和 VHDL,但其它语言也可以被使用。与图1的开发系统100—样,图2的开发系统200保留传统外围设备 (例如与真实I/0 222结合的传统I/0外围218)中的所有软件代码,但用 与逻辑仿真器(HDL仿真器/加速器228 )的连接代替所述建模环境(建模 环境模块108 )。在开发系统200中被执行的线程是开发系统200与HDL 仿真器/加速器228之间的接口 ,而图1的SoC开发系统100正在执行建 模环境模块108内部的实际功能。在SoC开发系统200的环境中,开发代码以类似于图1的SoC开发 系统100的原位方法的方式被执行。然而,在SoC开发系统200的情况下, MM I/O空间226的被捕获MM I/O操作被传输到HDL逻辑仿真器/加速 器228。在这样做时,新硬件的建模使用基于HDL的模型执行来达到,其 中,所述建模相比于图1的SoC开发系统100的嵌入式模型执行方法的使 用而言,是所述新硬件的更精确表示。开发系统100、 200提供了在现有的传统系统(例如SoC设备)中分 别利用先期嵌入式模型或基于HDL的模型来分别实现原位模型执行以及 用于原位HDL仿真的桥接方法的机制。所述软件/硬件开发过程可以包括 仅开发系统100的使用、仅开发系统200的使用、或SoC开发系统100和 200 二者的逐次使用。另外,传统(即现有)外围硬件当可能时用于提供伪真实i/o功能,其中,所述伪真实i/o功能对于设备驱动程序和应用开发可以是非常有用的。另外,SoC开发系统100和200在提供帮助优化嵌 入式软件的可扩展和精确的软件开发平台的同时,提供以全速或接近全速 并且在熟悉的调试环境中执行开发软件的好处。这些开发系统还允许所迷 软件开发上下文中的先期建模的再使用,由此使能一种实施并行开发的新 方法。本公开的开发系统还使用现有物理外围来生成和模拟真实数据流, 这对于软件系统开发和调试是至关重要的。开发系统200经由交叉适配器 的使用提供HDL仿真和加速技术的透明使用的附加好处。示例性实施例已在上面被公开并结合附图被说明。本领域的技术人员 应当理解,在不脱离本发明的精神和范围的情况下,可以对这里特别公开 的内容作出各种改变、省略和添加。
权利要求
1.一种开发用于与具有第一基础操作环境的新集成系统一起使用的新外围硬件的新外围代码的方法,所述方法包括提供具有基本类似于所述第一基础操作环境的第二基础操作环境的已存在的集成系统;将外围开发代码加载到所述已存在集成系统中;提供所述新外围硬件的模型;将所述模型映射到存储器中的寄存器空间中;以及在所述已存在集成系统中执行所述外围开发代码从而使得所述外围开发代码经由所述寄存器空间与所述模型交互。
2. 根据权利要求l所述的方法,进一步包括在建模环境中对所述新外围硬件建模以便创建所述模型;以及 在所述已存在集成系统上执行所述^^莫型。
3. 根据权利要求2所述的方法,其中,所述外围开发代码包括用于进 行到所述寄存器空间的转储的指令,所述执行所述核心模型的步骤包括对 所述寄存器空间轮询所述转储。
4. 根据权利要求2所述的方法,其中,所述提供所述外围硬件的所述 模型的步骤包括从包括事务级、周期精确、行为的和寄存器传输级的组中 选择设计抽象级别,以及从包括体系结构化建模语言和硬件描述语言的组 中选择建模语言。
5. 根据权利要求3所述的方法,其中,所述在所述已存在集成系统上 执行所述模型的步骤包括作为来自所述第二操作环境的周期性线程执行所 述模型。
6. 根据权利要求3所述的方法,其中,所述在所述已存在集成系统上 执行所述模型的步骤包括作为周期性非可屏蔽中断执行所述模型。
7. 根据权利要求3所述的方法,其中,所述执行所述模型的步骤包括 生成所述转储的响应,以及在所述寄存器空间中转储所述响应。
8. 根据权利要求2所述的方法,其中,所述已存在集成系统进一步包 括中断控制器,以及所述执行所述模型的步骤包括将响应信号推入所述中 断控制器。
9. 根据权利要求2所述的方法,其中,所述已存在集成系统进一步包 括传统输入/输出外围,以及所述方法进一步包括根据所述模型驱动所述传 统输入/输出外围。
10. 根据权利要求l所述的方法,进一步包括 在寄存器传输级仿真器中建模所述新外围硬件;以及 将所述寄存器传输级仿真器与所述寄存器空间接合。
11. 一种用于开发与具有至少一个核心寄存器的新外围硬件相结合使 用的新外围代码的系统,包括中央处理单元;存储器,其在操作上与所述中央处理单元通信,并且包括对应于所述 新外围硬件的所述至少 一个核心寄存器的寄存器空间;存储在所述存储器中的系统软件,其用于由所述中央处理单元执行从 而提供现有操作环境;被映射到所述寄存器空间的所述新外围硬件的模型;以及存储在所述存储器中并且可由所述中央处理单元执行的开发代码,其 包括用于经由所述寄存器空间与所述模型在功能上交互的指令。
12. 根据权利要求10所述的系统,其中,所述新外围硬件的所述模型 被存储在所述存储器中,所述模型可在所述中央处理单元上与所述开发代 码相结合执行从而仿真所述新外围硬件。
13. 根据权利要求ll所述的系统,其中,所述开发代码包括用于进行 到所述寄存器空间的转储的指令,以及所述模型包括用于对所述寄存器空 间轮询所述转储的指令。
14. 根据权利要求12所述的系统,其中,所述已存在集成系统作为周 期性线程执行所述模型。
15. 根据权利要求12所述的系统,其中,所述已存在集成系统作为周期性非可屏蔽中断执行所述模型。
16. 根据权利要求12所述的系统,其中,所ii^型包括用于生成所述 转储的响应以及用于将所述响应转储在所述寄存器空间中的指令。
17. 根据权利要求ll所述的系统,其中,所述已存在集成系统进一步 包括中断控制器,以及所述核心模型包括用于将响应信号推入所述中断控 制器的指令。
18. 根据权利要求ll所述的系统,其中,所述已存在集成系统进一步 包括传统输入/输出外围,以及所述已存在集成系统根据所述模型驱动所述 传统输入/输出外围。
19. 根据权利要求10所述的系统,进一步包括硬件描述语言仿真器, 其中,该仿真器包含与所迷已存在集成系统的存储器位置接合的新硬件核 心的硬件描述语言仿真。
20. —种开发新外围硬件的外围代码的方法,其中所述外围代码被配 置为在第一操作环境中运行,所述方法包括提供对应于所述外围代码的笫 一开发代码; 提供所述新外围硬件的嵌入式模型; 将所述嵌入式;f莫型映射到存储器映射的输入/输出空间; 执行所述第一开发代码和所述嵌入式模型,从而所述第一开发代码与 所述嵌入式^i型经由所述存储器映射的输入/输出空间相互交互; 提供对应于所述外围代码的第二开发代码; 提供所述新外围硬件的非嵌入式模型;将所述非嵌入式模型映射到所述存储器映射的输入/输出空间;以及 执行所述第二开发代码和所述非嵌入式模型,从而所述第二开发代码 和所述非嵌入式模型经由所述存储器映射的输入/输出空间相互交互。
21. 根据权利要求19所述的方法,其中,所述第一开发代码和所述第 二开发代码对应于处于不同开发阶段的外围代码。
全文摘要
一种用于原位开发嵌入式软件的系统和方法。其中,一种用于开发将被用于新集成系统中的新外围硬件的新外围软件代码的开发系统包括基本与所述新集成系统相同的传统或已存在集成系统。所述新外围硬件的模型被构成。所述模型的每个I/O寄存器被映射到存储器映射的I/O空间中。对应于所述新外围软件代码的开发代码在所述已存在硬件上被执行从而经由所述存储器映射的I/O空间与所述模型交互。在一个实施例中,所述模型作为嵌入式模型在所述已存在集成系统上被执行。在另一实施例中,所述模型作为非嵌入式模型在硬件描述语言仿真器上被执行。
文档编号G06F9/44GK101231589SQ200810008819
公开日2008年7月30日 申请日期2008年1月24日 优先权日2007年1月25日
发明者N·R·达瓦达, R·J·德维斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1