CN106445808A - 一种具有控制程序单步调试功能的仿真器 - Google Patents

一种具有控制程序单步调试功能的仿真器 Download PDF

Info

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
Application number
CN201610753990.5A
Other languages
English (en)
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.)
Beijing CEC Huada Electronic Design Co Ltd
Original Assignee
Beijing CEC Huada Electronic Design Co Ltd
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 Beijing CEC Huada Electronic Design Co Ltd filed Critical Beijing CEC Huada Electronic Design Co Ltd
Priority to CN201610753990.5A priority Critical patent/CN106445808A/zh
Publication of CN106445808A publication Critical patent/CN106445808A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software 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所述的一种具有控制程序单步调试功能的仿真器,其特征在于,所述程序存储器被划分为若干个用户程序区和安全程序区,且与程序权限信息区的定义一一对应。
CN201610753990.5A 2016-08-29 2016-08-29 一种具有控制程序单步调试功能的仿真器 Pending CN106445808A (zh)

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)

* Cited by examiner, † Cited by third party
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 北京中电华大电子设计有限责任公司 一种保护芯片固件程序的仿真器及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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