导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→MDK的仿真功能汇总[注意][MICKEYMOUSE]

 *第19210篇: MDK的仿真功能汇总[注意]

  
楼 主:MICKEYMOUSE 2008年4月21日09:07
 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 programPortAvalue = 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的值。如果将一个新的输出值写入Port5,Output Window - Command页将会显示这个信息。详细信息请参考CPU引脚寄存器 (VTREGs)。 

仿真中断和时钟中断 


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


// in your C user programT3CON = 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命令用于将PC的COM端口作为礦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*/


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:DM642 BootLoad制作

[下一篇主题]:开关电源的连续控制系统[原创][原创]