请教:为什么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甚至重排代码以得到更大的循环序列。
keil4调试时出现的是c语言+反汇编语言 但c语言不能设置断点?
你看看优化选项,你要调试的话设置为不优化或者最低优化,还有就是汇编和c都在一个c文件中的话也可能出现这个问题,要是还是不行你就把你要打断点的c语句剪切到另外一个c文件中去。
keil中调试的时候为什么不能设置断点了?? 双击无效!F无效
当仿真的机内码程序与源程序不能对应时,会出现无法设置和取消断点的情况。
在keil下用ulink2调试能够单步运行但是为什么不能设置断点
有两点需注意:
有些地方是不能打断点(如:变量定义处)。
代码优化之后,有些地方不会执行,所以不能断点。
Keil系列教程:
求教STM32调试,keil4 MDK不能在C语言中设置断点的问题
不能设置断点,有很多原因
比如,你的程序不会运行到你要设置断点的地方,你的编译器开了比较高的优化等,试试这两个方向查查原因!
keil5中调试时设置断点出现灰色感叹号
在一定级别的优化之后,有些源程序代码行根本就没有对应的编译内容了,自然也就没办法打断点。
优化级别调高以后,调试的策略也要对应变化,以汇编代码段为准。
keil中调试的时候为什么不能设置断点了?? 双击无效!F无效
如果你鼠标点中的代码被编译器优化掉,这样的代码在硬件中不存在(被优化掉了),所以打不上断点的.
另外如果是断点个数超过硬件限制,一般会弹出一个提示断点个数过多的提示的.所以你要打断点的代码被优化的可能性比较大.
keil软件仿真时,预先设置的断点变成灰色惊叹号了,run的时候跳不到断点上来了。
你这根本没有成功地进行软仿……
注意 Command 窗口的致命错误提示:代码大小超出了(评估版的)限制。所以你的程序根本没法编译,没法编译也就没法加载进行调试。
keil5仿真没有设置断点,然后程序也会停止?
你是不是点的debug下载?
在像IAR和eclipse里分为debug和release这两个不同的区别。
一、前者debug的状态下下载程序话,如果没有将“断点完全删除”并且“再一次重新编译”那么就会出现停止的状态。不保证,不排除还有其它细节设置问题。如果排除问题的话,用bat命令删除全部缓存,全部重新编译。
二、如果另外出现程序错误的话,也同样会出现程序停止的情况。这个一般是触及到了中断,一直卡在中断里。
三、硬件问题,你用的stm32f1,检查一下jlink引脚,boot引脚,复位是否被其它占用(硬件上,软件上没设置)。检查该几个引脚电平状态,建议拿示波器看。
四、如果以上都没问题,重建工程,一行一行来。
#keil5在线调试看不到断点
上一篇
一块单片机能否单独工作_一块单片机能否单独工作一台电脑
下一篇
keil5的功能和优点_keil5功能介绍
相关文章
keil5每次都重新编译_keil怎么重新编译
keil怎么加芯片_keil怎么更换芯片型号
怎么把pack文件加入keil_pack怎么用
用keil5编写流水灯程序使偶数盏灯亮_流水灯的keil代码讲解
0条大神的评论
发表评论