CN109408388B - 一种VisualDSP++环境下外设读写模拟方法 - Google Patents

一种VisualDSP++环境下外设读写模拟方法 Download PDF

Info

Publication number
CN109408388B
CN109408388B CN201811269317.XA CN201811269317A CN109408388B CN 109408388 B CN109408388 B CN 109408388B CN 201811269317 A CN201811269317 A CN 201811269317A CN 109408388 B CN109408388 B CN 109408388B
Authority
CN
China
Prior art keywords
peripheral
visualdsp
dsp
write
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.)
Active
Application number
CN201811269317.XA
Other languages
English (en)
Other versions
CN109408388A (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.)
Beijing Institute of Control and Electronic Technology
Original Assignee
Beijing Institute of Control and Electronic Technology
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 Institute of Control and Electronic Technology filed Critical Beijing Institute of Control and Electronic Technology
Priority to CN201811269317.XA priority Critical patent/CN109408388B/zh
Publication of CN109408388A publication Critical patent/CN109408388A/zh
Application granted granted Critical
Publication of CN109408388B publication Critical patent/CN109408388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种VisualDSP++环境下外设读写模拟方法,通过构建外设读写模拟系统、在内部存储空间添加外设地址虚拟寄存器、在程序读写外设处插桩、在外设地址虚拟寄存器上建立观察点、获取外设读写时机和模拟外设接口数据步骤实现。本发明解决了在VisualDSP++环境下外设地址上的观察点不能触发DSP暂停问题。

Description

一种VisualDSP++环境下外设读写模拟方法
技术领域
本发明涉及一种IDE环境下的模拟方法,特别是一种VisualDSP++环境下外设读写模拟方法。
背景技术
VisualDSP++是控制软件典型的集成开发环境,由于控制软件的通讯、数据采集、时序控制功能通过读写接口外设地址实现,为实现控制软件闭环仿真运行,需要模拟外设接口功能,一般的外设模拟方法是通过集成开发环境调试运行控制软件的DSP程序,在外设地址上建立观察点,当程序读写接口外设地址时触发DSP暂停,向该地址注入激励数据以完成读外设操作模拟,或获取该地址的输出数据以完成写外设操作模拟。但是,VisualDSP++提供的观察点功能对外部存储空间范围的地址无效,程序读写外设地址无法触发DSP暂停,不能提供时机给用户进行外设数据模拟。
发明内容
本发明目的在于提供一种VisualDSP++环境下外设读写模拟方法,解决在VisualDSP++环境下外设地址上的观察点不能触发DSP暂停的问题。
一种VisualDSP++环境下外设读写模拟方法的具体步骤为:
第一步 构建VisualDSP++环境下外设读写模拟系统
VisualDSP++环境下外设读写模拟系统,包括:VisualDSP++控制模块和外设模拟模块。
VisualDSP++控制模块的功能为:设置外设地址虚拟寄存器、对程序进行插桩、编译生成目标码文件、设置观察点和获取外设模拟时机。
外设模拟模块的功能为:保存和注入外设接口数据。
第二步 VisualDSP++控制模块在内部存储空间添加外设地址虚拟寄存器
VisualDSP++控制模块分析DSP程序的内存映射文件,找出DSP程序未占用的两个内存地址,分别记为$PRA,$PWA。
第三步 VisualDSP++控制模块在程序读写外设处插桩
VisualDSP++控制模块在DSP程序读外设的代码块起始位置之前插入一段指令,将源外设地址保存到$PRA;在DSP程序写外设的代码块结束位置之后插入一段指令,将目的外设地址保存到$PWA。重新编译生成目标码文件。
第四步 VisualDSP++控制模块在外设地址虚拟寄存器上建立观察点
VisualDSP++控制模块加载DSP程序目标码文件,在$PRA上建立一个存储器观察点,触发类型设置为写触发,触发值为程序读外设代码块的源地址;在$PWA上建立一个存储器观察点,触发类型设置为写触发,触发值为程序写外设代码块的目的地址。
第五步 VisualDSP++控制模块获取外设读写时机
VisualDSP++控制模块将$PRA和$PWA地址单元的值清零后,记当前指令周期数为0,启动调试运行DSP程序。
VisualDSP++控制模块在DSP暂停时,读取当前指令周期数,利用VisualDSP++的内存查看功能读取$PRA和$PWA地址单元的值,当指令周期数发生变化且$PRA地址单元的值非零时,视为读外设事件;当指令周期数发生变化且$PWA地址单元的值非零时,视为写外设事件。
第六步 外设模拟模块模拟外设接口数据
外设模拟模块在读事件发生时,向DSP注入接口数据,然后将$PRA地址单元的值清零、将当前指令周期数更新为新的指令周期数;在写事件发生时,保存DSP输出接口数据,然后将$PWA地址单元的值清零,将当前指令周期数更新为新的指令周期数。
VisualDSP++环境下外设读写模拟方法通过在内部地址空间构造虚拟外设读写寄存器,利用VisualDSP++原有观察点机制触发DSP暂停,仅需要插入一条赋值语句,占用两个空闲地址单元,插桩代价和对程序的干扰极小。
具体实施方式
一种VisualDSP++环境下外设读写模拟方法的具体步骤为:
第一步 构建VisualDSP++环境下外设读写模拟系统
VisualDSP++环境下外设读写模拟系统,包括:VisualDSP++控制模块和外设模拟模块。
VisualDSP++控制模块的功能为:设置外设地址虚拟寄存器、对程序进行插桩、编译生成目标码文件、设置观察点和获取外设模拟时机。
外设模拟模块的功能为:保存和注入外设接口数据。
第二步 VisualDSP++控制模块在内部存储空间添加外设地址虚拟寄存器
VisualDSP++控制模块分析DSP程序的内存映射文件,找出DSP程序未占用的两个内存地址,分别记为$PRA,$PWA。
第三步 VisualDSP++控制模块在程序读写外设处插桩
VisualDSP++控制模块在DSP程序读外设的代码块起始位置之前插入一段指令,将源外设地址保存到$PRA;在DSP程序写外设的代码块结束位置之后插入一段指令,将目的外设地址保存到$PWA。重新编译生成目标码文件。
第四步 VisualDSP++控制模块在外设地址虚拟寄存器上建立观察点
VisualDSP++控制模块加载DSP程序目标码文件,在$PRA上建立一个存储器观察点,触发类型设置为写触发,触发值为程序读外设代码块的源地址;在$PWA上建立一个存储器观察点,触发类型设置为写触发,触发值为程序写外设代码块的目的地址。
第五步 VisualDSP++控制模块获取外设读写时机
VisualDSP++控制模块将$PRA和$PWA地址单元的值清零后,记当前指令周期数为0,启动调试运行DSP程序。
VisualDSP++控制模块在DSP暂停时,读取当前指令周期数,利用VisualDSP++的内存查看功能读取$PRA和$PWA地址单元的值,当指令周期数发生变化且$PRA地址单元的值非零时,视为读外设事件;当指令周期数发生变化且$PWA地址单元的值非零时,视为写外设事件。
第六步 外设模拟模块模拟外设接口数据
外设模拟模块在读事件发生时,向DSP注入接口数据,然后将$PRA地址单元的值清零,将当前指令周期数更新为新的指令周期数;在写事件发生时,保存DSP输出接口数据,然后将$PWA地址单元的值清零,将当前指令周期数更新为新的指令周期数。

Claims (3)

1.一种VisualDSP++环境下外设读写模拟方法,其特征在于具体步骤为:
第一步 构建VisualDSP++环境下外设读写模拟系统
VisualDSP++环境下外设读写模拟系统,包括:VisualDSP++控制模块和外设模拟模块;
第二步 VisualDSP++控制模块在内部存储空间添加外设地址虚拟寄存器
VisualDSP++控制模块分析DSP程序的内存映射文件,找出DSP程序未占用的两个内存地址,分别记为$PRA,$PWA;
第三步 VisualDSP++控制模块在程序读写外设处插桩
VisualDSP++控制模块在DSP程序读外设的代码块起始位置之前插入一段指令,将源外设地址保存到$PRA;在DSP程序写外设的代码块结束位置之后插入一段指令,将目的外设地址保存到$PWA;重新编译生成目标码文件;
第四步 VisualDSP++控制模块在外设地址虚拟寄存器上建立观察点
VisualDSP++控制模块加载DSP程序目标码文件,利用VisualDSP++的观察点设置功能在$PRA上建立一个存储器观察点,触发类型设置为写触发,触发值为程序读外设代码块的源地址;在$PWA上建立一个存储器观察点,触发类型设置为写触发,触发值为程序写外设代码块的目的地址;
第五步 VisualDSP++控制模块获取外设读写时机
VisualDSP++控制模块将$PRA和$PWA地址单元的值清零后,记当前指令周期数为0,启动调试运行DSP程序;
VisualDSP++控制模块在DSP暂停时,利用VisualDSP++的寄存器查看功能读取当前指令周期数,利用VisualDSP++的内存查看功能读取$PRA和$PWA地址单元的值,当指令周期数发生变化且$PRA地址单元的值非零时,视为读外设事件;当指令周期数发生变化且$PWA地址单元的值非零时,视为写外设事件;
第六步 外设模拟模块模拟外设接口数据
外设模拟模块在读事件发生时,向DSP注入接口数据,然后将$PRA地址单元的值清零,将当前指令周期数更新为新的指令周期数;在写事件发生时,保存DSP输出接口数据,然后将$PWA地址单元的值清零,将当前指令周期数更新为新的指令周期数。
2.根据权利要求1所述的一种VisualDSP++环境下外设读写模拟方法,其特征在于所述VisualDSP++控制模块的功能为:设置外设地址虚拟寄存器、对程序进行插桩、编译生成目标码文件、设置观察点、获取外设模拟时机。
3.根据权利要求1所述的一种VisualDSP++环境下外设读写模拟方法,其特征在于所述外设模拟模块的功能为:保存和注入外设接口数据。
CN201811269317.XA 2018-10-29 2018-10-29 一种VisualDSP++环境下外设读写模拟方法 Active CN109408388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811269317.XA CN109408388B (zh) 2018-10-29 2018-10-29 一种VisualDSP++环境下外设读写模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811269317.XA CN109408388B (zh) 2018-10-29 2018-10-29 一种VisualDSP++环境下外设读写模拟方法

Publications (2)

Publication Number Publication Date
CN109408388A CN109408388A (zh) 2019-03-01
CN109408388B true CN109408388B (zh) 2021-07-20

Family

ID=65469547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811269317.XA Active CN109408388B (zh) 2018-10-29 2018-10-29 一种VisualDSP++环境下外设读写模拟方法

Country Status (1)

Country Link
CN (1) CN109408388B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116108782B (zh) * 2023-04-14 2023-07-25 此芯科技(上海)有限公司 一种mcu外设控制寄存器行为模拟方法与相关装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559157A (zh) * 2013-11-14 2014-02-05 绵阳市维博电子有限责任公司 采集数据的传输方法、装置及系统
CN104021106A (zh) * 2014-06-19 2014-09-03 哈尔滨工业大学 基于fpga的dsp中断扩展逻辑系统及中断扩展方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10146916B2 (en) * 2015-11-17 2018-12-04 Microsoft Technology Licensing, Llc Tamper proof device capability store

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559157A (zh) * 2013-11-14 2014-02-05 绵阳市维博电子有限责任公司 采集数据的传输方法、装置及系统
CN104021106A (zh) * 2014-06-19 2014-09-03 哈尔滨工业大学 基于fpga的dsp中断扩展逻辑系统及中断扩展方法

Also Published As

Publication number Publication date
CN109408388A (zh) 2019-03-01

Similar Documents

Publication Publication Date Title
US8261130B2 (en) Program code trace signature
US6901581B1 (en) Method for software debugging via simulated re-execution of a computer program
CN102789416B (zh) 面向bit软件测试的存储器故障注入方法及其模拟器
CN103049375B (zh) 一种摄像头在线调试方法
CN108664380B (zh) 一种带性能显示的执行后软件调试系统及调试方法
US8997059B2 (en) Reverse debugging
US9262299B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
US9898388B2 (en) Non-intrusive software verification
US20140019806A1 (en) Classifying processor testcases
US6247146B1 (en) Method for verifying branch trace history buffer information
US7562258B2 (en) Generation of trace elements within a data processing apparatus
US9262305B1 (en) Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system
CN110543420B (zh) 一种软件测试方法、系统、终端及存储介质
Niemetz et al. Model-Based API Testing for SMT Solvers.
CN106970280B (zh) 一种智能卡断电测试的方法以及装置
CN111221693A (zh) 一种NOR flash配置模块验证方法、系统、装置和存储介质
CN109408388B (zh) 一种VisualDSP++环境下外设读写模拟方法
US10802852B1 (en) Method for interactive embedded software debugging through the control of simulation tracing components
CN106844221B (zh) 一种实现虚拟验证系统覆盖率分析的方法
CN104461859A (zh) 一种支持nvm软断点调试的仿真器和方法
US20110029953A1 (en) System and Method for Scalable Handling of Debug Information
CN102023884A (zh) 一种嵌入式系统开发程序校验码自动生成的方法
CN113632067A (zh) 利用跟踪代码的记录执行来仿真非跟踪代码
CN107665169B (zh) 处理器程序的测试方法和装置
CN106055935A (zh) 一种进程控制方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant