| 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)方式。 |