keil c51 断点不能设置?
发布网友
发布时间:2022-05-21 08:00
我来回答
共2个回答
热心网友
时间:2023-10-19 23:03
keil优化的问题,设置断点的程序段被keil优化掉了,详见keil优化级别说明
级别 说明
0 常数合并:编译器预先计算结果,尽可能用常数代替表达式。包括运行地址计算。
优化简单访问:编译器优化访问8051系统的内部数据和位地址。
跳转优化:编译器总是扩展跳转到最终目标,多级跳转指令被删除。
1 死代码删除:没用的代码段被删除。
拒绝跳转:严密的检查条件跳转,以确定是否可以倒置测试逻辑来改进或删除。
2 数据覆盖:适合静态覆盖的数据和位段被确定,并内部标识。BL51连接/定位器可以通
过全局数据流分 ,选择可被覆盖的段。
3 窥孔优化:清除多余的MOV指令。这包括不必要的从存储区加载和常数加载操作。当存
储空间或执行时间可节省时,用简单操作代替复杂操作。
4 寄存器变量:如有可能,自动变量和函数参数分配到寄存器上。为这些变量保留的存 储区就省略了。
优化扩展访问:IDATA、XDATA、PDATA和CODE的变量直接包含在操作中。在多数时间没
必要使用中间寄存器。
局部公共子表达式删除:如果用一个表达式重复进行相同的计算,则保存第一次计算
结果,后面有可能就用这结果。多余的计算就被删除。
Case/Switch优化:包含SWITCH和CASE的代码优化为跳转表或跳转队列。
5 全局公共子表达式删除:一个函数内相同的子表达式有可能就只计算一次。中间结果
保存在寄存器中,在一个新的计算中使用。
简单循环优化:用一个常数填充存储区的循环程序被修改和优化。
6 循环优化:如果结果程序代码更快和有效则程序对循环进行优化。
7 扩展索引访问优化:适当时对寄存器变量用DPTR。对指针和数组访问进行执行速度和 代码大小优化。
8 公共尾部合并:当一个函数有多个调用,一些设置代码可以复用,因此减少程序大小 。
9 公共块子程序:检测循环指令序列,并转换成子程序。Cx51甚至重排代码以得到更大的循环序列。
热心网友
时间:2023-10-19 23:03
我也曾遇到过这个只能反汇编能设置,后来发现自己用的版本u2太低。更换成u4后就可以了,你可以试试
keil c51 断点不能设置?
keil优化的问题,设置断点的程序段被keil优化掉了,详见keil优化级别说明 级别 说明 0 常数合并:编译器预先计算结果,尽可能用常数代替表达式。包括运行地址计算。优化简单访问:编译器优化访问8051系统的内部数据和位地址。跳转优化:编译器总是扩展跳转到最终目标,多级跳转指令被删除。1 死代码删除...
在keil c51环境下如何设置和删除断点?在计算机上实现
鼠标在需要设置断点的行点击一下,光标在该行,按F9可以设置断点,再按F9取消断点。
keil c 的断点设置问题。
你在已经设置过断点的地方由设置了一次,就会出现这个。设置断点的时候,在语句的最左边显示灰色的那一列上单击就行。设置的断点当你打开debug菜单的breakpoints选项后会在对话框里显示。如果你并没有设置断点或已经清除了断点,结果还是出现这个,只好清除所有断点,重新编译程序,再重新设置了。 本回答由提问者推荐 举报| ...
keilC51的程序仿真中,当程序运行起来后,在打断点可以停住吗?
断点设在哪儿,全速运行的时候就会停在哪儿!如果程序一直停不下来,说明在设置断点之前就进死循环了!那就多设几个断点看看哪儿出问题了!请采纳!
关于C51单片机单片机的几个问题
--51 单片机里面,确实没有 PC 的地址,因为,谁都不需要这个地址。4、MOV 20H,@DPTR 这个语句错了是因为DPTR只能用于片外寻址么 --这个指令,并不存在。DPTR只能用于片外寻址么 --查一下指令表,就知道了。5、”80C51单片机子程序调用时能自动保护断点和现场“,这句话错了是不是因为只能...
keil不更新程序调试
因为在编译优化之后,该行并没有对应的唯一代码。并不是不执行,而是编译器没法放一个针对该行语句的断点。keil c51问题,那程序前面没有绿色的代表没有执行吧,为什么调试不执行,实际会不会执行呢~~!?可能是优化导致程序的运行过程与你的源代码并不能严格对应。你可以查看生成的汇编,应当是符合你的...
51单片机有多少个中断源?
1)中断允许控制寄存器(IE)--- 控制各中断的开放和屏蔽 2)中断优先级控制寄存器(IP)---设置各中断的优先级 3)定时器/计数器控制寄存器(TCON)---定时器和外部中断的控制 4)串行口控制寄存器(SCON)---串行中断的控制 中断类型分为三类:1)T0、T1是2个定时器/计数器中断,由片内定时器...
c51单片机中断程序中的interrupt1,2,3是由什么决定的?
PCI等中断,具体看单片机的资料。Proteus 自从有了单片机也就有了开发系统,随着单片机的发展开发系统也在不断发展。 keil是一种先进的单片机集成开发系统。它代表着汇编语言单片机开发系统的最新发展,首创多项便利技术,将开发的编程/仿真/调试/写入/加密等所有过程一气呵成,中间不须任何编译或汇编。
keil里面的debug没有proteus VSm simulator
Files\keilC\C51\TOOLS.INI文件(这里的TOOLS.INI文件可能不在c51目录下,但一定在keil的安装目录下,找一找),在[C51]栏目下加入:TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver")其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复。(步骤1和2只需在初次使用设置。)...
keilc51使用的字节范围是多少?
在keil C51或者iar for c8051编译器下:一、int 占两个字节 范围:-32768~+32767 二、long占四个字节 范围:-2147483648~+2147483647 三、float占四个字节 范围:3.40E+38 ~ +3.40E+38 四、double占8个字节 范围:-1.79E+308 ~ +1.79E+308 51单片机是对所有兼容Intel 8031指令系统的单片机的...