硬汉嵌入式论坛

 找回密码
 立即注册
查看: 474|回复: 7
收起左侧

[MDK] Keil5调试仿真观察数组波形(UVSOCK)

[复制链接]

86

主题

441

回帖

719

积分

金牌会员

积分
719
QQ
发表于 2025-5-20 16:56:41 | 显示全部楼层 |阅读模式
本帖最后由 雷鹏 于 2025-5-22 10:20 编辑

在嵌入式开发领域,Keil μVision5(通常简称为Keil5)是一款广泛使用的集成开发环境(IDE),尤其适用于基于ARM架构的微控制器。它不仅提供了代码编辑、编译、链接和调试等基本功能,还具备了丰富的调试工具,如波形观察功能。在本文中,我们将深入探讨如何在Keil5中使用KeilWave进行波形观察,特别是针对数组波形的双波形显示。
理解KeilWave的概念。KeilWave是Keil5内置的一种高级调试工具,它允许开发者实时查看和分析变量的变化,特别是对于模拟信号或者数字信号的数组形式表示,能够帮助我们更好地理解和调试程序中的信号处理部分。通过波形显示,我们可以直观地看到程序运行过程中数组元素的动态变化,这对于理解和优化数字信号处理算法非常有帮助。
要使用KeilWave观察数组波形,首先需要在源代码中设置断点,并确保数组变量已经被定义和初始化。然后,启动Keil5的调试模式。在调试界面,选择“View”菜单,接着选择“Watch”或“Variables”选项,这将打开一个窗口显示当前执行上下文中的变量。
在Watch窗口中,手动输入或通过右键菜单选择要观察的数组变量。一旦程序运行到断点,数组的值会自动更新并显示在波形图上。Keil5支持多种波形显示方式,包括线性、半对数和对数刻度,可以根据实际需求选择合适的显示模式。
关于“双波形显示”,在Keil5中,你可以同时观察两个不同的波形,这对于对比分析不同信号或者验证两个数组之间的同步至关重要。只需在Watch窗口中添加第二个数组变量,然后选择“Split View”或者拖动分隔条,就可以实现双波形的并排显示。这样,你可以同时看到两个数组的变化,方便进行比较和分析。
在实际应用中,KeilWave的波形观察功能还可以与硬件调试器配合使用,例如J-Link或ST-Link,以获取更精确的硬件级调试信息。此外,Keil5还支持自定义波形颜色和缩放级别,以便于在复杂的系统中识别和追踪特定信号。
总结起来,KeilWave是Keil5中强大的调试工具,它为开发者提供了一种直观的方式去观察和分析数组型变量的波形变化,尤其是支持双波形显示,大大提高了调试效率和问题定位的准确性。通过熟练掌握这一功能,开发者可以更好地理解和优化其嵌入式系统中的信号处理算法。

4.png




1.Keil uVision5 的菜单栏中 Edit->Configuration...->Other 中将 UVSOCK 使能 Enabled 勾选。




1.png

2.png



2.Keil uVision5 工程中定义数组 testdatabuf1testdatabuf2,并赋值。

[C] 纯文本查看 复制代码
#define BUF LEN 5O
unsigned int testdatabufl[BUF LEN];
unsigned int testdatabuf2[BUF EN];
int main(void)[/size][/font][font=ff2][size=41.8px]
[/size][/font][font=Tahoma][size=2]{
  int i=0;
  RCC Configuration();
  for(i=0;i<BUF LEN;i++)
  {
    testdatabufl[i]=i%10;
    testdatabuf2[i]=i%15;
  }
  while (1);
}



软件分享给大家
KeilWave_V10.zip (1.28 MB, 下载次数: 23)




端口号 默认 4823
通过wireshark抓取到的报文内容


3.png






UVSOCK(TCP/IP) 通讯报文截取


上位机软件发送  testdatabuf1.

3e 00 00 00 0a 20 00 00 1e 00 00 00 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0d 00 00 00 20 74 65 73 74 64 61 74 61 62 75 66 31 00         
         
回复
46 00 00 00 00 30 00 00 26 00 00 00 5a e7 73 11 00 00 00 00 0d 4e e9 05 44 85 e3 3f 00 00 00 00 0a 20 00 00 00 00 00 00 0c 00 00 00 00 c0 00 20 00 00 00 00  0e 00 00 00 20 74 65 73 74 64 61 74 61 62 75 66   31 00                              
发送
39 00 00 00   0b 20 00 00 19 00 00 00 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00 00 00 00 00 00 c0 00 20  00 00 00 00 00 10 00 00 00 00 00 00 00 00 00 00   00 00 00 00 00     


                     
返回的波形数据
一共4160字节数据  这里就省略了


最后  有兴趣的朋友可以研究一下。








PS 我在官网上找到相关资料了
https://developer.arm.com/documentation/kan198/1-1/?lang=en










































武汉天纵鹏元科技有限公司。承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ  408137104
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 2025-5-21 07:12:56 | 显示全部楼层
谢谢分享
回复

使用道具 举报

82

主题

510

回帖

756

积分

金牌会员

积分
756
发表于 2025-5-21 10:23:20 | 显示全部楼层
感觉还是jscope好点
回复

使用道具 举报

86

主题

441

回帖

719

积分

金牌会员

积分
719
QQ
 楼主| 发表于 2025-5-21 15:26:14 | 显示全部楼层

这个只需要在程序里面定义一个数组了  就可以直接读取了,可以读取两个波形
武汉天纵鹏元科技有限公司。承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ  408137104
回复

使用道具 举报

354

主题

2171

回帖

3238

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3238
发表于 2025-5-21 16:24:17 | 显示全部楼层
你这个软件写死了,只能监测的数组名字为testdatabuf1 吗?》
回复

使用道具 举报

82

主题

510

回帖

756

积分

金牌会员

积分
756
发表于 2025-5-21 17:19:34 | 显示全部楼层
本帖最后由 tangqianfeng 于 2025-5-21 17:21 编辑
雷鹏 发表于 2025-5-21 15:26
这个只需要在程序里面定义一个数组了  就可以直接读取了,可以读取两个波形

如果速率不高,jscope HSS模式可以实时读取所有全局变量,不需要移植代码
回复

使用道具 举报

86

主题

441

回帖

719

积分

金牌会员

积分
719
QQ
 楼主| 发表于 2025-5-22 08:37:22 | 显示全部楼层
caicaptain2 发表于 2025-5-21 16:24
你这个软件写死了,只能监测的数组名字为testdatabuf1 吗?》

是的  要是把通讯协议弄到了 可以自己写个上位机 做测试
武汉天纵鹏元科技有限公司。承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ  408137104
回复

使用道具 举报

86

主题

441

回帖

719

积分

金牌会员

积分
719
QQ
 楼主| 发表于 2025-5-22 08:38:30 | 显示全部楼层
tangqianfeng 发表于 2025-5-21 17:19
如果速率不高,jscope HSS模式可以实时读取所有全局变量,不需要移植代码

把通讯协议弄到了 可以在网络调试助手上测试  甚至可以自己写一个上位机程序  把数据读出来 保存自己想要的格式文件
武汉天纵鹏元科技有限公司。承接嵌入式项目开发,相关技术交流。STM32,物联网,工业控制方向。QQ  408137104
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-9 23:49 , Processed in 0.285819 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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