CN101206614A - 仿真特殊功能寄存器的仿真器 - Google Patents
仿真特殊功能寄存器的仿真器 Download PDFInfo
- Publication number
- CN101206614A CN101206614A CNA200610147515XA CN200610147515A CN101206614A CN 101206614 A CN101206614 A CN 101206614A CN A200610147515X A CNA200610147515X A CN A200610147515XA CN 200610147515 A CN200610147515 A CN 200610147515A CN 101206614 A CN101206614 A CN 101206614A
- Authority
- CN
- China
- Prior art keywords
- sfr
- register
- emulator
- read
- emulation
- 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.)
- Granted
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明公开了一种仿真特殊功能寄存器的仿真器,包括仿真芯片,仿真器处理器。所述的仿真芯片内有一个通用寄存器,当仿真器进入监控状态,仿真芯片的微处理器核会自动把以FIFO方式实现的SFR当前的读/写操作FIFO计数指针值存放到所述寄存器中。当仿真芯片的微处理器核对所述SFR执行过读/写操作后,微处理器核会同步更新这个寄存器内的值。仿真器处理器可以直接读取到所述寄存器内存放的值。仿真器处理器可以向仿真芯片发出命令或命令和数据,控制微处理器核对所述SFR进行读或写操作。本发明为所述的这类SFR的调试提供了可靠而便利的手段,可以有效地提高用户程序的调试效率。
Description
技术领域
本发明涉及一种仿真特殊功能寄存器的仿真器,特别是涉及一种在仿真器中针对微处理器内以先进先出方式实现的特殊功能寄存器实现仿真功能的仿真器。
背景技术
随着微处理器芯片技术的不断发展,很多新的51系列微处理器中除了配置有标准8051的一系列特殊功能寄存器(SFR)以外,针对实际应用的需要,还在微处理器的SFR区域内扩展了很多新的SFR,用以实现各种特殊的芯片功能。但是随着对微处理器功能要求的不断提高,需要在SFR区域内扩展出更多新的SFR,但是除去为兼容标准8051而必须占用的SFR以外,微处理器SFR区域内剩余的空间有限,不允许无限制的增加新的SFR。因此,为了节约使用SFR空间,在很多新的微处理器设计中,把若干个用于实现同一种功能的SFR合并成一个SFR,使用先进先出(FIFO)方式对这个SFR进行读、写操作,使其可以实现原来需要若干个SFR实现的功能,以达到节省使用微处理器内SFR空间的目的。例如,对于51系列8位微处理器而言SFR也是8位的,如果需要使用SFR设置/读取微处理器内某个20位的参数,可以在SFR区域内定义3个新的SFR,用户程序分3次分别写入/读出该20位参数的16-19位,8-15位和0-7位,以实现需要的设置/读取该参数的功能,但是这样需要占用掉SFR空间内3个SFR位置,占用了很大的有限资源。因此,为了更有效地使用有限的SFR空间资源,考虑到这3个SFR是共同用于实现一个功能,很多微处理器中使用了FIFO方式以一个SFR来实现上述需要3个SFR实现的功能。实现方法是在SFR空间内只增加一个SFR,然后在设置这个20位的参数时,用户程序连续对该SFR写3次,分别写入参数的16-19位,8-15位和0-7位;在读取这个20位的参数时,用户程序连续对该SFR读3次,就可以分别读出参数的16-19位,8-15位和0-7位,这样就用一个SFR实现了原来需要3个SFR实现的功能。以FIFO方式实现的SFR与普通的SFR相比,节省了SFR空间,但是在微处理器内部需要增加配合SFR的FIFO计数指针,这个指针对用户程序是不可见的,用户程序也无法访问到。在上例中,以FIFO方式实现的SFR就需要使用一个写操作FIFO计数指针和一个读操作FIFO计数指针,这两个计数指针都是循环指针,当计数指针到达最大值(指向最后一个数据位置)后再加1会自动清零(指向第一个数据位置)。在开始对这个SFR写入操作时,用户程序先写入20位参数的16-19位,微处理器核收到后把写操作FIFO计数指针加1,用户程序继续写入20位参数的8-15位,微处理器核收到后把写操作FIFO计数指针再加1,用户程序继续写入20位参数的0-7位,微处理器核收到后把写操作FIFO计数指针再加1,这样微处理器根据写操作FIFO计数指针就可以正确地把分3次写入的数据拼接成需要的那个20位参数了。同样,用户程序需要读取那个20位的参数时,对这个SFR连续读取三次,微处理器核递增读操作FIFO计数指针,分别输出参数的16-19位,8-15位和0-7位,用户程序根据接收到的顺序就可以拼接成需要的20位参数。这样,通过三次SFR的写入或读出操作配合写入或读出FIFO计数指针,微处理器核就可以获得或给出这个20位的参数。
作为针对微处理器芯片内用户程序调试的主要工具,硬件仿真器必须能把芯片中的各种关键信息真实地显示在计算机的仿真界面上,并可供用户直接在仿真界面上加以修改,其中就包括所有的SFR。仿真器内使用仿真芯片替代产品芯片,现有仿真器中的仿真芯片和产品芯片一样,对这类以FIFO方式实现的SFR没有把读/写操作的FIFO计数指针向用户程序和仿真器开放出来。由于硬件仿真器是真实反映芯片状态的,也就是说,当需要在仿真界面上显示/改写SFR信息时,仿真器会真实地通过仿真通信通道命令仿真芯片内的微处理器核去读取/写入该SFR内的值。对于不是以FIFO方式实现的SFR,这样做没有问题。但是对于上述以FIFO方式实现的SFR而言,当用户程序停下来(进入监控状态),用户需要通过仿真界面观察该寄存器时,仿真器如果对该SFR也像对其他普通SFR一样只读取一次并显示出来,只能提供该SFR内一组有效数据中的一个,信息不完整。而且,如果此时用户程序是停在若干次对该SFR读取操作之间的话,由于仿真器通过微处理器核对该SFR执行了一次读操作,微处理器同样也会对读操作FIFO计数指针加1,从而导致如果用户程序继续执行,在执行用户程序中之后的对该SFR剩余的读操作时,由于读操作FIFO计数指针已经错误的加过1,指到了错误的位置,用户程序将获取到错误的数据。即使利用FIFO计数指针的循环特性,仿真器通过仿真芯片内微处理器核对该SFR进行完整的一遍读操作,取得了该SFR内完整的一组数据,但是由于用户程序停止位置(仿真器从运行状态进入了监控状态)的不可知性,仿真器无法了解读出的这组数据的正确起点和终点,现有的仿真器因而无法按正确的顺序在界面上把它们显示给用户观察。在界面上修改该SFR,也有与读取相类似的问题。为了避免显示、修改SFR而带来混乱,影响用户程序的正确运行,现有的仿真器通常都不提供这类以FIFO方式实现的SFR在仿真界面上显示和修改功能的。但是,这类SFR对用户调试用户程序而言往往是非常关键和重要的,在调试时,用户非常希望能够像其他普通SFR一样,在仿真界面上观察和直接修改这类SFR,以期提高用户程序的调试效率。
发明内容
本发明要解决的技术问题是提供一种仿真特殊功能寄存器的仿真器,使用户程序无论停在何处,仿真器都可以在界面上按正确的顺序显示以FIFO方式实现的SFR内的完整数据串,并可供用户在界面上任意修改该数据串中的任意一个,且不会影响用户程序的继续运行。
为解决上述技术问题,本发明的仿真特殊功能寄存器的仿真器包括仿真芯片,通过一条访问通道与该仿真芯片进行通信的仿真器处理器;
所述的仿真芯片包括微处理器核,以及与该微处理器核进行通信的寄存器和以FIFO方式实现的SFR;所述的寄存器属于仿真芯片中用于实现仿真功能的仿真逻辑部分;
所述仿真器切换进入监控状态时,所述微处理器核自动将SFR当前的读/写操作FIFO计数指针值存放到所述寄存器中;所述微处理器核对SFR执行读/写操作后,该微处理器核将同步更新所述寄存器内的值;
所述仿真器处理器通过所述访问通道读取寄存器内存放的与所述SFR相对应的读/写操作FIFO计数指针值;或者通过所述访问通道向微处理器核发出命令或者命令和数据,控制微处理器核对所述的SFR进行读操作或者写入数据操作。
由于采用本发明的仿真器,可以在调试用户程序时无论用户程序停在何处,仿真器都可以在仿真界面上按正确的顺序显示以FIFO方式实现的SFR内的完整数据串,并可供用户在仿真界面上任意修改该数据串中的任意一个,且不会影响用户程序的继续运行。为用户程序的调试,特别是为所述的这类SFR的调试提供了可靠而便利的手段,可以有效地提高用户程序的调试效率。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明:
附图是本发明的仿真特殊功能寄存器的仿真器结构示意图。
具体实施方式
如图所示,本发明的仿真特殊功能寄存器的仿真器1包括仿真芯片2、仿真器处理器3。仿真芯片2包括与产品芯片一致的微处理器核4以及以FIFO方式实现的SFR6,还包括专用于实现仿真功能的寄存器5。寄存器5和SFR6与该微处理器核进行通信。寄存器5是通用的寄存器,寄存器5内存放SFR6当前的读/写操作FIFO计数指针值。仿真器处理器3与仿真芯片2之间有一条访问通道,仿真器处理器3通过该访问通道可以读取到寄存器5内存放的数据。仿真器1与计算机7连接,仿真器1可以向计算机7上的仿真界面发送数据,计算机7也可以把仿真界面上的数据传递给仿真器1。计算机7接收仿真器1提供的数据,可以在仿真界面上显示出实际SFR6内一组数据的镜像SFR6’。
所述仿真芯片2包括实现产品芯片所有功能的产品芯片逻辑,以及实现仿真功能的仿真逻辑,该仿真逻辑独立于产品芯片逻辑之外,寄存器5属于仿真逻辑部分。
当所述仿真器1处于运行状态时仿真芯片2中的仿真逻辑不工作,在仿真芯片2上运行的用户程序与在产品芯片上运行完全一致;当用户程序停止运行,所述仿真器1处于监控状态,用户使用、观察、修改SFR值时,仿真芯片2中的仿真逻辑工作。
当仿真器1处于运行状态,用户程序在仿真芯片2上运行时,由于仿真芯片2的仿真逻辑部分不工作,寄存器5也不会工作,用户程序是无法通过仿真芯片2的微处理器核4访问到寄存器5的,不会影响用户程序的运行。当用户程序停止运行,仿真器1切换进入监控状态,用户需要观察修改以FIFO方式实现的SFR6时,仿真芯片2的微处理器核4会自动把SFR6当前的读/写操作FIFO计数指针值存放到寄存器5中,存放格式可以是寄存器5的高4字节存放读操作FIFO计数指针值,低4字节存放写操作FIFO计数指针值,反之亦可,寄存器5对微处理器核4而言是可读可写的。仿真器1在监控状态下,当仿真芯片2的微处理器4核对SFR6执行过读/写操作后,微处理器核4会同步去更新寄存器5内的值。仿真器处理器3可以通过所述访问通道向仿真芯片2的微处理器核4发出命令或者命令和数据,控制微处理器核4对SFR6进行读操作或者写入数据操作。
这样,在进入监控状态后,仿真器处理器3只要先读出寄存器5内的当前读操作FIFO计数指针值,并以此为依据对随后从SFR6内读出的完整一组数据重新整理,就可以把SFR6内的所有数据按照正确的顺序传送给计算机7,在计算机7上的仿真界面上显示出来。同时,由于读操作FIFO计数指针具有循环特性,仿真器处理器3通过微处理器4对SFR6完整地读了一遍,正好使读操作FIFO计数指针完成一个循环,回到用户程序停下来时的读操作FIFO计数指针值。如果退出监控状态,由于没有破坏用户程序停止时的读操作FIFO计数指针值,用户程序可以继续正常地对SFR6继续进行读/写操作。当用户在仿真界面上改写SFR6’一组数据中的某一个后,仿真器1通过计算机7从仿真界面上获取SFR6’完整的一组新数据,仿真器处理器3读出寄存器5中当前的写操作FIFO计数指针值,根据这个值选择起始位置把那一组新数据通过仿真芯片2的微处理器核4写入到SFR6内,完成对SFR6内的数据更新。同样的,由于写操作FIFO计数指针也具有循环特性,仿真器处理器3通过微处理器核4向SFR6内写入了完整的一组数据,正好使写操作FIFO计数指针完成一个循环,回到用户程序停下来时的写操作FIFO计数指针值。如果退出监控状态,由于没有破坏用户程序停止时的写操作FIFO计数指针值,用户程序可以继续正常地对SFR6进行读/写操作,实现了用户通过仿真界面改写SFR6内一组数据中的任意一个的功能。
Claims (3)
1.一种仿真特殊功能寄存器的仿真器,包括仿真芯片,通过一条访问通道与该仿真芯片进行通信的仿真器处理器;其特征在于:所述的仿真芯片包括微处理器核,以及与该微处理器核进行通信的寄存器和以FIFO方式实现的SFR,所述的寄存器属于仿真芯片中用于实现仿真功能的仿真逻辑部分;
所述仿真器进入监控状态时,所述微处理器核自动将SFR当前的读/写操作FIFO计数指针值存放到所述寄存器中;所述微处理器核对SFR执行读/写操作后,该微处理器核将同步更新所述寄存器内的值;
所述仿真器处理器通过所述访问通道读取寄存器内存放的与所述SFR相对应的读/写操作FIFO计数指针值;或者通过所述访问通道向微处理器核发出命令或者命令和数据,控制微处理器核对所述的SFR进行读操作或者写入数据操作。
2.如权利要求1所述的仿真特殊功能寄存器的仿真器,其特征在于:所述寄存器的高4位字节存放读操作FIFO计数指针值,低4位字节存放写操作FIFO计数指针值;或者高4位字节存放写操作FIFO计数指针值,低4位字节存放读操作FIFO计数指针值。
3.如权利要求1所述的仿真特殊功能寄存器的仿真器,其特征在于:所述仿真器与计算机连接,该仿真器向所述计算机上的仿真界面发送数据,计算机将仿真界面上的数据传递给仿真器;计算机接收仿真器提供的数据,在仿真界面上显示出实际SFR内一组数据的镜像SFR。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610147515XA CN101206614B (zh) | 2006-12-20 | 2006-12-20 | 仿真特殊功能寄存器的仿真器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610147515XA CN101206614B (zh) | 2006-12-20 | 2006-12-20 | 仿真特殊功能寄存器的仿真器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101206614A true CN101206614A (zh) | 2008-06-25 |
CN101206614B CN101206614B (zh) | 2010-12-08 |
Family
ID=39566839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610147515XA Expired - Fee Related CN101206614B (zh) | 2006-12-20 | 2006-12-20 | 仿真特殊功能寄存器的仿真器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101206614B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110045A (zh) * | 2009-12-24 | 2011-06-29 | 上海华虹集成电路有限责任公司 | 实时显示调试信息的仿真器 |
CN102369517A (zh) * | 2011-09-01 | 2012-03-07 | 华为技术有限公司 | 一种芯片状态监控方法、装置以及芯片 |
CN102467444A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 特殊功能寄存器的仿真调试系统 |
CN102467446A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的处理器芯片仿真器 |
CN103207823A (zh) * | 2012-01-13 | 2013-07-17 | 上海华虹集成电路有限责任公司 | 一种处理器芯片仿真器 |
CN103389958A (zh) * | 2013-06-27 | 2013-11-13 | 三星半导体(中国)研究开发有限公司 | 通用串行接口 |
CN103677953A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的仿真器 |
CN103677954A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 仿真器 |
CN104932959A (zh) * | 2014-03-19 | 2015-09-23 | 刘远峰 | 一种解析芯片寄存器运行状态的方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4939637A (en) * | 1988-02-10 | 1990-07-03 | Metalink Corporation | Circuitry for producing emulation mode in single chip microcomputer |
JP2727976B2 (ja) * | 1994-09-12 | 1998-03-18 | 日本電気株式会社 | インサーキットエミュレータ |
-
2006
- 2006-12-20 CN CN200610147515XA patent/CN101206614B/zh not_active Expired - Fee Related
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102110045A (zh) * | 2009-12-24 | 2011-06-29 | 上海华虹集成电路有限责任公司 | 实时显示调试信息的仿真器 |
CN102110045B (zh) * | 2009-12-24 | 2014-02-19 | 上海华虹集成电路有限责任公司 | 实时显示调试信息的仿真器 |
CN102467444A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 特殊功能寄存器的仿真调试系统 |
CN102467446A (zh) * | 2010-11-11 | 2012-05-23 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的处理器芯片仿真器 |
CN102369517A (zh) * | 2011-09-01 | 2012-03-07 | 华为技术有限公司 | 一种芯片状态监控方法、装置以及芯片 |
CN103207823A (zh) * | 2012-01-13 | 2013-07-17 | 上海华虹集成电路有限责任公司 | 一种处理器芯片仿真器 |
CN103207823B (zh) * | 2012-01-13 | 2016-06-29 | 上海华虹集成电路有限责任公司 | 一种处理器芯片仿真器 |
CN103677953A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 可设置程序指针值的仿真器 |
CN103677954A (zh) * | 2012-09-25 | 2014-03-26 | 上海华虹集成电路有限责任公司 | 仿真器 |
CN103677954B (zh) * | 2012-09-25 | 2018-02-13 | 上海华虹集成电路有限责任公司 | 仿真器 |
CN103389958A (zh) * | 2013-06-27 | 2013-11-13 | 三星半导体(中国)研究开发有限公司 | 通用串行接口 |
CN104932959A (zh) * | 2014-03-19 | 2015-09-23 | 刘远峰 | 一种解析芯片寄存器运行状态的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101206614B (zh) | 2010-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101206614B (zh) | 仿真特殊功能寄存器的仿真器 | |
CN100565472C (zh) | 一种适用于多处理器核系统芯片的调试方法 | |
CN102193885B (zh) | 支持虚拟信道的非挥发性存储器控制器 | |
CN101154183B (zh) | 一种微控制器嵌入式在线仿真调试系统 | |
JP2003006003A (ja) | Dmaコントローラおよび半導体集積回路 | |
CN103440216A (zh) | 一种通过i2c从设备调试mcu的芯片及方法 | |
CN101339581A (zh) | 基于中断通讯的嵌入式系统的在线调试仿真方法 | |
CN104272271B (zh) | 具有指令跟踪能力的处理器装置 | |
CN104598402A (zh) | 一种闪存控制器和闪存控制器的控制方法 | |
CN108664380A (zh) | 一种带性能显示的执行后软件调试系统及调试方法 | |
CN109800193A (zh) | 一种ahb总线访问片上sram的桥接装置 | |
CN102467446A (zh) | 可设置程序指针值的处理器芯片仿真器 | |
KR100354932B1 (ko) | 멀티플렉싱버스상에쇼사이클을제공하는방법및데이타프로세서 | |
CN113849433A (zh) | 一种总线控制器的执行方法、装置、总线控制器、计算机设备和存储介质 | |
CN103793263B (zh) | 一种基于PowerPC处理器的DMA事务级建模方法 | |
CN104461796B (zh) | 用于嵌入式8051cpu的jtag调试模块及调试方法 | |
CN101329650B (zh) | 智能卡仿真器 | |
CN102193860A (zh) | 微控制器在线调试电路及方法、微控制器 | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
CN105404591B (zh) | 处理器系统及其存储器控制方法 | |
CN101814054B (zh) | 一种用于调试微控制器的指令追踪控制器 | |
CN105893036A (zh) | 一种嵌入式系统的兼容式加速器扩展方法 | |
US5619702A (en) | Method and apparatus for programming registers using simplified commands | |
CN115599719A (zh) | 一种基于fpga的fifo接口多通道dma控制器 | |
CN102467444A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101208 Termination date: 20191220 |
|
CF01 | Termination of patent right due to non-payment of annual fee |