您的位置: 嵌入式在线 > 技术中心 > 在线手册 > VisualDSP++中文手册之五

VisualDSP++中文手册之五

2008-03-31      嵌入式在线      收藏 | 打印

          4.1 设置调试会话
   

        Visual DSP++的IDDE中已经集成了Debugger工具。Debugger是WINDOWS窗口操作界面,操作使用非常方便。在Debugger工具下,可以直接应用ADI公司的模拟器(Simulator)和仿真器(Emulator)工具。

        4.1  设置调试会话

        进行Debugger调试的第一步是必须先设置好调试会话(Debugging Sessions)。在调试会话中主要是设置调试的目标和调试所使用的工具的。Debugger工具支持的会话类型包括硬件仿真调试会话和软件仿真调试会话。硬件调试会话必须有硬件系统的支持,也就是VisualDSP++软件会检测所需调试的目标硬件系统,而软件调试会话不需要硬件系统支持,是由 VisaulDSP++自带软件模拟器工具通过计算来模拟处理器的工作。

       1.新建调试会话的设置

        新建调试会话的设置步骤如下。

       (1)单击VisualDSP++主界面的。“会话(Session)”,然后选择“New Session'’,IDDE将弹出新建会话向导,如图5-21所示。  

       新建会话向导有三个步骤,分别是:处理器选择(Select Processor)、连接类型选择(Select Connection Type)和平台选择(Select Platform)。

       处理器选择如图5-21所示,主要用于设置所建立的调试会话是针对何种处理器,处理器型号的选择等。在该窗口中,主要选项如下: 

       1)Pmcessr用于选择会话的目标处理器类型,有Blackfin、SHARC和TigerSHARC三种类型。用户需要根据所调试的目标处理器进行选择。

       2)Choose a target processor——用于选择具体的处理器型号,该选项的内容将随Processor选项的处理器类型选择变化而变化,比如,如果Processor中选择为TigerSHARC系列,那么在Choose a target processor中将只会显示TigerSHARC系列处理器,只有ADSP TSl01、ADSP TS201、ADSP TS202和ADSP TS203等,同样如果选择为SHARC类型,那么该窗口中将显示SHARC系列的相关型号o

       3)Configurator ——用于配置非模拟器环境下的会话。由于在模拟器环境下是通过计算机来模拟处理器的运行,所有并不需要使用硬件配置,但如果用户开发的是非模拟器的目标,如EZ-KIT评估板或者用户设计的处理器硬件系统,那么就需要使用Configurator。因此,对于非模拟器平台,只有在Configurator 中定义了的非模拟器平台才可以在新建会话向导中选择,否则用户的目标系统将无法正常使用。VisualDSP++Configurator窗口如图 5-22所示。

       在Configurator中用户可以根据自己的目标系统设置所对应的平台,而且在Configurator中直接带有了各种处理器评估板系统的平台。用户如果建立了自己的目标系统平台,通过单击“新建(New)”按钮将弹出新建仿真平台窗13,如图5-23所示。   

       在该窗口中,有三个参数组,分别是:平台(Platform)、仿真器设置(Emulation Settings)和器件(Devices)。  

       平台(Platform)——包含两个参数:名称(Name)和平台类型(Type)。名称用来为所建立的平台命名,用户可以随意命名。平台类型有:通过串口和USB方式连接的各种处理器的EZ—KIT、HP PCI仿真器、HP USB仿真器等,该类型的选择需根据用户的硬件系统进行选择。  

        仿真器设置(Emulation Settings)——用于设置用户计算机上安装的仿真器的相关硬件地址,该参数随用户的仿真器选择不同而不同。在正常情况下,该窗口会自动识别计算机上安装的仿真器而直接提取仿真器相关的地址参数,因此基本上用户可以不用修改该部分内容。如果用户希望自己修改仿真器的地址,那么用户需要通过操作系统中的硬件设备管理来查询仿真器相关的地址。 

       器件(Devices)——用于设置用户所建立的硬件平台中的处理器型号,该处的处理器型号必须与用户硬件平台中的处理器、用户建立工程的处理器型号一致。可以通过新建(New)、修改(Modify)、删除(Delete)和全部删除(Delete A11)等方式。图5-24为新建仿真平台中的器件选择窗口。

       4)License ——用于管理VisualDSP++的授权信息,如图5-25所示。VisaulDSP++在安装后需要输入软件序列号,并进行授权验证后才能正常使用,否则VisualDSP++将只能试用30天,且部分使用功能受限。在进行新会话设置的时候,对该窗口可以不予以设置。

    (2)在对处理器选择窗口设置完毕后,单击下一步(NEXT)将进入到连接类型选择(Select Connection Type)窗口,如图5-26所示。

       连接类型选择窗口主要是用于设置所建立的会话使用的连接方式,在一般正常安装的VisualDSP++中会有四种连接方式:评估板系统(EZ—KIT Lite)、仿真器(Emulator)、模拟器(Simulator)和遗留目标(Legacy Target)。根据安装VisualDSP++的授权不同,在该窗口中有些选项可能不能选择。

        用户根据需要自行选择其中的一种即可。对于模拟器方式,不需要硬件支持,完全由计算机来模拟处理器的运行,而对于评估板系统和仿真器连接方式是需要用户提供硬件平台进行连接的。如果用户没有硬件平台,而在此处选择为评估板系统和仿真器连接方式,那么在建立会话完成后,由于VisualDSP++检测不到硬件设备,VisualDSP++将会弹出错误信息,如图5-27所示,提示用户连接不上硬件平台。因此如果用户在没有硬件系统时,只能将类型选择作为模拟器方式。

       (3)用户在确定会话的连接方式后,单击下一步,将显示所建立的会话使用到的平台,如图5-28所示。对于大多数处理器而言,除针对部分Blackfin系列的处理器建立的平台该窗口中有两个选项,该窗口中只有单一的选项。因此对于大多数情况,该窗口使用默认选项即可。

       (4)单击下一步后,将显示用户新建会话的信息,以便用户检验所建立的会话是否正确,如图5-29所示。

        用户在确定所建立的会话信息无误后,单击完成(Finish)后,VisualDSP++将根据用户的设置建立会话。  

        在会话建立完成后,VisualDSP++将把刚建立完成的会话作为当前的会话平台。另外用户可以从下拉菜单Session中的会话选择,在会话列表中查看到用户建立的会话和选择其他以前建立的会话。 

         2.打开已经存在的调试会话

        如果用户已经建立过多个会话环境,用户可以对存在的所有会话进行管理并在其中进行选择。选择已经存在的会话,拥户只需要通过VisualDSP++主界面的 “会话(Session)”下拉菜单,单击“会话选择(Select Session)”,然后在选择所需要的会话即可,如图5-30所示。

        Visual DSP++的IDDE中已经集成了Debugger工具。Debugger是WINDOWS窗口操作界面,操作使用非常方便。在Debugger工具下,可以直接应用ADI公司的模拟器(Simulator)和仿真器(Emulator)工具。

        4.1  设置调试会话

       进行Debugger调试的第一步是必须先设置好调试会话(Debugging Sessions)。在调试会话中主要是设置调试的目标和调试所使用的工具的。Debugger工具支持的会话类型包括硬件仿真调试会话和软件仿真调试会话。硬件调试会话必须有硬件系统的支持,也就是VisualDSP++软件会检测所需调试的目标硬件系统,而软件调试会话不需要硬件系统支持,是由 VisaulDSP++自带软件模拟器工具通过计算来模拟处理器的工作。

      1.新建调试会话的设置

        新建调试会话的设置步骤如下。

      (1)单击VisualDSP++主界面的。“会话(Session)”,然后选择“New Session'’,IDDE将弹出新建会话向导,如图5-21所示。   

      新建会话向导有三个步骤,分别是:处理器选择(Select Processor)、连接类型选择(Select Connection Type)和平台选择(Select Platform)。

       处理器选择如图5-21所示,主要用于设置所建立的调试会话是针对何种处理器,处理器型号的选择等。在该窗口中,主要选项如下:  

       1)Pmcessr用于选择会话的目标处理器类型,有Blackfin、SHARC和TigerSHARC三种类型。用户需要根据所调试的目标处理器进行选择。

       2)Choose a target processor——用于选择具体的处理器型号,该选项的内容将随Processor选项的处理器类型选择变化而变化,比如,如果Processor中选择为TigerSHARC系列,那么在Choose a target processor中将只会显示TigerSHARC系列处理器,只有ADSP TSl01、ADSP TS201、ADSP TS202和ADSP TS203等,同样如果选择为SHARC类型,那么该窗口中将显示SHARC系列的相关型号o

      3)Configurator ——用于配置非模拟器环境下的会话。由于在模拟器环境下是通过计算机来模拟处理器的运行,所有并不需要使用硬件配置,但如果用户开发的是非模拟器的目标,如EZ-KIT评估板或者用户设计的处理器硬件系统,那么就需要使用Configurator。因此,对于非模拟器平台,只有在Configurator 中定义了的非模拟器平台才可以在新建会话向导中选择,否则用户的目标系统将无法正常使用。VisualDSP++Configurator窗口如图 5-22所示。

       在Configurator中用户可以根据自己的目标系统设置所对应的平台,而且在Configurator中直接带有了各种处理器评估板系统的平台。用户如果建立了自己的目标系统平台,通过单击“新建(New)”按钮将弹出新建仿真平台窗13,如图5-23所示。   

      在该窗口中,有三个参数组,分别是:平台(Platform)、仿真器设置(Emulation Settings)和器件(Devices)。   

       平台(Platform)——包含两个参数:名称(Name)和平台类型(Type)。名称用来为所建立的平台命名,用户可以随意命名。平台类型有:通过串口和USB方式连接的各种处理器的EZ—KIT、HP PCI仿真器、HP USB仿真器等,该类型的选择需根据用户的硬件系统进行选择。   

       仿真器设置(Emulation Settings)——用于设置用户计算机上安装的仿真器的相关硬件地址,该参数随用户的仿真器选择不同而不同。在正常情况下,该窗口会自动识别计算机上安装的仿真器而直接提取仿真器相关的地址参数,因此基本上用户可以不用修改该部分内容。如果用户希望自己修改仿真器的地址,那么用户需要通过操作系统中的硬件设备管理来查询仿真器相关的地址。  

       器件(Devices)——用于设置用户所建立的硬件平台中的处理器型号,该处的处理器型号必须与用户硬件平台中的处理器、用户建立工程的处理器型号一致。可以通过新建(New)、修改(Modify)、删除(Delete)和全部删除(Delete A11)等方式。图5-24为新建仿真平台中的器件选择窗口。

       4)License ——用于管理VisualDSP++的授权信息,如图5-25所示。VisaulDSP++在安装后需要输入软件序列号,并进行授权验证后才能正常使用,否则VisualDSP++将只能试用30天,且部分使用功能受限。在进行新会话设置的时候,对该窗口可以不予以设置。

      (2)在对处理器选择窗口设置完毕后,单击下一步(NEXT)将进入到连接类型选择(Select Connection Type)窗口,如图5-26所示。


       连接类型选择窗口主要是用于设置所建立的会话使用的连接方式,在一般正常安装的VisualDSP++中会有四种连接方式:评估板系统(EZ—KIT Lite)、仿真器(Emulator)、模拟器(Simulator)和遗留目标(Legacy Target)。根据安装VisualDSP++的授权不同,在该窗口中有些选项可能不能选择。

       用户根据需要自行选择其中的一种即可。对于模拟器方式,不需要硬件支持,完全由计算机来模拟处理器的运行,而对于评估板系统和仿真器连接方式是需要用户提供硬件平台进行连接的。如果用户没有硬件平台,而在此处选择为评估板系统和仿真器连接方式,那么在建立会话完成后,由于VisualDSP++检测不到硬件设备,VisualDSP++将会弹出错误信息,如图5-27所示,提示用户连接不上硬件平台。因此如果用户在没有硬件系统时,只能将类型选择作为模拟器方式。

       (3)用户在确定会话的连接方式后,单击下一步,将显示所建立的会话使用到的平台,如图5-28所示。对于大多数处理器而言,除针对部分Blackfin系列的处理器建立的平台该窗口中有两个选项,该窗口中只有单一的选项。因此对于大多数情况,该窗口使用默认选项即可。

 


        (4)单击下一步后,将显示用户新建会话的信息,以便用户检验所建立的会话是否正确,如图5-29所示。


        用户在确定所建立的会话信息无误后,单击完成(Finish)后,VisualDSP++将根据用户的设置建立会话。   

        在会话建立完成后,VisualDSP++将把刚建立完成的会话作为当前的会话平台。另外用户可以从下拉菜单Session中的会话选择,在会话列表中查看到用户建立的会话和选择其他以前建立的会话。 

         2.打开已经存在的调试会话

        如果用户已经建立过多个会话环境,用户可以对存在的所有会话进行管理并在其中进行选择。选择已经存在的会话,拥户只需要通过VisualDSP++主界面的 “会话(Session)”下拉菜单,单击“会话选择(Select Session)”,然后在选择所需要的会话即可,如图5-30所示。

       用户通过会话列表(Session List)可以完成对已经存在的会话进行管理和选择。单击会话列表(Session List)后,VisualDSP++将弹出会话管理窗口,如图5-31所示。在该窗口中可以新建、删除和激活已经存在的会话。

       用户通过会话列表(Session List)可以完成对已经存在的会话进行管理和选择。单击会话列表(Session List)后,VisualDSP++将弹出会话管理窗口,如图5-31所示。在该窗口中可以新建、删除和激活已经存在的会话。

        4.2  程序执行操作  

        Debugger中的程序执行命令在Debug下拉菜单中,如图5—19所示。这些命令在工具栏中也有相应的快捷按钮。下面简单说明一些常用的执行命令。

        (1)运行(Run):

       运行程序直到遇到某种条件才停止,程序停止的条件可以是执行到断点或用户干预等。当程序处于停止状态时,在VisualDSP++中所有的已经打开的各种相关窗El的内容都更新为程序运行后的值。 

         (2)暂停(Halt)

        程序在执行过程中,用户可以通过暂停功能来暂停程序的执行。当程序处于暂停状态时,在VisualDSP++中所有已经打开的各种相关窗口的内容都更新为程序运行后的值,且状态条显示为当前程序停止的地址。

        (3)执行到光标所在位置(Run To Cursor)

        该功能将使程序运行,直到程序执行到光标所在位置时,程序暂停。光标的位置可以在源文件窗或反汇编窗中设置。

        (4)执行1行程序(Step over)

        仅仅执行1行C语言程序行,仅用于C语言程序。

         (5)单步执行程序(Step Into)

          单步执行程序。每执行1步,所有已经打开的相关窗口的内容都更新。

         (6)单步执行当前函数(Step out of)

        单步执行当前函数,直到返回到它的调用程序。仅用于C语言程序。

        (7)复位(Reset) 

         通过VisualDSP++对处理器进行复位,如果当前会话处于模拟器状态,那么VisualDSP++将使模拟器所有状态复位,而如果 VisualDSP++处于硬件会话环境下,那么VisualDSP++将通过仿真器向目标系统上的处理器发送复位信号。在复位后,必须使用加载器将程序重新加载才可以运行。

       4.3  程序性能分析操作

        VisualDSP++调试器中提供了两个工具来分析程序的执行情况:跟踪(Trace)和线性剖析(Linear Profiling)。这两个命令都位于VisualDSP++的“Tools”下拉菜单中,如图5-32所示。

        1.跟踪(Trace)

         提供对程序执行指令的跟踪,结果显示程序如何执行到某一地址上,显示程序的读、写和存储器访问。通过如下步骤来设置Trace功能并显示其结果。

       1)单击VisualDSP++主界面Tool下拉菜单中的Trace,选择Enable Trace激活跟踪操作;

        2)单击VisualDSP++主界面Tool下拉菜单中的Trace,选择Set Trace Depth,然后设置Trace Buffer Depth,如图5—33所示,选择用户定义的跟踪深度或最大跟踪深度,VisualDSP++默认为最大跟踪深度;

       3)单击VisualDSP++主界面View下拉菜单中的Debug Windows,选择Trace打开跟踪显示窗口;

       4)运行程序,在通过对程序设置断点或者使用Halt命令来停止程序的执行后,通过跟踪窗口可以查看跟踪的执行结果,如图5-34所示。

       跟踪的结果含有如下内容:  

       ·访问类型(RD或WR)

       ·内存类型(PM或DM)

       ·方括号中的地址([ ])

       ·读写的数据值

        对于跟踪分析工具的使用需要注意以下几点:

       1)对于SHARC及TigerSHARC处理器,系统的虚拟内存限制了深度;

       2)对于Blackfin系列处理器,在模拟器中不支持跟踪,但是在仿真器中支持跟踪。

        2.剖析(Profiling)

        VisualDSP++ 的剖析工具Linear Profile是用来分析程序的运行时间特性,通过线性统计剖析,可以分析出每段程序的耗时量和在整个程序运行中所占用的比例,为用户分析程序的性能、优化程序提供帮助。VisualDSP++4.5提供了线性统计剖析工具,即对运行的程序做统计分析,计算出每条指令占用执行程序中的百分比和运行的周期数,并以统计表的形式给出。

        完成一次剖析的基本步骤如下:

       1)编译和链接工程完成;

        2)单击VisualDsP++主界面Tool下拉菜单中的Linear Profiling,选择New Profiling建立和激活新的剖析;

       3)在新建剖析窗VI中的空白处单击鼠标右键,选择Properties…,如图5-35所示。

       4)在选择Properties…后,VisualDSP++将弹出剖析参数设置窗口,如图5-36所示。在该窗口中可以对全部程序进行分析,也可以对C/C++子函数进行分析,还可以指定程序的址段进行分析。  

       5) 在对所需分析的程序段设置后,运行程序,那么在剖析窗口中将显示线性统计剖析的结果,如图5-37所示。剖析窗口中的左半部分为用户所分析的程序段相关的结果,使用鼠标双击相关的函数,那么在窗口的右半部分将显示出对该函数中每条指令进行线性统计的结果。在该窗口中显示的结果默认为每个子程序或者每条程序占整个剖析运行程序段的百分比,通过修改剖析参数,也可以显示每条指令执行的周期数。

        值得注意的是,在每次重新编译的时候,由于VisalDSP++会使用到预编译器,因此在每次编译后,剖析窗口中的数值都会发生变化。另外,如果对剖析窗 VI中的数值不采用清除操作,那么剖析的结果将一直进行累计。所以在实际运用过程中,无论是程序重新编译还是重新执行程序,都应当先将剖析窗口中原有的数值清除后再运行程序进行分析,否则分析出来的数据有可能不准确。

       清除剖析窗口中原有数值的方法非常简单,在剖析窗口中单击鼠标右键,选择菜单中的Clear Profiling即可。

       4.4 设置观察点  

        观察点(Watch Point)与断点(Break Point)功能非常相似,断点可以在程序的任意位置上设置,使程序暂时停止执行。而观察点可以设置某种条件,当满足条件时才暂停程序的执行,如存储器读写、堆栈弹出等。  

        通过下列步骤来设置观察点。

       1)选择VisualDSP++主界面下拉菜单Settings中的Watch points,会出现一个Watch points对话框,如图5-38所示。

 

     2)该窗口用于设置使程序停止的条件,使程序停止运行进行判断的方式有三种:寄存器(Registers)、硬件堆栈(Hardware Stacks)和存储器(Memory)。下面以寄存器页面为例进行说明,在寄存器类型中主要包括如下一些设置:

       Register一列出了所有寄存器,提供给用户用于选择需要的寄存器进行条件设置。

       Watch For Read——当指定寄存器的读操作满足条件,就暂停程序的执行。读取到数值判断有四种:读到任意值(Any Read)、读入特定值(Read value)、读入值作为某种计算的操作数(Read in computation)和读入未定义的值(Read uninitial)。

       Watcn For WIite——当指定寄存器的写操作满足条件,就暂停程序的执行。条件判断有四种:写任意值(Any write)、或者写指定的值(Write vaIue)、写的值作为某种计算的操作数(Write in computation)、写未定义的值(Write uninitial)。

       Value——读或者写操作的指定值。

       Format——读或者写的指定值的格式,可以选择二进制、整数、浮点数等。

       Add、Edit、Delete——对观察点列表进行添加、删除、编辑等管理操作。

       3)对观察点判断条件设置完毕后,单击Add按钮,将所指定的观察点加入到观察点列表中。利用Add按钮可以加入多个观察点到列表中。

        4)单击OK按钮,完成设置。

        5)运行程序,当程序运行时,满足所设置的任意一个条件时,VisualDSP++将自动停止运行程序。

       4.5 模拟硬件环境

       为了方便用户在模拟器环境下更好的调试用户所编写的程序,VisualDSP++的调试器提供了3种硬件环境的方式模拟:

      Interrupts——中断,模拟在程序的执行过程中产生外部随机中断。

      Streams——数据流,模拟处理器通过外部端口进行数据传输。’

       Load Sim Loader——模拟处理器通过EPROM或主机等方式的加载过程。

      上面三种硬件模拟均在VisualDSP++主界面的Settings下拉菜单中,用户通过单击Setting按钮就可以对其进行设置,下面分别介绍。

       1.中断(Interrupts)模拟

       中断模拟用于模拟程序在执行过程中处理器外部产生随机中断,这对调试中断服务程序是非常有用的,其设置窗口如图5—39所示。

 

         该窗口中的主要选项意义如下:

         External interrupts——外部中断类型,用于设置外部中断的类型,包括FLAG中断、IRQ中断、定时器中断等,具体的中断类型与用户选择的处理器型号有关,不同的处理器所包含的外部中断类型也有所不同o

        Min cycles——中断信号产生的最小指令周期间隔o

         Max cycles——中断信号产生的最大指令周期间隔。

         Offset cycles——在第一次中断发生之前的指令周期数。

         Interrupts——显示设置完成的模拟中断及其参数。    、

        Add、Remove、Remove All——用于对设置完成的模拟中断进行添加、删除的管理操作。

        在对模拟断设置完毕后,直接运行程序即可,那么中断模拟器将会按照所设置的方式产生中断。    .

        值得注意的是,无论是重新执行程序、重新编译链接工程还是重新加载已编译过的程序,模拟中断都并不会取消,只有在模拟中断设置窗口中,将其删除,那么才能停止产生模拟的中断。当然如果重新启动VisualDSP++是可以关闭模拟中断的。

         2.数据流(Streams)模拟和DMA模拟传输

        1)SHARC和Blackfin系列处理器的数据流传输

       数据流模拟是用于模拟处理器通过外部端口进行数据传输过程的。数据流模拟可以模拟处理器的外部数据总线、链路口、串口等端口的数据传输。该功能对于在模拟器环境下调试处理器的DMA传输非常有效。  

        ①单击VisualDSP++主界面的下拉菜单中的Stream,将弹出数据流管理窗口,单击数据流管理窗口中的添加(ADD)按钮,将显示新建的模拟数据流传输的设置窗口,如图5-40所示。数据流管理窗口可以对已经存在的数据流模拟进行修改或删除等操作。

 

     ②新建数据流设置窗口中的主要包含了数据流的源和目的、类型端口等。主要参数说明

       如下:

        Source/Destination——数据传送的源/目的,用以设置数据传输的来源和目的,只有数据传输的源和数据传输的目的均设置正确才能进行数据流传输。

       Processor——给出针对数据流模拟的器件,该参数默认为会话选择的处理器型号。

       Device——数据流使用的设备,也就是数据流传输使用的端口或者存储器。

        Address——数据流使用的I/O地址。

        File/Browse——用于采用文件方式实现数据流模拟中打开数据文件。

        Format——数据传输使用的格式,数据流可以采用十六进制、十进制、二进制等整数类型和浮点格式进行数据传输。

        Circular——设置数据文件读取过程中,读取到数据结束后是否采用循环方式再从头读取数据,如果该选项选中,则支持循环读取方式,否则不支持循环读取数据文件。

       ③对数据流设置完成后,单击OK按钮,退出窗口;

       ④运行程序,那么在程序运行过程中,处理器通过指令或者DMA均可以实现对数据的获取或者写出。

        处理器读取数据流一般是从外部文件将数据读入,处理器写出的数据也将写出到文件中,用户通过相关的文件可以查看处理器传输的数据。

       2)TigerSHARC系列处理器的DMA模拟传输

        值得注意的是,前面讲述的数据流模拟传输的设置只针对SHARC和Blackfin系列处理器有效,而对于TigerSHARC系列处理器,VisualDSP++只提供DMA模拟传输,且相关操作如下。

        ① 如果用户选择了TigerSHARC系列处理器的会话环境,那么在VisualDSP++主界面的下拉菜单Settings中的Stream选项将不可选择,用户应当选择Simulator,然后单击Config DMA File I/O…,将弹出TigerSHARC系列处理器的DMA传输模拟器设置窗口,如图5-41所示。 

 

   ②在该窗口中主要包含对DMA的数据源和数据目的进行设置的参数,主要选项如下:

        DMA Channels——DMA通道选择。TigerSHARC系列处理器带有14个DMA通道,通道O~3分配给了处理器外部总线端口,通道4~7分别分配给了4个链路口的发送端口,通道8~11分别分配给了4个链路口的接收端口,通道12~13分配给了AutoDMA通道。用户根据模拟的需要,选中所需的 DMA通道即可。该窗口支持对多个DMA同时模拟,但用户需要对每个DMA通道进行设置。

      Enable Description——DMA通道使能描述,用于显示选中的DMA是否被使能。如果相应的DMA通道使能,那么将使该选项使能。

      Halt On Error——选中该选项,若DMA在传输过程中遇见任何错误,DMA传输将停止。

      Source——用于设置DMA传输的数据源,如果模拟DMA通道从处理器外部获取数据,设置该选项,如果模拟DMA通道从处理器内部向外部送出数据,那么该相关参数将不用设置。它包含以下参数:  

       Path——用于设置DMA数据传输的数据文件存放的路径。

       Preview——对用户选中的数据文件进行预览,方便用户确认所需传输的数据是否正确。支持十六进制、十进制和浮点等处理器支持的所有格式。

       Circular——设置数据文件读取过程中,读取到数据结束后是否采用循环方式再从头读取数据,如果该选项选中,则支持循环读取方式,否则不支持循环读取数据文件。

        On/On New Sequence——进行新的DMA传输采取的方式,Rewind为从数据文件的开头进行数据读取;Continue从上次DMA传输完毕的数据位置接着读取数据。

       Destination——用于设置DMA传输的数据目的,如果模拟DMA通道从处理器内部向外部送出数据,设置该选项,如果模拟DMA通道从处理器外部获取数据,那么该相关参数将不用设置。它包含以下参数:

       Path——用于设置DMA数据传输的数据文件存放的路径。

      Fomat——用户通过DMA通道输出数据的格式,支持十六进制、十进制和浮点等处理器支持的所有格式。

       Comment——写入到输出文件中的注释,在该窗口中的注释信息将写在输出数据文件中的开头位置。

       On/On New Sequence——进行新的DMA传输的采取的方式,Rewind为从数据文件的开头进行数据写操作,即覆盖上次DMA传输写出的数据;Append为将DMA传输悬挂起来。

       3)用户在设置该窗口中的参数完成后,单击OK按钮即可。数据的传输由用户的程序来控制开启,并且只能采用DMA方式进行数据传输,处理器通过指令访问将无效。

       值得注意的是,由于对数据的传输需要通过用户的程序控制开启,因此在该窗口中的设置应当与用户程序中所设置的DMA通道及其方向一致,否则将不能模拟DMA的正常传输。

       3.Load Sim badef模拟  

       Load Sim Loader是用来模拟EPROM或主机给处理器加载.1dr文件的过程,为用户设计实现处理器加载提供帮助。  

       通过下列步骤可以建立一个处理器EPROM加载。

       1)选择VisualDSP++主界面的下拉菜单Settings中的Load Sim Loader,如图5-42所示。

 

     2) 在该菜单中有两个选项:从主机加载启动(Boot from Host)和从PROM加载启动(Boot from PROM),分别用于模拟从主机对处理器进行加载启动和让处理器从PROM加载启动。由于不同处理器的加载方式不同,因此对于不同的处理器,该菜单中的内容也有所不同,具体的内容与处理器所具有的加载方式有关,例如对于ADSP-21062具有链路口加载方式,则该菜单中也就包含了连接口加载方式的模拟。  

       无论模拟主机加载启动还是PROM加载启动,选择以后,VisualDSP++都将提示选择所需要加载的文件,加载文件是后缀名为.ldr的文件,选择加载文件完毕后,VisualDSP++将提示用户单击调试(Debug)菜单中的复位(Reset)按钮,然后弹出提示信息。如图5-43所示,在用户单击确认并复位完成后,VisualDSP++将进入模拟加载过程。

 

    3)进入模拟加载过程后,用户直接运行程序,VisualDSP++将自动完成加载过程。用户通过单步执行程序,可以观察到处理器的模拟加载过程。

      4)如果要从模拟加载环境下退出,需要单击VisualDSP++主界面的下拉菜单Settings中的Load Sim Loader,并将其设置成无加载(None of Above)方式。

     4.6  寄存器窗口操作

     寄存器操作也是DSP调试过程中经常使用的。寄存器的显示通过在VisualDSP++主界面的寄存器(Register)下拉菜单中进行选择即可,如图5埘所示。寄存器下拉菜单中一般包含了核寄存器、系统寄存器、IO端口寄存器或者附属设备寄存器等,具体内容随处理器型号而异。

 

     4.7  存储器窗口操作

    存储器窗口不但像寄存器窗口那样,可以提供数据格式和编辑操作,还提供跳转(Goto)、查找(Search)、填充(Fill)、导出(Dump)等功能。

    下面分别介绍存储器操作。

    (1)存储器查看

    通过单击VisualDSP++下来菜单存储器(Memory),选择存储器查看方式,如图5-46所示.即可弹出存储器窗VI,如图5-47所示。

 

    值得注意的是,不同的处理器片内存储器的物理结构不同,因此对于不同处理器,存储器下拉菜单的内容也有所不同。例如,SHARC系列处理器的片内存储器是按照16位设计的,因此SHARC系列处理器的存储器查看方式有短字(Short Word)、32位字(Two Column)和48位字(Three Column)等查看方式;而TigerSHARC系列处理器的片内存储器是按照32位设计的,因此TigerSHARC系列处理器的存储器查看方式只有 32位查看方式。

    (2)改变存储器数据格式

    类似对寄存器窗口的操作,选中所需修改地址对应的数值,双击鼠标左键,高亮后填人修,然后修改即可。

    (3)跳到某一地址上查看

    ①直接在存储器窗口的跳转地址栏中敲人所需跳转的地址即可,该地址栏支持16进制地址输入和标号选择;

    ②在激活的存储器窗VI上单击鼠标右键,在菜单中选择Go To命令,会出现一个GO To Address对话框,如图5-48所示。在此对话框中敲人十六进制的地址或通过Browse从标号

    列表中选择一个标号,单击OK按钮即可。存储器窗口中的显示内容会变成指定地址的存储器的内容。 

 

 

    (4)填充或者导出存储器数据

    填充是把数据填充到存储器中,导出是把存储器内容写到数据文件(.dat)中。

    1)在激活的存储器窗口中单击鼠标右键,在菜单中选择Fill,将出现存储器数据填充对话框,如图5-49所示。配置该窗口中的参数,完成后单击OK按钮即可。

    填充存储器的数据来源有两个:固定值和用户数据文件。

    该窗口中的主要选项含义如下:

    Address——要填充的存储器首地址。该栏中可以填人16进制地址,也可以填入用户程序中定义的变量名o

    Memory——要填充的存储器类型,该选项使用默认即可。

    Count——要填充的数据长度。

    Stride——填充存储器的地址增量。

    Value——填充的数值,该功能只在采用固定数值填充时有效,也就是在“Fill from a file”选项无效的时候才能使用。

    Fill From a File——当选择此项时表示利用文件数据填充存储器,否则必须指定一个值,该选项有效后,文件设置(File settings)选项才有意义。

    File Name——采用文件填充时,数据文件存放的路径和文件名。  

    2)在激活的存储器窗口中单击鼠标右键,在菜单中选择dump,将出现存储器数据导出设置对话框,如图5-50所示。配置该窗口中的参数,完成后单击OK按钮即可。

     该对话框中的主要选项含义如下:  

    Address——要保存数据的存储器首地址。该栏中可以填入十六进制地址,也可以填人用户程序中定义的变量名。

    Memory——要填充的存储器类型,该选项选择默认即可。  

    Format——存储器数据格式,支持十六进制、十进制、八进制、二进制、整数、浮点数等各种类型。

    Count——要保存的数据长度。

    Stride——保存数据的存储器地址增量。  

    Dump to a file——将数据保存到文件选项,该选项必须有效,否则不能正常保存数据。

    Show addresses——地址显示选项,如果该选项选中,那么在导出的数据文件中,除了会将数据保留,还会将数据多对应的存储器地址也保留:且一一对应。

    File Name——保留数据的文件存放的路径和文件名。

 

   (5)新建跟踪(New Tracking)

    可以在某一存储器窗口中输入一个表达式来进行跟踪,通过下列步骤来跟踪一个表达式。

    1)在激活的存储器窗口中单击鼠标右键,出现快捷菜单;

    2)在此菜单中选择New-Tracking,会出现一个Enter A New Tracking Expression对话框;

    3)在此对话框中写入一个表达式;这个表达式可以是C表达式或寄存器表达式。如果是寄存器表达式,必须用$Xn的形式;

    4)单击OK按钮。

    (6)将存储器内容画图

    存储器中数据也可以采用图形的形式给出。VisualDSP++提供画图工具,将用户制定的数据进行画图,基本步骤如下。

    1)新建一个画图窗口,单毒VisualDSP++主界面中的View下拉菜单,选择Debug选项中的Plot,单击New按钮,如图5-51所示。    。

    2)新建画图窗EI后,VisualDSP++将弹出新建画图配置窗口,如图5-52所示。

    该图中主要选项如下:

    Data sets——数据集合,管理已经设置完毕的数据。

    Add/Remove/New——绘图的新建、添加、删除等管理操作按钮。

    Type——绘图的类型,即采用何种方式来绘图,常用的有:绘制线段图(Line P1ot)、X—Y图、星座图(Constellation Plot)、眼图(Eye Diagram)、谱图(Spectrogram Plot)等。

    Tide——绘图的标题。

    Name——图形名称。

    Memory——存储器类型,即所需绘图的数据存放的存储器类型。  

    Address——存储器地址,即所需绘图的数据存放的存储器起始地址。该窗口可以直接输入十六进制的地址,也可以使用程序中的变量名来替代地址。

    Offsec——偏移地址,即所需绘图的数据存放的地址与Address中定义的地址之间的偏移量。

    Count——绘图所用的数据长度。  

    Stride——地址增量。

    DataL——数据类型。 

    Senings——绘图的高级设置。

 

 

    3)在对绘图进行配置完成后,单击Add按钮,将设置完成的绘图添加到数据集合中。如果不单击Add按钮将其添加,那么上一步的设置在该窗口关闭后都将无效。

    4)单击OK按钮,VisualDSP++将显示所绘制的图形。如图5-53所示。

 

 

    在图形窗口中,可以直接使用鼠标选择对区域图形进行放大,通过鼠标右键菜单中的Reset Zoom可以将图形恢复到满窗口模式。

    在图形窗口的鼠标右键菜单中有光标(Data Cursor),用户通过移动光标可以在图形窗口的左下角查看到光标位置所对应的数据序号和数值的大小。

    图形窗口允许用户通过导出的方式将图形以图片或者数据的方式进行保存。单击鼠标右键菜单中的导出(Export),将弹出导出图形设置窗口,如图5-54所示。

      通过鼠标右键可以更改寄存器数据格式的显示方式,如图5-45所示。寄存器的数据格式包括:十六进制、八进制、二进制、有符号或无符号整数、32/40位浮点、有符号或无符号小数等。  

 

      在寄存器窗口中可以改变寄存器内容显示的数据格式和修改寄存器内容。修改寄存器的值只需要选中需修改的寄存器,鼠标双击后即可对寄存器的值进行修改,当它高亮显示后,敲入新值并回车就可以了,也可以用文本编辑操作,如复制、剪切、粘贴等对寄存器的值进行修改。

本文来源:安诺电子网    作者:
评一评已有 0 位网友对此文发表了看法。  我也来评一下

验证码:  看不清?换一张