电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

STM32 keil MDK仿真测试.doc

8页
  • 卖家[上传人]:飞****9
  • 文档编号:138213706
  • 上传时间:2020-07-14
  • 文档格式:DOC
  • 文档大小:106.50KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、信号函数当Vision3模拟执行目标程序时,信号函数可以在后台实现信号输入、脉冲输入等重复操作。信号函数可用于模拟和测试串行I/O、模拟I/O、端口通讯和其他一些重复发生的外部事件。因为当Vision3模拟目标程序时,信号函数是在后台执行。因此,信号函数必须在某些地方调用twatch函数来进行延迟,以便让Vision3能运行目标程序。若信号函数从不调用twatch,则Vision3会报告错误。Vision3提供了一部分能在信号函数中使用的系统变量。详情请参考 系统变量 。系统变量系统变量可在程序中任何位置的变量和其他表达式中使用,用于获取一些特殊功能值。下表列出了允许使用的系统变量,以及数据类型和使用方法。变量 类型 描述 $ unsigned long 表示当前程序计数器值。可以使用$表达和修改程序计数器。例如,$ = 0x4000可将当前程序计数器值设置为0x4000。 _break_ unsigned int 令目标程序中止运行。如果将 _break_ 设置为一个非零值,Vision将挂起目标程序的执行。在用户和信号函数中使用该变量可挂起目标程序的执行。 _traps_ unsi

      2、gned 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代替参数表。多个参数之间用逗号间隔。

      3、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通过队列来保存被激活的信号函数。

      4、处于空闲态的信号函数将被延迟,直到延迟完指定的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)

      5、; while (1) /* forever */ volts = 0; 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函数从激活信号函

      6、数队列中清除。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 来执行。在Vis

      7、ion3中可以利用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 F

      8、UNC * 命令用于移除前面已定义的所有用户函数和信号函数。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分享,可在线阅读,更多相关《STM32 keil MDK仿真测试.doc》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.