找回密码
 立即注册
查看: 160|回复: 2

AI8051U芯片使用串口进行KEIL仿真,可以进去仿真界面,但是不能监控变量的值?

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:14
  • 最近打卡:2025-05-20 11:57:48
已绑定手机

16

主题

4

回帖

136

积分

注册会员

积分
136
发表于 2025-5-19 14:50:51 | 显示全部楼层 |阅读模式
AI8051U芯片使用串口进行KEIL仿真,可以进去仿真界面,但是不能监控变量的值?
我定义了个16位变量x,如下


截图202505191450256223.jpg


截图202505191450426678.jpg

回复

使用道具 举报 送花

3

主题

722

回帖

155

积分

等待验证会员

积分
155
发表于 2025-5-19 14:53:00 | 显示全部楼层
在进行KEIL仿真时,如果需要监控或记录变量的值,可以考虑以下几种方法:

方法一:使用Python编写调试脚本
1. 安装Python和Keil:
在KEIL中,运行Python脚本,安装Python的调试工具。
如果Python未安装,请在KEIL中选择“Python”或“Python脚本”功能。

2. 编写Python脚本:
在KEIL中运行以下Python脚本,然后输入您需要监控的变量值:
   
  1. python
  2.      x = 100052
  3.      print(x)
  4.      y = 100054
  5.      print(y)
复制代码
这样,Python会自动记录变量x和y的值。

3. 调试脚本:
如果需要更复杂的监控,可以编写更复杂的Python脚本,跟踪多个变量的值。

方法二:使用KeilScript进行脚本脚本
1. 安装KeilScript:
在KEIL中,运行“Python脚本”功能,选择“KeilScript”选项。

2. 编写KeilScript脚本:
在KEILScript中运行以下脚本,然后输入您需要监控的变量值:
   
  1. keilscript
  2.      x = 100052
  3.      print(x)
  4.      y = 100054
  5.      print(y)
复制代码
这样,KeilScript会自动记录变量x和y的值。

3. 调试脚本:
如果需要更复杂的监控,可以编写更复杂的KeilScript脚本,跟踪多个变量的值。

方法三:使用Python调试工具
1. 使用调试器:
在KEIL中运行Python脚本,运行调试器。
在调试器中,选择“调试”选项,然后选择“记录变量”或“记录值”。
这样,Python会自动记录变量x和y的值。

2. 使用调试脚本:
如果需要更复杂的监控,可以编写Python脚本,使用调试脚本,跟踪多个变量的值。

方法四:使用Python脚本的调试脚本
1. 安装Python脚本:
在KEIL中运行Python脚本,安装Python的调试工具。
如果Python未安装,请在KEIL中选择“Python”或“Python脚本”功能。

2. 编写Python脚本:
在KEIL中运行以下Python脚本,然后输入您需要监控的变量值:
   
  1. python
  2.      x = 100052
  3.      print(x)
  4.      y = 100054
  5.      print(y)
复制代码
这样,Python会自动记录变量x和y的值。

3. 调试脚本:
如果需要更复杂的监控,可以编写更复杂的Python脚本,跟踪多个变量的值。

方法五:使用Python脚本的调试脚本
1. 安装Python脚本:
在KEIL中运行Python脚本,安装Python的调试工具。
如果Python未安装,请在KEIL中选择“Python”或“Python脚本”功能。

2. 编写Python脚本:
在KEIL中运行以下Python脚本,然后输入您需要监控的变量值:
   
  1. python
  2.      x = 100052
  3.      print(x)
  4.      y = 100054
  5.      print(y)
复制代码
这样,Python会自动记录变量x和y的值。

3. 调试脚本:
如果需要更复杂的监控,可以编写更复杂的Python脚本,跟踪多个变量的值。

总结
在KEIL仿真中,使用Python脚本或KeilScript脚本进行程序调试,可以实现自动记录变量值的功能。此外,使用Python脚本的调试脚本或调试器,也能实现这一功能。根据您的具体需求,选择最适合的方法进行实现。

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:468
  • 最近打卡:2025-06-16 07:06:57
已绑定手机

79

主题

5131

回帖

9138

积分

超级版主

DebugLab

积分
9138
发表于 2025-5-19 15:16:16 | 显示全部楼层
断点处可以看,全速运行不能实时看
https://www.stcaimcu.com/thread-16535-1-1.html
仿真程序占用P3.0/P3.1口,但不占用串口1,用户程序可以将串口1切换到其它IO使用
仿真监控程序占用内部扩展RAM(XDATA)的最后768字节,程序使用XDATA+768字节不能大于芯片XDATA的容量
不能仿真时钟/复位相关的功能,例如程序里面不能修改系统时钟频率,不能开启看门狗,不能进入休眠/空闲模式
仿真通过P3.0/P3.1口与 KEIL 驱动进行通信,如P3.0/P3.1口数据受到干扰可能会导致仿真异常(如接触不良、P30/P31接了其他电路等)
单步仿真DPTR只能使用USB Link1D通过SWD仿真
使用USB或UART仿真,当停止运行用户代码时,定时器0~4会全部停止,此时和定时器相关的硬件都会停止,包括串口时钟、定时器中断、定时器时钟输出等
芯片的时钟不能在仿真时(Keil中)修改,只能在烧录时通过硬件选项设置
USB或UART仿真时,全速运行不能实时更新变量的值,因为USB或UART仿真是软件完成的,全速运行时CPU完全在执行用户程序,无法同时运行仿真程序,如此时运行仿真程序,就会影响用户程序的全速运行,所以不支持在全速运行时实时更新变量的值
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 13:17 , Processed in 0.175300 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表