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

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

Info

Publication number
CN109408388A
CN109408388A CN201811269317.XA CN201811269317A CN109408388A CN 109408388 A CN109408388 A CN 109408388A CN 201811269317 A CN201811269317 A CN 201811269317A CN 109408388 A CN109408388 A CN 109408388A
Authority
CN
China
Prior art keywords
peripheral hardware
visualdsp
writes
reads
control module
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
Application number
CN201811269317.XA
Other languages
English (en)
Other versions
CN109408388B (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 true CN109408388A (zh) 2019-03-01
CN109408388B 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)

Cited By (1)

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

Citations (3)

* 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中断扩展逻辑系统及中断扩展方法
US20170140130A1 (en) * 2015-11-17 2017-05-18 Microsoft Technology Licensing, Llc Tamper proof device capability store

Patent Citations (3)

* 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中断扩展逻辑系统及中断扩展方法
US20170140130A1 (en) * 2015-11-17 2017-05-18 Microsoft Technology Licensing, Llc Tamper proof device capability store

Cited By (1)

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

Also Published As

Publication number Publication date
CN109408388B (zh) 2021-07-20

Similar Documents

Publication Publication Date Title
US7568198B2 (en) Control of tasks in a programmable logic controller
US7565654B2 (en) Programmatic control of tasks in a programmable logic controller
US7945895B2 (en) Graphical programs with FIFO structure for controller/FPGA communications
CN109144515A (zh) Dcs图形化算法组态的离线仿真方法和装置
Devine et al. MakeCode and CODAL: intuitive and efficient embedded systems programming for education
KR20090092617A (ko) 프로세서 및 컴파일 방법
CN102623069B (zh) 随机激励闪存模型验证方法
Woskowski Applying industrial-strength testing techniques to critical care medical equipment
US9898388B2 (en) Non-intrusive software verification
CN101706750B (zh) 一种基于嵌入式模拟器的测试桩获取方法
CN104573420B (zh) 防止进程被误杀的方法和装置
Hohmuth et al. Applying source-code verification to a microkernel: the VFiasco project
CN104573193A (zh) 一种航天器gnc系统快速设计方法
US10216495B2 (en) Program variable convergence analysis
CN105989894A (zh) 一种一次性可编程存储器控制器、集成电路及程序烧写方法
CN104536812A (zh) 一种基于LabVIEW的动态链接库的调用方法
CN109376087A (zh) 一种软件测试方法、装置及电子设备
CN107479918A (zh) 一种可重构的mcu烧录的fpga模型
CN103996416A (zh) 一种可重用的ftl验证方法
CN109408388A (zh) 一种VisualDSP++环境下外设读写模拟方法
CN106445818B (zh) 一种基于模型驱动的自动化脚本调试方法和装置
CN102915272A (zh) 软件测试方法、测试系统及电视终端
CN105677560A (zh) 一种测试方法、装置及系统
Yoo et al. A behavior-preserving translation from FBD design to C implementation for reactor protection system software
CN103383710A (zh) 基于sopc模拟脑电波的电路板及构建大脑动力学模型的方法

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