keil断点加不了

编译之后才能加断点。

        keil调试心得:

1、调试是基于编译好的文件进行调试,keil调试之前,如果修改某些变量,需先编译在调试。

证明:我修改变量a,查看while(a--)计时时间(sec)不变,需编译后,再调试,计时时间改变 

2、while(a--),若a为unsigned  int 类型,a需小于65535,溢出之后,a=65535;unsigned long int a,同一a,while(a--)执行时间是unsigned  int 类型的两倍,原因:在51单片机里int 为2字节,long int 为4字节,long int 读取时间为int 的两倍。

事例:LED1秒亮1秒暗,用int类型的a =100000,结果溢出

### Keil断点的使用方法与调试技巧 #### 基础断点设置 在 Keil 的开发环境中,可以通过多种方式来设置基础断点。最常见的方式是在源代码行号前双击鼠标左键,在目标代码行上标记一个红色圆圈表示已成功设置断点[^2]。除此之外,还可以通过菜单栏中的 `Debug >> Insert/Remove Breakpoint` 或者快捷键 `F9` 来完成相同操作。 #### 高级断点功能 为了更高效地解决复杂问题,Keil 提供了一些高级断点功能: 1. **断点位置运行次数设置** 用户可以在特定条件下触发断点,例如当某段代码执行到指定次数时才暂停程序运行。这种技术特别适用于循环结构中需要观察某一具体迭代的情况[^1]。 2. **条件断点** 可以为断点条件表达式,只有满足该条件时才会触发断点停顿。这有助于精确定位某些特殊场景下的错误行为,比如某个变量达到特定值或者两个变量之间存在某种关系时停下检查状态[^3]。 3. **内存访问监控断点** 如果怀疑程序中有非法写入或其他形式的数据篡改发生,则可利用此类特性监视特定地址范围内的读取或修改动作。一旦检测到异常活动即刻中断以便进一步分析原因所在[^4]。 #### 辅助工具窗口 除了上述提到的各种类型的断点外,Keil 还提供了多个辅助性的视图帮助开发者更好地理解当前应用程序的状态变化过程: - **命令窗口**: 执行即时指令。 - **反汇编窗口**: 查看机器码级别上的转换情况。 - **符号窗口**: 实时跟踪所有定义过的全局局部对象数值更新状况;结合Watch列表能够更直观便捷地理清逻辑流程走向。 - **寄存器窗口**: 显示处理器内部各通用目的存储单元最新内容。 - **栈窗口**: 展现函数调用链条以及参数传递细节信息。 - **串口窗口&波形图窗口**: 对于通信协议解析或是硬件信号模拟测试场合尤为有用。 ```python # 示例:假设我们正在调试一段C语言嵌入式应用代码 void example_function(int count){ int i; for(i=0;i<count;i++){ if(i==5){ // 此处可以设置条件断点 "i == 5" printf("Reached iteration %d\n", i); } } } ``` 以上就是关于如何在Keil环境下有效地运用断点来进行软件开发期间的问题排查工作的一些介绍说明。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值