【更多软件使用问题请点击亿道电子官方网站】
1、 文档目标
解决客户对于Debug模式下,对于Registers窗口包含的内容了解。
2、 问题场景
Registers窗口是在进入到debug模式下后,就会出现一个窗口。窗口中包含了很多寄存器信息。但是对于具体内容不了解。
3、软硬件环境
1)、软件版本:Keil MDK 5.38a
2)、电脑环境:Windows 11
3)、外设硬件:无
4、解决方法
1)、首先,Registers窗口大部分情况都是默认打开的情况,如果没有看到Register窗口的话,可以根据图4-1所标识的位置打开Register窗口。
图4-1
2)、Registers窗口打开后,主要有2个部分。(如图4-2)
(1)、Register:列出操作模式、寄存器名称和CPU状态。
(a)、Core:显示R0-R15等通用寄存器、程序计数器(PC)、堆栈指针(SP)以及状态寄存器(如PSR)等
(b)、Banked:显示MSP(主堆栈指针)和PSP(进程堆栈指针)两个指针信息
(c)、System:系统寄存器。这些寄存器通常用于控制处理器的系统级特性,如中断控制、时钟设置、功耗管理等。这些寄存器的具体名称和功能取决于特定的微控制器型号和架构。
- Basepri寄存器用于设置中断的基础优先级阈值。
- Primask是一个简单的屏蔽寄存器,用于全局地禁用或启用所有异常(包括中断)。
- Faultmask寄存器与PRIMASK类似,但它仅影响故障异常(Fault exceptions),这些异常通常是由于硬件错误或异常条件(如未定义指令或总线错误)触发的。通过FAULTMASK,可以独立地控制是否响应这些故障异常。
- Control寄存器包含多个控制位,用于配置处理器的一些关键行为。例如,它可能包含用于控制堆栈指针的位等。
(d)、Internal:
- Mode通常表示当前处理器的操作模式。对于ARM Cortex-M系列的微控制器,这可能包括线程模式(Thread Mode)和处理模式(Handler Mode)。
- Privilege指示当前处理器的特权级别。在ARM架构中,通常有两种特权级别:用户级(User)和特权级(Privilege)。特权级允许访问和控制更多的系统资源,而用户级则对访问进行限制,以提供安全性。
- Stack表示当前使用的是模式指针类型,是MSP(主堆栈指针)还是PSP(进程堆栈指针)。
- state表示处理器的当前状态
- Sec显示自调试开始以来经过的时间(以秒为单位),它基于与States相同的信息。该值与状态栏的条目t0相同。
(f)、FPU:浮点寄存器的相关内容
- 在FPU寄存器中,S和D可能代表单精度(Single-precision)和双精度(Double-precision)浮点寄存器。单精度浮点数通常使用32位存储,而双精度浮点数使用64位存储。这些寄存器用于存储浮点数的值,以便进行浮点运算。
- Float和Double通常表示浮点运算的模式或数据类型。Float通常与单精度浮点数相关,而Double与双精度浮点数相关。在进行浮点运算时,处理器会根据当前设置的模式(Float或Double)来确定如何解释和操作浮点数。
- FPU Status and Control Register (FPSCR):这是一个状态和控制寄存器,用于管理FPU的状态和配置。它包含多个位字段,用于控制浮点运算的精度、舍入模式、异常处理等。通过修改FPSCR中的位,可以影响FPU的行为和性能。
(2)、Value:显示寄存器内容和对应一些操作的目前的模式。
图 4-2
————————————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
关于亿道电子
亿道电子技术有限公司(www.emdoor.cn)是国内资深的研发工具软件提供商,公司成立于2002年,面向中国广大的制造业客户提供研发、设计、管理过程中使用的各种软件开发工具,致力于帮助客户提高研发管理效率、缩短产品设计周期,提升产品可靠性。
【更多软件使用问题请点击此处提交题,我们的工程师会为您及时解答,或关注B站:亿道电子查看视频教学】