电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

STM32 keil MDK仿真测试.doc

  • 资源ID:138213706       资源大小:106.50KB        全文页数:8页
  • 资源格式: DOC        下载积分:12金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要12金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

STM32 keil MDK仿真测试.doc

信号函数当Vision3模拟执行目标程序时,信号函数可以在后台实现信号输入、脉冲输入等重复操作。信号函数可用于模拟和测试串行I/O、模拟I/O、端口通讯和其他一些重复发生的外部事件。因为当Vision3模拟目标程序时,信号函数是在后台执行。因此,信号函数必须在某些地方调用twatch函数来进行延迟,以便让Vision3能运行目标程序。若信号函数从不调用twatch,则Vision3会报告错误。Vision3提供了一部分能在信号函数中使用的系统变量。详情请参考 系统变量 。系统变量系统变量可在程序中任何位置的变量和其他表达式中使用,用于获取一些特殊功能值。下表列出了允许使用的系统变量,以及数据类型和使用方法。变量 类型 描述 $ unsigned long 表示当前程序计数器值。可以使用$表达和修改程序计数器。例如,$ = 0x4000可将当前程序计数器值设置为0x4000。 _break_ unsigned int 令目标程序中止运行。如果将 _break_ 设置为一个非零值,Vision将挂起目标程序的执行。在用户和信号函数中使用该变量可挂起目标程序的执行。 _traps_ unsigned int 若将_traps_ 设置为一个非零值,Vision将现实166个硬件陷阱:未定义的操作码,被保护指令错,非法字操作访问,非法指令访问,堆栈上溢,堆栈下溢等。 states unsigned long CPU指令状态计数器的当前值;当目标程序开始执行时,该计数器从0开始每执行一条就加1。注意states 是一个只读变量。 itrace unsigned int 表示目标程序执行时是否记录跟踪过程。若 itrace 为 0,则不记录跟踪过程;若itrace 是一个非0值,则记录跟踪过程。更多相关信息可参考 Trace Recording 。 radix unsigned int 设置显示数据的进制,radix 可为 10 或16,默认值为16 用于HEX输出.信号函数的定义由关键字SIGNAL开始,格式如下:SIGNAL void fname (parameter_list) statementsfname i函数名 parameter_list i传递给函数的参数表,每个参数必须包括一个类型声明和一个名字。如果没有参数,则用void代替参数表。多个参数之间用逗号间隔。 statements 函数体 函数起始标识。只有函数起始标识和函数结束标识(“”)保持平衡,函数才是完整的。 例如下面的例子表示一个信号函数每隔1,000,000个CPU周期将字符A传送至串行输入缓冲区一次。SIGNAL void StuffS0in (void) while (1) S1IN = A; twatch (1000000); 调用这个函数时,在控制窗口输入如下命令:StuffS0in()调用时StuffS0in信号函数会将字符A的ASCII值传送至串行输入缓冲区并延迟1,000,000 个CPU周期,不断重复。信号函数受到如下约束:函数的返回值类型必须为void。 函数最多只能有8个参数。 信号函数可以调用其他重定义函数和用户函数。信号函数之间不能相互调用。 信号函数可以被用户函数调用。 信号函数必须调用twatch至少一次。如果信号函数从不调用twatch,则目标程序将得不到时间执行。而且由于不能使用Ctrl+C中断信号函数,在这种情况下Vision3将进入死循环。 信号函数的管理一个信号函数要么处于空闲态,要么处于运行态。Vision3通过队列来保存被激活的信号函数。处于空闲态的信号函数将被延迟,直到延迟完指定的CPU周期等待之后调用 twatch来唤醒她。运行态的信号函数则执行函数内的语句。当一个信号函数被调用时,Vision3将此函数加入队列中并将其状态标明为运行。一个信号函数只能被激活一次,如果要被激活的函数已经在队列中,则会发出警告。通过SIGNAL STATE命令可以查看信号函数的状态,SIGNAL KILL命令可以将信号函数从队列中消除掉。当信号函数调用twatch函数时,经过数个CPU周期处理完twatch函数之后信号函数将进入空闲态,直到用户程序执行指定数目个CPU周期后信号函数才从twatch函数之后的语句开始继续执行。当信号函数退出时,返回语句自动将该函数从队列中清除。下面的例子表示一个信号函数在C167上改变模拟输入的值。函数从0伏特开始以0.5伏为单位增加或减少输入电压,并且增加上限被设置。该信号函数不定期的重复,每次电压改变将延迟200,000个CPU周期。signal void analog0 (float limit) float volts;printf ("Analog0 (%f) entered.n", limit); while (1) /* forever */ volts = 0; while (volts <= limit) ain0 = volts; /* analog input-0 */ twatch (200000); /* 200000 states Time-Break */ volts += 0.1; /* increase voltage */ volts = limit; while (volts >= 0.0) ain0 = volts; twatch (200000); /* 200000 states Time-Break */ volts -= 0.1; /* decrease voltage */ 信号函数analog0能以如下方式被调用:>ANALOG0 (5.0) /* Start of ANALOG() */ANALOG0 (5.000000) ENTEREDSIGNAL STATE命令显示analog0函数的当前状态:>SIGNAL STATE 1 idle Signal = ANALOG0 (line 8)该命令列举出内部函数的编号,信号函数的状态:空闲态还是运行态,函数名和执行语句行号。因为信号函数的处于空闲态,可以推测出analog0正在执行twatch函数(在analog0的第8行)并等待指定的CPU周期时间。200,000个CPU周期之后,analog0继续执行直到在程序的第8行或14行 twatch 函数再一次被调用。以下命令将analog0函数从激活信号函数队列中清除。>SIGNAL KILL ANALOG0建立函数Vision3 中有一个内建的函数编辑器,通过Debug Function Editor来打开。打开函数编辑器时需要输入一个文件名或者打开一个由Options for Target Debug Initialization File指定的文件。该编辑器的用法与Vision3编辑器相同,允许用户输入和编译调试函数。参考函数编辑 对话框帮助可获取更多对话项目信息。当建立一个调试函数文件后,可用INCLUDE 命令可以读取和处理该文本文件的内容。例如,如果在命令窗口输入下列命令,Vision3将完成对MYFUNCS.INI文件内容的读取和解释功能。>INCLUDE MYFUNCS.INIMYFUNCS.INI 可能包含调试命令和函数定义,通过Options for Target Debug - Initialization File可以进入该文件。每次打开Vision3调试器时,MYFUNCS.INI文件的内容将被执行。INCLUDE 命令用于指定一个命令文件,命令被从此文件中一行一行地被读取并被传递给Vision3 来执行。在Vision3中可以利用INCLUDE 文件执行重复操作。例如,定义INCLUDE 文件用于载入目标程序,运行程序到主C函数,初始化工具箱按钮及生成几个用户函数。INCLUDE 文件可以嵌套4层,要使用INCLUDE 命令时,必须先停止目标程序的执行。例子INCLUDE measure.ini不需要的函数可以通过 KILL 来删除。Debug - Function Editor关于创建函数文件的详细信息请参考创建函数。Open 打开浏览对话框,选择一个要编辑的文件。 New. 创建一个新的文件以加入函数。 Save 保存文件的编辑内容。 Save As. 在不同的文件中保存当前的编辑内容。 Compile 编译当前文件,相应的结果在Output Window的Build页中显示。 Compile Errors 显示编译错误。选择一个错误可以在编辑窗口定位相应的出错行KILL 命令可用于删除已定义的工具箱按钮和Vision3函数。KILL BUTTON 命令用于移除前面已定义的一个工具箱按钮。当使用这个命令时,必须要指定要移除工具箱按钮的编号。这个编号在工具箱窗口中每个按钮的前面。KILL FUNC * 命令用于移除前面已定义的所有用户函数和信号函数。Vision3 内部定义函数不能被删除。KILL FUNC function_name 命令用于删除指定的用户函数或信号函数。例子>KILL FUNC ANALOG /* Delete user function analog */>KILL FUNC myregs /* Delete user function myregs */>KILL FUNC * /* Delete all user functions */>KILL BUTTON 3 /* Kill Toolbox Button number 3 */>KILL BUTTON 1 /* Kill Toolbox Button number 1 */外围设备变量根据工程所选择的CPU,Vision3会自动地定义一些符号。这些符号分为两类:外围寄存器(或SFRs)和虚拟仿真寄存器(VTREGs)。在Simulation Script Templates下,调试函数Debug Functions可利用这些外围设备变量自动向外设输入信号。外围寄存器 (SFRs)Vision3为外围寄存器定义了符号。外围寄存器符号的定义依赖于选择的微控制器。外围寄存器符号都具有相关的地址,可被用于表达式中。虚拟仿真寄存器(VTREGs)虚拟仿真寄存器的存在,使得模拟CPU的引脚进行输入和输出成为可能。VTREGs不是公有符号,也不能常驻CPU的内存。它们可以用于表达式中,但其值及用法是依赖于CPU的。 VTREGs提供了一种输入来自被仿真硬件上的信号到CPU引脚的方法。可以使用DIR VTREG 命令列出这些符号。下表描述了VTREG符号。VTREG符号的可用性依赖于所选的CPU。VTREG描述ADx片上的一个模拟输入引脚,它的典型代表是 A/D转

注意事项

本文(STM32 keil MDK仿真测试.doc)为本站会员(飞****9)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.