CN100458728C - 一种模拟芯片操作的方法及系统 - Google Patents

一种模拟芯片操作的方法及系统 Download PDF

Info

Publication number
CN100458728C
CN100458728C CNB2006101138550A CN200610113855A CN100458728C CN 100458728 C CN100458728 C CN 100458728C CN B2006101138550 A CNB2006101138550 A CN B2006101138550A CN 200610113855 A CN200610113855 A CN 200610113855A CN 100458728 C CN100458728 C CN 100458728C
Authority
CN
China
Prior art keywords
chip
simulation
module
analog
address
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.)
Expired - Fee Related
Application number
CNB2006101138550A
Other languages
English (en)
Other versions
CN101013393A (zh
Inventor
艾国
游明琦
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.)
Vimicro Corp
Original Assignee
Vimicro 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 Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2006101138550A priority Critical patent/CN100458728C/zh
Publication of CN101013393A publication Critical patent/CN101013393A/zh
Application granted granted Critical
Publication of CN100458728C publication Critical patent/CN100458728C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种模拟芯片操作的方法及系统,在没有真实芯片的情况下通过模拟芯片操作实现芯片的功能以及芯片的驱动软件架构和程序设计的验证,以解决现有技术中芯片及其驱动软件的开发周期较长的问题;该方法由主机中的应用程序模块调用芯片的驱动程序模块向公共通信平台发送第一操作命令;所述公共通信平台解析所述第一操作命令后生成所述芯片能够识别的第二操作命令,并将该第二操作命令通过模拟通道发送给所述主机中模拟的芯片环境模块;其中,模拟的芯片环境模块通过主机中的内存模拟芯片环境;所述模拟的芯片环境模块解析所述第二操作命令后执行相应的操作。采用本发明加快了芯片产品及其驱动软件的开发速度。

Description

一种模拟芯片操作的方法及系统
技术领域
本发明涉及计算机领域的嵌入式开发技术,特别涉及模拟芯片操作的方法及系统。
背景技术
现有嵌入式开发技术中,比较通用的开发模型有如下两种情况:
第一种模型是程序全部运行在嵌入式环境中,用户通过一些按键、触摸屏等手段来完成具体任务,或者主机通过通用异步收发器Uart(UniversalAsynchronous Receiver/Transmitter)和通用串行总线架构U S B(Universal S erialBus)等通道发送简单的命令来完成具体的任务,这就是传统意义上的嵌入式开发,如手机开发。
第二种模型是嵌入式环境中只有最基本的程序运行环境,主要包括寄存器读写、内存读写、设备的初始化以及中断服务程序等,主机通过Uart和USB等通道发送读写寄存器和读写内存等命令来实现芯片的功能,这种模型适用在嵌入式系统的调试和开发阶段。
在实际的嵌入式环境中,应用软件和芯片的驱动都在个人计算机PC(Personal Computer)端,嵌入式环境中只有最基本的程序(如嵌入式环境正常工作、读写寄存器/内存和终端服务程序等),用户可以通过Uart和USB通道发送命令来实现芯片的功能。主机通过物理通道将命令发送到嵌入式环境,嵌入式微处理机控制单元MCU(Microprocessor Control Unit)通过解析命令来实现芯片寄存器或内存的读写,主机要实现芯片寄存器的读写,可以通过发送一组命令来实现;主机要实现芯片内存读写的功能,可以通过发送一组命令并发送和接收数据来实现。
上述两种嵌入式开发方式都能实现芯片的具体功能,但是要保证芯片功能的实现,就要确保软件是正确的,确切的说是要确保寄存器的配置、内存管理和数据发送和接收是正确的,现有嵌入式开发需要在芯片开发完成之后才开始设计芯片的驱动软件并验证软件模型、程序设计是否合理,因此导致芯片产品及其驱动软件的开发周期较长。
发明内容
本发明提供一种模拟芯片操作的方法,在没有真实芯片的情况下通过模拟芯片操作实现芯片的功能以及芯片的驱动软件架构和程序设计的验证,以解决现有技术中芯片及其驱动软件的开发周期较长的问题。
本发明提供如下技术方案:
一种模拟芯片操作的方法,包括步骤:
主机中的应用程序模块调用芯片的驱动程序模块向公共通信平台发送第一操作命令;
所述公共通信平台解析所述第一操作命令后生成所述芯片能够识别的第二操作命令,并将该第二操作命令通过模拟通道发送给所述主机中模拟的芯片环境模块;其中,模拟的芯片环境模块通过主机中的内存模拟芯片环境;
所述模拟的芯片环境模块解析所述第二操作命令后执行相应的操作。
所述模拟的芯片环境模块执行写操作时,查询模拟的芯片环境模块中是否存在写操作的地址,若存在,则在该地址相关联的单元中执行写操作,否则,在模拟的芯片环境模块中建立与该地址相关联的单元并在其中执行写操作。
所述模拟的芯片环境模块执行读操作时,查询模拟的芯片环境模块中是否存在读操作的地址,若存在,则在该地址相关联的单元中执行读操作,否则,返回默认值。
所述读操作的结果和所述默认值通过所述模拟通道发送给所述公共通信平台,由其进行解析并生成应用层能够识别的信息后将该信息发送给所述应用程序模块。
模拟的芯片环境模块以链表形式管理和维护模拟的芯片寄存器和/或芯片内存,所述链表由若干个节点构成。
所述模拟的芯片寄存器的一个节点包括地址和值,和/或,所述模拟的芯片内存的一个节点包括起始地址、内存大小和内存空间。
较佳的,所述模拟的芯片内存的节点还包括实际内存大小。
所述方法中,在没有执行任何操作时,所述链表为空。
一种模拟芯片的装置,包括:
存储单元,用于通过主机中的内存模拟芯片寄存器和/或芯片内存;
接收单元,用于接收在所述装置中执行操作的命令;
解析单元,用于对接收的命令进行解析;
模拟芯片管理器,用于管理和维护模拟的芯片寄存器和/或芯片内存,并根据解析后的命令对模拟的芯片寄存器和/或芯片内存进行操作。
一种模拟芯片操作的系统,包括:
应用程序模块,用于调用芯片的驱动程序模块;
驱动程序模块,用于向公共通信平台发送第一操作命令;
公共通信平台,用于解析所述第一操作命令后生成与所述芯片能够识别的第二操作命令,并将该第二操作命令通过模拟通道发送给模拟的芯片环境模块;
模拟通道,用于所述公共通信平台和所述模拟的芯片环境模块之间进行通信的接口;
模拟的芯片环境模块,用于解析接收到的所述第二操作命令,并根据解析结果执行相应的操作,以及用于通过主机中的内存模拟芯片环境。
所述系统还包括:
物理通道,用于所述公共通信平台和嵌入式系统之间进行通信的接口;
嵌入式系统,用于解析接收到的所述第二操作命令,并根据解析结果执行相应的操作。
所述模拟的芯片环境模块包括:
存储单元,用于模拟芯片寄存器和/或芯片内存;
接收单元,用于接收在模拟的芯片环境模块中执行操作的命令;
解析单元,用于对接收的命令进行解析;
模拟芯片管理器,用于管理和维护模拟的芯片寄存器和/或芯片内存,并根据解析后的命令对模拟芯片寄存器和/或芯片内存进行操作。
所述模拟的芯片环境模块执行写操作时,查询模拟的芯片环境模块中是否存在写操作的地址,若存在,则在该地址相关联的单元中执行写操作,否则,在模拟的芯片环境模块中建立与该地址相关联的单元并在其中执行写操作。
所述模拟的芯片环境模块执行读操作时,查询模拟的芯片环境模块中是否存在读操作的地址,若存在,则在该地址相关联的单元中执行读操作,否则,返回默认值。
本发明有益效果如下:
本发明在芯片的开发前期针对没有真实芯片的条件下,应用程序模块调用芯片的驱动程序模块,由其向公共通信平台发送操作命令,公共通信平台通过模拟通道将解析后的命令发送给模拟的芯片环境模块,由其执行相应的操作;进一步通过在模拟的芯片环境中模拟芯片的寄存器读写和/或内存读写来验证芯片的驱动软件模型、程序设计是否合理,以及验证软件代码的编写是否正确;本发明实现了芯片驱动软件的快速开发,同时也加快了芯片产品的开发速度。
附图说明
图1为本实施例中模拟芯片操作的实现原理框图;
图2为本发明实施例中模拟的芯片环境模块结构示意图;
图2A为本发明实施例中模拟芯片寄存器存储示意图;
图2B为本发明实施例中模拟芯片内存存储示意图;
图2C为本发明实施例中模拟芯片内存另一种存储示意图;
图3为本发明实施例中模拟芯片操作的实现流程图。
具体实施方式
本实施例基于通过发送命令实现芯片具体功能的模型来实现模拟的芯片寄存器或内存的读写,模拟的芯片在逻辑上与真实的芯片无差别,只是接收命令的通道不同,模拟的芯片通过模拟通道来实现;模拟通道接收到命令后,在模拟的芯片环境中对命令进行处理,其处理过程与嵌入式环境相同,同样也需要解析命令并执行命令;但与嵌入式环境相比,模拟的芯片环境并不是真实的芯片,而是用主机中的内存来模拟芯片的寄存器和/或内存。
如图1所示的本实施例中的一种模拟芯片操作的系统包括:应用程序模块10,用于为用户提供发送和接收命令的操作平台以实现芯片特定的功能;驱动程序模块11,用于被应用程序模块10调用,以及以命令的方式发送对芯片进行操作的命令,该命令可以是读写芯片寄存器命令、读写芯片内存命令,或者是其他操作命令;公共通信平台12,用于接收执行芯片操作的命令,将该命令解析后生成实际设备(芯片)能够识别的命令,并将生成后的命令通过通信接口13发送给相应的实际设备,以及对其他设备发送给主机的命令进行解析并生成主机能够识别的命令后将其发送;通信接口13,用于公共通信平台12和其他设备之间进行通信的接口,包括物理通道130(如USB、Uart),模拟通道131或者其他形式的通道,用户可以根据需要进行选择;嵌入式系统14,用于接收应用程序模块10通过物理通道130发送的命令,以及对命令进行解析后在嵌入式环境中执行芯片的相关操作;模拟的芯片环境模块15,用于接收应用程序模块10通过模拟通道131发送的命令,以及对命令进行解析后在模拟的芯片环境中执行模拟的芯片寄存器和/或芯片内存的相关操作。
如图2所示,本实施例中模拟的芯片环境模块15包括接收单元150、解析单元151、模拟芯片管理器152和存储单元153,其中,
所述存储单元153,用于模拟芯片寄存器和/或模拟芯片内存,以链表形式进行存储;如图2A所示,模拟的芯片寄存器的链表中,一个节点由地址和值构成;如图2B所示,模拟的芯片内存的链表中,一个节点由起始地址、内存大小和内存空间构成;为了减少内存的频繁释放和申请,避免内存碎片产生,一种较佳的模拟的芯片内存的链表结构如图2C所示,链表的节点有四项,分别是内存起始地址,芯片内存大小,实际内存大小和内存空间;在写操作地址对应的内存大小不小于写操作需要的内存大小时,将该地址对应的节点中的内存释放,并把对应的起始地址、内存大小和数据存储在内存区域;在该地址对应的内存大小小于写操作需要的内存大小时,通过改变该内存大小来实现模拟的芯片内存的写操作。
所述接收单元150,用于接收公共通信平台12通过模拟通道131发送的芯片操作命令。
所述解析单元151,用于对接收到的操作命令进行解析。
所述模拟芯片管理器152,用于管理和维护模拟的芯片寄存器和/或芯片内存,并根据解析后的命令对模拟的芯片寄存器和/或芯片内存进行操作。
如图3所示,本实施例中用户选择模拟通道模拟芯片操作的实现流程如下:
步骤301、应用程序模块10调用驱动程序模块11。
步骤302、驱动程序模块11将第一操作命令(读写芯片寄存器命令、读写芯片内存命令)发送给公共通信平台12。
步骤303、公共通信平台12解析第一操作命令后生成芯片能够识别的第二操作命令,并将第二操作命令通过模拟通道131发送给模拟的芯片环境模块15。
步骤304、模拟的芯片环境模块15对接收到的第二操作命令进行解析。
步骤305、模拟的芯片环境模块15根据解析结果执行相应的操作。
对于模拟芯片寄存器读写,在应用程序模块10没有执行任何操作时,存储地址和值的链表为空,这时读取寄存器的值都为0;如果需要向某个地址里写一个值,模拟芯片管理器152在存储单元153的链表中查询是否存在此地址,如果存在,则把该地址对应的节点中的值覆盖掉,否则,在存储单元153的链表中添加一个节点,并将对应的地址和值添加到该节点中;如果需要在某个地址读出寄存器的值,模拟芯片管理器152查询存储单元153的链表中是否存在此地址,如果存在,则将该地址对应的节点中的值读出,否则,返回默认值0;读操作的结果和默认值的信息通过模拟通道131发送给公共通信平台12,由其对该信息进行解析后生成应用层能够识别的信息,并将该信息发送给应用程序模块10。
对于模拟芯片内存读写,在应用程序模块10没有执行任何操作时,存储初始地址、内存大小和内存空间的链表为空,这时读取内存数据的值都为0;如果需要向某个起始地址里写入一定大小的数据,模拟芯片管理器152在存储单元153的链表中查询是否存在此地址,如果地址存在,则将该地址对应的节点中的内存释放,并在模拟的芯片环境模块中申请一个内存把对应的起始地址、内存大小和数据存储在该内存区域;如果地址不存在,则在存储单元153的链表中添加一个节点,并将对应的起始地址、内存大小和数据存储在内存区域;如果需要在某个起始地址里读出一块数据,模拟芯片管理器152在存储单元153的链表中查询是否存在此地址,如果存在,则将该地址对应的节点中的数据读出,否则,返回数据的默认值;该读操作的结果和默认值的信息同样需要通过模拟通道131发送给公共通信平台12,由其进行解析并生成应用层能够识别的信息,并将该信息发送给应用程序模块10。
本发明在芯片的开发前期针对没有真实芯片的条件下,应用程序模块调用芯片的驱动程序模块,由其向公共通信平台发送操作命令,公共通信平台通过模拟通道将解析后的命令发送给模拟的芯片环境模块,由其执行相应的操作;进一步通过在模拟的芯片环境中模拟芯片的寄存器读写和/或内存读写来验证芯片的驱动软件模型、程序设计是否合理,以及验证软件代码的编写是否正确;本发明实现了芯片驱动软件的快速开发,同时也加快了芯片产品的开发速度。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (14)

1、一种模拟芯片操作的方法,其特征在于,包括步骤:
主机中的应用程序模块调用芯片的驱动程序模块向公共通信平台发送第一操作命令;
所述公共通信平台解析所述第一操作命令后生成所述芯片能够识别的第二操作命令,并将该第二操作命令通过模拟通道发送给所述主机中模拟的芯片环境模块;其中,模拟的芯片环境模块通过主机中的内存模拟芯片环境;
所述模拟的芯片环境模块解析所述第二操作命令后执行相应的操作。
2、如权利要求1所述的方法,其特征在于,所述模拟的芯片环境模块执行写操作时,查询模拟的芯片环境模块中是否存在写操作的地址,若存在,则在该地址相关联的单元中执行写操作,否则,在模拟的芯片环境模块中建立与该地址相关联的单元并在其中执行写操作。
3、如权利要求1所述的方法,其特征在于,所述模拟的芯片环境模块执行读操作时,查询模拟的芯片环境模块中是否存在读操作的地址,若存在,则在该地址相关联的单元中执行读操作,否则,返回默认值。
4、如权利要求3所述的方法,其特征在于,所述读操作的结果和所述默认值通过所述模拟通道发送给所述公共通信平台,由其进行解析并生成应用层能够识别的信息后将该信息发送给所述应用程序模块。
5、如权利要求1至4任一项所述的方法,其特征在于,模拟的芯片环境模块以链表形式管理和维护模拟的芯片寄存器和/或芯片内存,所述链表由若干个节点构成。
6、如权利要求5所述的方法,其特征在于,所述模拟的芯片寄存器的一个节点包括地址和值,和/或,所述模拟的芯片内存的一个节点包括起始地址、内存大小和内存空间。
7、如权利要求6所述的方法,其特征在于,所述模拟的芯片内存的节点还包括实际内存大小。
8、如权利要求5所述的方法,其特征在于,在没有执行任何操作时,所述链表为空。
9、一种模拟芯片的装置,其特征在于,包括:
存储单元,用于通过主机中的内存模拟芯片寄存器和/或芯片内存;
接收单元,用于接收在所述装置中执行操作的命令;
解析单元,用于对接收的命令进行解析;
模拟芯片管理器,用于管理和维护模拟的芯片寄存器和/或芯片内存,并根据解析后的命令对模拟的芯片寄存器和/或芯片内存进行操作。
10、一种模拟芯片操作的系统,其特征在于,包括:
应用程序模块,用于调用芯片的驱动程序模块;
驱动程序模块,用于向公共通信平台发送第一操作命令;
公共通信平台,用于解析所述第一操作命令后生成与所述芯片能够识别的第二操作命令,并将该第二操作命令通过模拟通道发送给模拟的芯片环境模块;
模拟通道,用于所述公共通信平台和所述模拟的芯片环境模块之间进行通信的接口;
模拟的芯片环境模块,用于解析接收到的所述第二操作命令,并根据解析结果执行相应的操作,以及用于通过主机中的内存模拟芯片环境。
11、如权利要求10所述的系统,其特征在于,还包括:
物理通道,用于所述公共通信平台和嵌入式系统之间进行通信的接口;
嵌入式系统,用于解析接收到的所述第二操作命令,并根据解析结果执行相应的操作。
12、如权利要求10或11所述的系统,其特征在于,所述模拟的芯片环境模块包括:
存储单元,用于模拟芯片寄存器和/或芯片内存;
接收单元,用于接收在模拟的芯片环境模块中执行操作的命令;
解析单元,用于对接收的命令进行解析;
模拟芯片管理器,用于管理和维护模拟的芯片寄存器和/或芯片内存,并根据解析后的命令对模拟芯片寄存器和/或芯片内存进行操作。
13、如权利要求12所述的系统,其特征在于,所述模拟的芯片环境模块执行写操作时,查询模拟的芯片环境模块中是否存在写操作的地址,若存在,则在该地址相关联的单元中执行写操作,否则,在模拟的芯片环境模块中建立与该地址相关联的单元并在其中执行写操作。
14、如权利要求12所述的系统,其特征在于,所述模拟的芯片环境模块执行读操作时,查询模拟的芯片环境模块中是否存在读操作的地址,若存在,则在该地址相关联的单元中执行读操作,否则,返回默认值。
CNB2006101138550A 2006-10-19 2006-10-19 一种模拟芯片操作的方法及系统 Expired - Fee Related CN100458728C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006101138550A CN100458728C (zh) 2006-10-19 2006-10-19 一种模拟芯片操作的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006101138550A CN100458728C (zh) 2006-10-19 2006-10-19 一种模拟芯片操作的方法及系统

Publications (2)

Publication Number Publication Date
CN101013393A CN101013393A (zh) 2007-08-08
CN100458728C true CN100458728C (zh) 2009-02-04

Family

ID=38700925

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006101138550A Expired - Fee Related CN100458728C (zh) 2006-10-19 2006-10-19 一种模拟芯片操作的方法及系统

Country Status (1)

Country Link
CN (1) CN100458728C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207830B (zh) * 2012-01-13 2016-12-14 上海华虹集成电路有限责任公司 带有软件断点的仿真器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250244A1 (en) * 2003-06-03 2004-12-09 Albrecht Gregory F. Systems and methods for providing communication between a debugger and a hardware simulator
WO2005071534A2 (en) * 2003-12-11 2005-08-04 Erkki Laitila A process for simulating and analysing an object-oriented code and the corresponding software product
CN1786970A (zh) * 2005-12-16 2006-06-14 北京中星微电子有限公司 一种芯片仿真平台的算法仿真模型管理方法及系统
CN1794202A (zh) * 2005-10-20 2006-06-28 上海祥佑数码科技有限公司 一种嵌入式微处理器仿真器

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250244A1 (en) * 2003-06-03 2004-12-09 Albrecht Gregory F. Systems and methods for providing communication between a debugger and a hardware simulator
WO2005071534A2 (en) * 2003-12-11 2005-08-04 Erkki Laitila A process for simulating and analysing an object-oriented code and the corresponding software product
CN1794202A (zh) * 2005-10-20 2006-06-28 上海祥佑数码科技有限公司 一种嵌入式微处理器仿真器
CN1786970A (zh) * 2005-12-16 2006-06-14 北京中星微电子有限公司 一种芯片仿真平台的算法仿真模型管理方法及系统

Also Published As

Publication number Publication date
CN101013393A (zh) 2007-08-08

Similar Documents

Publication Publication Date Title
CN100449488C (zh) 真实及理想化硬件基装置的双模态装置虚拟化系统和方法
CN100383755C (zh) 一种软件接口测试方法和装置
CN100367253C (zh) 一种扩展外设的方法及系统
CN100589422C (zh) 一种仿真单板及其仿真方法
CN100336034C (zh) 嵌入式实时仿真平台
CN204759403U (zh) 一种基于数据透传实现设备内部模块升级的系统
CN110837466B (zh) 一种基于源代码打桩的嵌入式软件动态测试方法
CN1591336B (zh) 模拟计算机键盘或鼠标操作的方法
CN103176899A (zh) 手机模拟器及在宿主机上模拟手机功能的方法
CN107817962B (zh) 一种远程控制方法、装置、控制服务器及存储介质
CN102171655A (zh) 复合设备仿真
CN103514074A (zh) Mvb网卡开发方法及平台
CN102567071A (zh) 一种虚拟串口系统及其通信方法
CN100458728C (zh) 一种模拟芯片操作的方法及系统
CN103678099A (zh) 一种实现硬件平台与软件平台通讯的方法以及装置
CN1975701B (zh) 主机驱动外设的方法及系统
CN104035900A (zh) 一种共享pc的输入设备给安卓设备的方法及其装置
CN100353330C (zh) 一种基于ip网络的磁盘镜像方法
CN1684030A (zh) 码流播放卡和码流采集卡的驱动方法
CN103678244A (zh) 一种不使用应用处理器的智能设备
CN109992556A (zh) 一种i2c驱动方法和装置
US7464377B2 (en) Application parallel processing system and application parallel processing method
CN1318944C (zh) 可信键盘扫描的方法和装置
CN111930628B (zh) 一种安全级显示模块图形组态仿真系统及其仿真方法
CN111090430B (zh) 一种嵌入式系统下的应用软件开发系统

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090204

Termination date: 20121019