CN106445808A - 一种具有控制程序单步调试功能的仿真器 - Google Patents
一种具有控制程序单步调试功能的仿真器 Download PDFInfo
- Publication number
- CN106445808A CN106445808A CN201610753990.5A CN201610753990A CN106445808A CN 106445808 A CN106445808 A CN 106445808A CN 201610753990 A CN201610753990 A CN 201610753990A CN 106445808 A CN106445808 A CN 106445808A
- Authority
- CN
- China
- Prior art keywords
- module
- program
- debugging
- authority
- emulator
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Abstract
本发明公开了一种具有控制程序单步调试功能的仿真器,涉及到芯片仿真和安全调试技术领域。本发明的仿真器,包括软件管理模块和仿真器硬件模块。软件管理模块发送调试命令,仿真器硬件模块解析调试命令,若当前命令是调用安全程序区的指令,则仿真器硬件模块一直执行安全程序区指令,直到返回用户程序区(非安全)的指令时停止,软件管理模块停到用户程序区的下条指令处;若当前命令是用户程序区的指令,则仿真器硬件模块执行完本条指令后停止,软件管理模块停到用户程序区的下条指令处。本发明的仿真器,非权限用户只能调用安全区程序,无法查看安全程序区的指令/数据;禁止非权限用户通过单步调试,跟踪安全程序区的算法流程,达到保护软件知识产权的目的。
Description
技术领域
本发明涉及一种芯片仿真器,特别涉及一种具有控制程序单步调试功能的仿真器。
背景技术
现有的仿真器多是以FPGA仿真芯片功能,使用JTAG IEEE1149.1标准和处理器片上调试技术,通过在芯片硬件中增加调试功能,来实现芯片仿真器。这类仿真器大都支持软件调试、单步执行指令的功能,对提前开发软件和解决软件设计缺陷有很大的帮助。
用户通过仿真器IDE(集成开发环境)界面,下载程序到仿真器硬件上,进入IDE调试界面进行程序的调试。通过设置PC值,或执行程序调用,跳转到相应的程序入口处。若当前执行的是赋值命令,仿真器硬件执行当前指令返回CPU状态信息,IDE调试界面停止到下一条指令语句处,并更新当前显示窗口的信息;若当前执行的是函数命令,单步命令之后IDE调试界面停止到被调函数的首条指令处,并更新显示窗口信息。用户使用IDE的单步调试命令,可以方便分析程序执行流程,发现程序执行中的异常现象,快速定位并解决程序设计中的问题。
在金融应用开发方面,由于其产品的高安全性要求,对于芯片厂家和芯片平台用户,使用仿真器,需要保护各自的安全算法和安全配置流程,允许非权限用户调用安全算法API及安全配置API,不允许非权限用户通过单步调试命令,进入到此类API函数中,获取安全数据。
为了满足金融应用开发在仿真器安全功能的需要,本发明通过程序区权限定义,在单步执行程序时可以控制单步调试功能。仿真器中定义了安全区和用户区权限,安全区程序具有不可单步调试权限,芯片厂家或芯片平台用户的程序存放在安全区,非权限用户只能调用安全区程序函数,不能进行程序反汇编和单步跟踪分析。
发明内容
本发明所解决的技术问题是,如何设计一种具有控制程序单步调试功能的仿真器。
本发明的仿真器包括软件管理模块和仿真器硬件模块。
软件管理模块,与仿真器硬件模块相连,实现软件管理功能,向仿真器硬件模块发送调试命令或其它管理命令。
仿真器硬件模块,包括调试模块、程序区权限控制模块和芯片仿真模块。
调试模块,与软件管理模块相连,实现软件管理模块调试命令的接收和响应;调试模块与芯片仿真模块中的CPU处理器模块相连,传递调试指令给CPU处理器执行;调试模块与程序区权限控制模块相连,通过调试控制信号进行程序调试控制;
程序区权限控制模块,连接到芯片仿真模块中的程序存储器上,检测当前调试指令的数据,对当前指令的调试权限进行判断,输出调试控制信号;
芯片仿真模块,实现芯片的功能仿真,其中的CPU处理器模块与调试模块、程序存储器连接,实现芯片功能仿真和调试命令执行;
程序权限信息区,定义每个程序区的权限,通过权限配置通路完成程序区权限控制模块的权限配置。
仿真器在软件管理模块执行调用安全程序区命令时,不能单步进入安全区程序,且通过显示窗口无法查看安全区程序指令/数据;当软件管理模块执行用户区程序命令时,可以进行单步调试,且在窗口中能查看用户区程序指令/数据。
仿真器中的调试控制信号控制调试功能,当调试控制信号为高电平时,当前地址指令不可单步调试;当调试控制信号为低电平时,当前地址指令可以单步调试。
仿真器调试控制信号,若为一根信号,可表示为单步调试可读或不可单步调试不可读;若为两根信号时,分别是可读控制信号和单步调试信号。
仿真器中的程序区权限控制模块,依据程序权限信息区的权限定义,对从程序存储器输出的指令,进行调试访问权限判断,并输出调试控制信号。
仿真器程序区权限控制模块的权限配置,既可以是芯片的默认值,也可以配置权限。在仿真器硬件初始化过程中,通过权限配置通路完成程序区权限控制模块的权限配置。
仿真器中的程序存储器被划分为用户程序区和安全程序区,且与程序权限信息区的定义一一对应。
附图说明
图1是具有控制程序单步调试功能的仿真器结构图。
图2是单步调试流程示意图。
具体实施方式
下面结合附图对本发明仿真器进行详细说明。
如图1所示,给出具有控制程序单步调试功能的仿真器结构图。仿真器1包括软件管理模块2和仿真器硬件模块3。
软件管理模块2,与仿真器硬件模块3相连,实现软件管理功能,向仿真器硬件模块3发送调试命令或其它管理命令。
仿真器硬件模块3,包括调试模块4、程序区权限控制模块5和芯片仿真模块6。
调试模块4,与软件管理模块相连2,实现软件管理模块2调试命令的接收和响应;调试模块4与芯片仿真模块6中的CPU处理器模块7相连,输出调试指令给CPU处理器执行;调试模块4与程序区权限控制模块5相连,通过调试控制信号10的输入进行程序调试控制;
程序区权限控制模块5,连接到芯片仿真模块6中的程序存储器8上,检测当前调试指令的数据,对当前指令的调试权限进行判断,输出调试控制信号10;
芯片仿真模块6,实现芯片的功能仿真,其中的CPU处理器模块7与调试模块4、程序存储器连接8,实现芯片功能仿真和调试命令执行;其中的程序权限信息区9定义每个程序区的权限,通过权限配置通路11完成程序区权限控制模块5的权限配置。
程序权限信息区9,由仿真器生产厂家依据用户需求,对权限定义值定义配置,非权限用户无法修改程序权限信息区9的数值。
如图2所示,给出仿真器单步调试流程示意图,在程序单步调试过程中,依据程序区权限分别执行单步调试和单步不可调试流程。具体操作步骤如下:
步骤1,仿真器软件管理模块发送调试命令,通过通信接口传输到仿真器硬件模块;
步骤2,仿真器硬件模块中的调试模块,解析调试命令,并传递单步调试指令给CPU处理器模块;
步骤3,CPU处理器模块取指令的过程中,程序区权限控制模块对当前指令进行权限判断。若当前指令在安全区,进入步骤4;若当前指令在用户区,则进入步骤5;
步骤4,CPU处理器模块执行完单步指令后,跳转到步骤3;
步骤5,CPU处理器模块执行完单步命令;
步骤6,CPU状态信息返回给仿真器软件管理模块,软件管理模块更新窗口显示信息,单步调试命令完成。
Claims (7)
1.一种具有控制程序单步调试功能的仿真器,其特征在于,所述仿真器由软件管理模块和仿真器硬件模块两部分组成,软件管理模块与仿真器硬件模块相连,实现软件管理功能,向仿真器硬件模块发送调试命令或其它管理命令,仿真器硬件模块包括调试模块、程序区权限控制模块、芯片仿真模块和程序权限信息区,其中:
调试模块,与软件管理模块相连,实现软件管理模块调试命令的接收和响应;调试模块与芯片仿真模块中的CPU处理器模块相连,传递调试指令给CPU处理器执行;调试模块与程序区权限控制模块相连,通过调试控制信号进行程序调试控制;
程序区权限控制模块,连接到芯片仿真模块中的程序存储器上,检测当前调试指令,对当前指令的调试权限进行判断,输出调试控制信号;
芯片仿真模块,实现芯片的功能仿真,其中的CPU处理器模块与调试模块、程序存储器连接,实现芯片功能仿真和调试命令执行;
程序权限信息区,定义每个程序区的权限,通过权限配置通路完成程序区权限控制模块的权限配置。
2.根据权利要求1所述的一种具有控制程序单步调试功能的仿真器,其特征在于,当所述软件管理模块执行调用安全程序区命令时,不能单步进入安全区程序,且通过显示窗口无法查看安全区程序指令/数据;当所述软件管理模块执行用户区程序命令时,可以进行单步调试,且在窗口中能查看用户区程序指令/数据。
3.根据权利要求1所述的一种具有控制程序单步调试功能的仿真器,其特征在于,所述仿真器硬件模块中的调试控制信号控制调试功能,当调试控制信号为高电平时,当前地址指令不可单步调试;当调试控制信号为低电平时,当前地址指令能单步调试。
4.根据权利要求1所述的一种具有控制程序单步调试功能的仿真器,其特征在于,所述仿真器硬件模块中的调试控制信号,若为一根信号,表示单步调试可读或不可单步调试不可读;若为两根信号时,分别是可读控制信号和单步调试信号进行调试控制。
5.根据权利要求1所述的一种具有控制程序单步调试功能的仿真器,其特征在于,所述程序区权限控制模块,依据程序权限信息区的权限定义,对从程序存储器输出的指令,进行调试访问权限判断,并输出调试控制信号。
6.根据权利要求1所述的一种具有控制程序单步调试功能的仿真器,其特征在于,在仿真器硬件初始化过程中,通过权限配置通路完成对所述程序区权限控制模块的权限配置,这里的权限配置指芯片默认配置,或用户重定义配置。
7.根据权利要求1所述的一种具有控制程序单步调试功能的仿真器,其特征在于,所述程序存储器被划分为若干个用户程序区和安全程序区,且与程序权限信息区的定义一一对应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610753990.5A CN106445808A (zh) | 2016-08-29 | 2016-08-29 | 一种具有控制程序单步调试功能的仿真器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610753990.5A CN106445808A (zh) | 2016-08-29 | 2016-08-29 | 一种具有控制程序单步调试功能的仿真器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106445808A true CN106445808A (zh) | 2017-02-22 |
Family
ID=58090009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610753990.5A Pending CN106445808A (zh) | 2016-08-29 | 2016-08-29 | 一种具有控制程序单步调试功能的仿真器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106445808A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700136A (zh) * | 2004-05-20 | 2005-11-23 | 英特尔公司 | 处理器扩展和软件验证 |
US20120102307A1 (en) * | 2010-10-20 | 2012-04-26 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
CN102592083A (zh) * | 2011-12-27 | 2012-07-18 | 深圳国微技术有限公司 | 用于提高soc芯片系统安全的存储保护控制器及方法 |
CN104680059A (zh) * | 2013-12-03 | 2015-06-03 | 北京中电华大电子设计有限责任公司 | 一种保护芯片固件程序的仿真器及方法 |
-
2016
- 2016-08-29 CN CN201610753990.5A patent/CN106445808A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1700136A (zh) * | 2004-05-20 | 2005-11-23 | 英特尔公司 | 处理器扩展和软件验证 |
US20120102307A1 (en) * | 2010-10-20 | 2012-04-26 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
CN102592083A (zh) * | 2011-12-27 | 2012-07-18 | 深圳国微技术有限公司 | 用于提高soc芯片系统安全的存储保护控制器及方法 |
CN104680059A (zh) * | 2013-12-03 | 2015-06-03 | 北京中电华大电子设计有限责任公司 | 一种保护芯片固件程序的仿真器及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683444B1 (en) | System and method of debugging multi-threaded processes | |
Thompson et al. | Specification-based prototyping for embedded systems | |
CN101571828B (zh) | 基于约束分析和模型检验的代码安全漏洞检测方法 | |
DE69510801D1 (de) | Verfahren und vorrichtung zur modellierung von rechnerprozessbetriebsmitteln | |
CN201780505U (zh) | 核电厂数字化控制系统电气性能测试装置 | |
US8838430B1 (en) | Detection of memory access violation in simulations | |
CN105550118B (zh) | 调试系统和调试方法 | |
CN104657263B (zh) | 基于jtag调试方式实现通用型目标码覆盖率测试系统和测试方法 | |
Ni et al. | Research of reusability based on UVM verification | |
CN103389939A (zh) | 一种针对堆可控分配漏洞的检测方法及系统 | |
CN115543797A (zh) | 基于uvm的总线转换桥验证方法、装置、设备及存储介质 | |
CN108873867A (zh) | 一种自动化负载与故障注入测试系统及控制方法 | |
CN106294121A (zh) | 飞机嵌入式实时诊断推理算法试验方法 | |
CN101984640B (zh) | 基于凌动处理器的Android手机平台的能耗测量方法 | |
CN106445808A (zh) | 一种具有控制程序单步调试功能的仿真器 | |
CN101329650B (zh) | 智能卡仿真器 | |
CN106528414A (zh) | 处理器芯片仿真器 | |
CN106933727A (zh) | 处理器中断机制的验证方法及验证装置 | |
CN105446882B (zh) | 家用和类似用途电器软件评估黑盒测试系统的测试方法 | |
Matsubara et al. | Model checking with program slicing based on variable dependence graphs | |
CN105068937A (zh) | 一种Linux内核模块的单元测试方法 | |
CN113050927A (zh) | 基于自定义指令的权限控制方法、装置和计算机设备 | |
Gibson et al. | Achieving verifiable and high integrity instrumentation and control systems through complexity awareness and constrained design. final report | |
Litterick et al. | Pragmatic Verification Reuse in a Vertical World | |
CN105468526B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170222 |