keil5无法设置断点(keil设置断点后怎么继续执行)

keil中调试的时候为什么不能设置断点了?? 双击无效!F无效

如果你鼠标点中的代码被编译器优化掉,这样的代码在硬件中不存在(被优化掉了),所以打不上断点的.

另外如果是断点个数超过硬件限制,一般会弹出一个提示断点个数过多的提示的.所以你要打断点的代码被优化的可能性比较大.

keil在调试的时候在某个文件中的任意行都不能设置断点?

机器代码的程序中找不到A.c的编译结果,看看A.c有没有加到工程中,编译器的设置有没有问题。

请教:为什么keil c51 中不能设断点

keil优化的问题,设置断点的程序段被keil优化掉了,详见keil优化级别说明

级别

说明

常数合并:编译器预先计算结果,尽可能用常数代替表达式。包括运行地址计算。

优化简单访问:编译器优化访问8051系统的内部数据和位地址。

跳转优化:编译器总是扩展跳转到最终目标,多级跳转指令被删除。

1

死代码删除:没用的代码段被删除。

拒绝跳转:严密的检查条件跳转,以确定是否可以倒置测试逻辑来改进或删除。

2

数据覆盖:适合静态覆盖的数据和位段被确定,并内部标识。bl51连接/定位器可以通

过全局数据流分

,选择可被覆盖的段。

3

窥孔优化:清除多余的mov指令。这包括不必要的从存储区加载和常数加载操作。当存

储空间或执行时间可节省时,用简单操作代替复杂操作。

4

寄存器变量:如有可能,自动变量和函数参数分配到寄存器上。为这些变量保留的存

储区就省略了。

优化扩展访问:idata、xdata、pdata和code的变量直接包含在操作中。在多数时间没

必要使用中间寄存器。

局部公共子表达式删除:如果用一个表达式重复进行相同的计算,则保存第一次计算

结果,后面有可能就用这结果。多余的计算就被删除。

case/switch优化:包含switch和case的代码优化为跳转表或跳转队列。

5

全局公共子表达式删除:一个函数内相同的子表达式有可能就只计算一次。中间结果

保存在寄存器中,在一个新的计算中使用。

简单循环优化:用一个常数填充存储区的循环程序被修改和优化。

6

循环优化:如果结果程序代码更快和有效则程序对循环进行优化。

7

扩展索引访问优化:适当时对寄存器变量用dptr。对指针和数组访问进行执行速度和

代码大小优化。

8

公共尾部合并:当一个函数有多个调用,一些设置代码可以复用,因此减少程序大小

9

公共块子程序:检测循环指令序列,并转换成子程序。cx51甚至重排代码以得到更大的循环序列。

keil 不能设置断点

我也遇到过,把Flash-Configure Flash Tools-Debug-BreakPoints选项关掉,点击OK,然后再进入刚才的菜单,把选项打开,OK,就OK了!

keil4 程序的某行断点怎么设置 双击程序所在行没反应啊

在Keil5的魔法棒里的output里,把Debug的相关设置勾选,即可在调试状态下

双击程序设置断点。

361知讯网

本文链接:http://pdidw.com/keil/30644.html

发表评论

评论列表

还没有评论,快来说点什么吧~