汇编语言笔记-keil5软件仿真及调试

目录

  • keil5调试功能
    • 软件仿真设置
    • 硬件调试设置
    • 调试方法
  • 调试选项及介绍
  • 调试窗口
    • Command
    • Disassembly
    • Symbols
    • Registers
    • Call Stack(+Locals)
    • Watch
    • Memory
    • Serial
    • Logic Analyzer
  • 外设寄存器查看
  • 软件仿真限制

keil5调试功能

       keil5的Debug选项分为软件仿真和硬件调试。两种方式的区别在于,前者不需要硬件平台,而是通过软件模拟芯片的运行,此时可以通过逻辑分析仪等查看(模拟)芯片输出(当然硬件调试也可以使用逻辑分析仪等功能)。

软件仿真设置

    硬件调试设置

    1. 打开Debug选项选择操作调试器
    2. 断点是调试器的功能之一,可以让程序停止在设置断点的语句。在调试过程中,可在程序的某一处设置断点再点击Run运行,此时当程序运行至该位置时自动停止。

      调试窗口

             通过“View”或调试选项旁的图标可以打开相应的调试窗口:

      注意文档的第2句话:例如,BreakAccess 必须输入为 BA 或 ba。即文档的表格中第一列展示的命令不能直接输入到命令输入区,可以点击以查看真正的命令。

      Disassembly

      1. 0x开头的16进制字符串:语句(或者说上面红色字体的原代码)在芯片内存中存储的位置。(一般为代码段)
      2. 16进制字符串(4/8个字符):16位/32位机器码编码。

      根据《ARM Cortex-M3与Cortex-M4权威指南》一书的图2.5,反汇编代码由机器代码生成,而不是由编译器将C语言代码直接编译而成(这样好像反汇编的“反”更说得通)。

      Registers

             寄存器窗口,如下图所示,该窗口用于显示R0~R15、xPSR等内核寄存器的值(不是外设寄存器),如下图所示,关于内核寄存器的介绍可以查看ARM架构基本寄存器。

      Watch

             如下图所示,该窗口用于查看变量,包括变量名、值以及变量类型,可以点击Value一栏对变量的值修改。

      Memory

             内存窗口,如下图所示,该窗口用于显示存储器中的数据,上方Address区用于输入变量名或地址值,此时下面的显示栏会移动到对应地址存储的数据。

      Logic Analyzer

             逻辑分析仪窗口,如下图所示,该窗口作用类似逻辑分析仪。使用前需要点击左上角的“Setup…”后在弹出窗口内添加引脚,确定后点击运行即可查看引脚的输出波形。(添加方法和文件路径添加方法类似,以添加PB5引脚为例,在弹出窗口点击右上角的虚线框并输入PORTB.5即可),引脚添加后,在“Setup…”下的灰色区域鼠标右键可设置输出类型(Analog、bit、state)

      注意,如果前面调试选项的Dialog DLL和Parameter没有相应设置的话,添加引脚可能会 错。

      外设寄存器查看

             上述的Register窗口查看的是处理器使用的工作寄存器,一般只有汇编语言会用到,通过固件库或寄存器开发单片机时,都是通过C语言设置单片机的各个寄存器,而通过keil5的软件仿真或硬件调试可以对芯片的外设寄存器查看及修改。
             如下图所示,通过“View”-“System Viewer”-“GPIO”-“GPIOA”查看相应的寄存器。

      软件仿真限制

             软件仿真不是所有芯片都可以,部分芯片(如stm32F4以及GD各款)是无法软件仿真,会 错,好像听说要修改DLL文件或修改读写权限,但感觉可能性不大,文档中包含了可进行软件模拟的芯片,如其中的表所示。

      声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年4月4日
下一篇 2022年4月4日

相关推荐