LAOXU 发表于 2023-10-21 06:22:54

Keil小技巧-STC在仿真时用Watch窗口显示并修改XFR寄存器值


看到好多网友在论坛上询问, STC在仿真时, 如何显示并修改XFR寄存器值, 目前普遍使用方法:


1. 将 XFR寄存器值读入 指定RAM中(仅供查看)


2. 将 XFR寄存器值通过串口输出(仅供查看)


3. STC增加的专用XFR寄存器窗口(仅供查看)


这些方案, 都不能解决在调试时, 动态修改XFR寄存器值.






经我测试, STC在仿真时, 可以用Watch窗口显示并修改XFR寄存器值, 方便调试.


在单个C文件上, 已调试成功.




目前正在修改程序, 测试用于多文件系统.


待续......



神农鼎 发表于 2023-10-21 07:55:21

期待 老许 抛砖引玉 之 太祖长拳

LAOXU 发表于 2023-10-22 02:53:42

以 STC8H 为例:





项目中 建立 3个文件,1主 2 辅, 不断仿真运行到断点, 可将 XFR值读入内存 a1,a2,a3中,


通过Watch窗口可直接修改XFR寄存器值, 再仿真运行到断点, 将 XFR值读入内存 a1,a2,a3中, 进行对比是否真正执行修改.

LAOXU 发表于 2023-10-22 03:17:29

使用说明:




一. 安装:


将 STC51H 目录中的头文件, 拷贝到 原 Keil\C51\INC\STC 目录下, 替代 原 STC51系列 头文件.




二. 使用方法:


方法1: 在原项目中, 加入扩展尾缀m 且和 51 头文件( **.H文件) 同名的 c文件, 如原 51 头文件名 为 STC8H.h, 则 加入的 c文件名 为 STC8Hm.c




方法2: 在原项目任意一个c文件中(一般选主程序), 加入扩展尾缀m 且和 51 头文件( **.H文件) 同名的 H文件, 如原 51 头文件名 为 STC8H.h, 则 加入的 c文件名 为 STC8Hm.h




重新编译一下即可.



注意: 扩展尾缀m 的 H文件 或 c文件, 整个项目只充许加入一次, 否则编译报错!







hl1200aa 发表于 2024-1-16 18:30:10

请教一下,那个
3. STC增加的专用XFR寄存器窗口(仅供查看)
在哪里啊?

LAOXU 发表于 2024-1-16 23:45:00




左下角, 自行添加 XFR寄存器 名称, 即可显示 和 修改 .

LAOXU 发表于 2024-1-16 23:47:42

上述为中文版, 英文版 通过Watch窗口可直接 显示 和 修改 XFR寄存器值,
页: [1]
查看完整版本: Keil小技巧-STC在仿真时用Watch窗口显示并修改XFR寄存器值