CCS在线调试时实时修改变量值

2024-04-14 14:36

本文主要是介绍CCS在线调试时实时修改变量值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  在使用CCS调试dsp芯片时,发现CCS软件有一个非常好的功能,在仿真调试的时候可以实时修改代码中变量的值。这个功能在调试switch语句的时候非常好用,比如想要执行哪个case语句,直接在仿真界面里面修改switch语句入口参数就行。
  话不多说,直接上代码演示。

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#include "leds.h"int i=0,j=0;void main()
{InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();LED_Init();while(1){i=j;}
}

  先用一个简单的功能来演示,主代码就执行一条语句 将j的值赋给i,按照正常逻辑来讲,这个i的值永远都是0。但是在这里就是见证奇迹的时刻了。直接仿真运行代码。

  进入仿真界面后再i变量上单击鼠标右键,选择添加到观察窗口。同样的方法也将j的值添加到观察从窗口。
在这里插入图片描述
然后再右边窗口中选中实时刷新按钮。
在这里插入图片描述
接着在变量观察窗口i上面鼠标右键,选择Graph
在这里插入图片描述
变量i的值,就会以曲线的形式在下面绘制出来。
在这里插入图片描述
在新打开的图像绘制窗口上也要选中实时刷新按钮。
在这里插入图片描述

全速运行程序
在这里插入图片描述
这时候i的值显示为一条直线,下面直接在变量观察窗口修改j的值。
在这里插入图片描述

  鼠标单击value框,直接将值修改为10,然后按回车键,此时就会发现i的值也变成了10。接着继续修改j的值,从10依次减小到1。这时候底下的曲线也会依次绘制出i值变化的曲线。
在这里插入图片描述

  这样在不用修改程序的情况下,代码持续运行的过程中可以随时修改变量值,给调试程序带来了极大地便利性。
随便修改j的值看看效果。

在这里插入图片描述

接下来使用switch语句来控制几路LED灯看看效果。

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"   // DSP2833x Examples Include File#include "leds.h"int value;void main()
{InitSysCtrl();InitPieCtrl();IER = 0x0000;IFR = 0x0000;InitPieVectTable();LED_Init();while(1){switch(value){case 10:  LED1_OFF; break;case 11:  LED1_ON; break;case 20:  LED2_OFF; break;case 21:  LED2_ON; break;case 30:  LED3_OFF; break;case 31:  LED3_ON; break;case 40:  LED4_OFF; break;case 41:  LED4_ON; break;case 50:  LED5_OFF; break;case 51:  LED5_ON; break;default:break;}}
}

通过switch语句中的value值控制LED的亮灭,其中LED的端口控制使用宏定义的方式。

#define LED1_OFF		(GpioDataRegs.GPCSET.bit.GPIO68=1)
#define LED1_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO68=1)
#define LED1_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO68=1)#define LED2_OFF		(GpioDataRegs.GPCSET.bit.GPIO67=1)
#define LED2_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO67=1)
#define LED2_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO67=1)#define LED3_OFF		(GpioDataRegs.GPCSET.bit.GPIO66=1)
#define LED3_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO66=1)
#define LED3_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO66=1)#define LED4_OFF		(GpioDataRegs.GPCSET.bit.GPIO65=1)
#define LED4_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO65=1)
#define LED4_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO65=1)#define LED5_OFF		(GpioDataRegs.GPCSET.bit.GPIO64=1)
#define LED5_ON			(GpioDataRegs.GPCCLEAR.bit.GPIO64=1)
#define LED5_TOGGLE		(GpioDataRegs.GPCTOGGLE.bit.GPIO64=1)

  开始调试程序,按照上面的方法将变量value的值添加到变量观测窗口,同时也将value的值添加到图形显示中。
在这里插入图片描述
为了更清晰的看到LED端口的变化,将GPIO数据寄存器也添加到变量观察窗口中。

在这里插入图片描述

  将数据寄存器展开,LED主要在GPIOC口的64–68,默认情况下端口值都为1,将变量value的值直接修改为11,点亮LED1。

在这里插入图片描述

当value的值修改为11时,可以看到GPIO68的值由1变为了0。

依次点亮所有的LED,此时在电路板上也可以看到LED依次点亮,然后依次熄灭。

在这里插入图片描述

  通过这种直接在观察窗口修改变量值的方法,测试程序的时候就方便多了。不用修改一次变量值就要调试一次。

请添加图片描述

  当然不仅switch语句可以使用,其他情况下也能使用。比如调试通信协议的时。当接收到不同的指令就需要执行不同的代码,通常情况下需要外部给单片机发送命令,单片机接收到命令后再执行相关函数。这样调试起来比较浪费时间,而且比较麻烦。通过使用这种方法,直接在观察窗口中修改指令,就可以执行对应的函数。

这篇关于CCS在线调试时实时修改变量值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/903249

相关文章

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

电力系统中的A类在线监测装置—APView400

随着电力系统的日益复杂和人们对电能质量要求的提高,电能质量在线监测装置在电力系统中得到广泛应用。目前,市场上的在线监测装置主要分为A类和B类两种类型,A类和B类在线监测装置主要区别在于应用场景、技术参数、通讯协议和扩展性。选择时应根据实际需求和应用场景综合考虑,并定期维护和校准。电能质量在线监测装置是用于实时监测电力系统中的电能质量参数的设备。 APView400电能质量A类在线监测装置以其多核

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode