这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » MDK的仿真功能汇总

共1条 1/1 1 跳转至

MDK的仿真功能汇总

助工
2008-04-14 15:04:53     打赏

更多关于RealView MDK的技术文章,请点击此处!


MDK
的仿真功能汇总 Embest FAE MDK除了具有功能强大的编辑器、工程管理器以及各种编译工具(包括C编译器、宏汇编器、链接/装载器和十六进制文件转换器)。更主要的是具有强大的仿真功能。 CPU仿真

 

礦ision调试器可以仿真高达4GB的存储空间,这些存储空间可以被映射为读、写或可执行等访问权限。礦ision软件仿真器可以捕获和报告非法的存储访问。除了存储映射以外,软件仿真器同时可以仿真各种基于ARM微控制器的片上外围设备。在创建工程时,从设备数据库中选择的CPU就决定了可以用软件仿真器仿真的片上外围设备。关于从设备数据库中选择设备的信息请参考运行礦ision及创建工程文件
。可以调试菜单选择和显示片上外围设备,同时通过相应的对话框改变这些外围设备的特征。

 

 

 

预设外设和CPU的配置

 

礦ision调试器为大多数的外设提供了修改初始化值的对话框。例如,Peripheral – Advanced Power Management Controller用于修改Atmel AT91M55800A设备的CPU配置。必须首先检查软件仿真器的CPU和外设的初始化值,因为错误的设置可能会导致目标硬件调试器不能正常运行。

 

 

 

 

 

 

仿真I/O端口

 

礦ision提供了显示所有I/O端口状态的对话框。这里,I/O引脚是用虚拟寄存器(VTREGs)表示的。下面的例程显示了VTREG以及信号功能或断点。

 

 

 

 

 

 

礦ision提供了显示所有I/O端口状态的对话框。这里,I/O引脚是用虚拟寄存器(VTREGs)表示的。下面的例程显示了VTREG以及信号功能或断点。

 

 

 

// in your C user program
PortAvalue = PIOA_PDSR; // read Port A input


礦ision软件仿真器中定义断点。

 

 

 

bs write PORT3, 1, "printf (\"Port3 value=%X\\n\", PORT3)"
bs read PORT5, 1, "PORT5 = getint (\"Input Port5 value\")"


当执行C程序时,礦ision将会要求输入Port5的值。如果将一个新的输出值写入Port5Output Window - Command页将会显示这个信息。详细信息请参考CPU引脚寄存器 (VTREGs)

 

 

 

 

 

 

仿真中断和时钟中断

 

礦ision可以仿真I/O引脚的输入行为。如果I/O引脚被配置为计数器的输入,则当这个引脚被触发时计数值会增加。下面的例子说明了如何仿真计数器3的输入行为:

 

 

 

// in your C user program
T3CON = 0x004B;
// set T3 Counter Mode


可以使用VTREG端口3同计数器的输入引脚P3.6绑定,例如,下面的信号函数实现了这种绑定。

 

 

 

signal void ToggleT3Input (void) {

while (1) { PORT3 = PORT3 ^ 0x0040;
// toggle P3.6

twatch (CLOCK / 100000);

// with 100kHz

}
}

 

 

 

通过外设对话框观察定时器3的状态。

 

 

 


同样也可以仿真中断输入:当端口引脚作为中断输入时,如果绑定相关I/O引脚的话,中断请求将会被设置。

 

 

 

仿真外部I/O设备

 


外部I/O设备是典型的映射存储器。用户可以用礦ision调试器提供的存储器窗口仿真这样的I/O设备。因为C用户程序不包含这样存储区域的任何变量声明,所以要求用MAP命令映射这段存储区。

 

 

 

MAP 0x100000, 0x100FFF READ WRITE
/* MAP memory for I/O area */


可以用断点和调试函数仿真I/O设备的逻辑。

 

 

 


详细信息请参考用户函数

 

 

 


断点定义的例子:

 

 

 

BS WRITE 0x100000, 1, "IO_access ()"

PC COM端口分配串行I/O

 

ASSIGN命令用于将PCCOM端口作为礦ision软件仿真器的输入UART。如果输入如下的命令,串行I/O口是通过COM2(PC的接口)实现的。STIME变量用于忽视仿真串行接口的定时。

 

 

 

>MODE COM2 9600, 0, 8, 1
/*9600 bps, no parity, 8 data & 1 stop bit*/
>ASSIGN COM2 <S0IN >S0OUT
/*ASC0 output & input is done with COM2:*/
>S0TIME = 0
/*ignore timing of simulated ASC0 interface*/

更多关于RealView MDK的技术文章,请点击此处!




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 




关键词: 仿真     功能     汇总     ision     设备    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]