keil5中调试时设置断点出现灰色感叹号
在一定级别的优化之后,有些源程序代码行根本就没有对应的编译内容了,自然也就没办法打断点。 优化级别调高以后,调试的策略也要对应变化,以汇编代码段为准。 keil中调试的时候为什么不能设置断点了?? 双击无效!F无效如果你鼠标点中的代码被编译器优化掉,这样的代码在硬件中不存在(被优化掉了),所以打不上断点的.另外如果是断点个数超过硬件限制,一般会弹出一个提示断点个数过多的提示的.所以你要打断点的代码被优化的可能性比较大软件仿真时,预先设置的断点变成灰色惊叹号了,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条大神的评论 发表评论
keil5编译过的程序用keil4打不开,电脑装了两个版本keil,但是用了k5调试编译之后用k
既然你有两个版本,为什么要:keil5编译过的程序用keil4打开呢?就一直用keil5好了。 其实,你打开的是工程文件,是不兼容的,可是为什么非要打开工程文件呢?在keilf4中重新建一个工程,很简单的事,再把那些头文件,C程序等加到这个工程中就好了,多么简单的事呀。
用keil5 STM32F107系列芯片编译一个指令时提示错误为 A1105E: Area directive missing 怎么解决?
STM32调试过程中常见的问题及解决方法 一、 在“Debug选项卡”下设置好仿真器的类型后,下载程序时却提示“No ULINK Device found.”解决办法: Keil MDK默认使用ULINK仿真器下载程序,在“Project --->Option for Target xxx --->Utilities选项卡”下把编程所使用的仿真器改为相应的类型即可。 二、 编译工程时提示如下信息: Error: L6218E: Undefined symbol __BASEPRICONFIG (referred from stm32f10x_nvic.o): Error: L6218E: Undefined symbol __GetBASEPRI (referred from stm32f10x_nvic.o): Error: L6218E: Undefined symbol __RESETFAULTMASK (referred from stm32f10x_nvic.o): Error: L6218E: Undefined symbol __RESETPRIMASK (referred from stm32f10x_nvic.o): Error: L6218E: Undefined symbol __SETFAULTMASK (referred from stm32f10x_nvic.o): Error: L6218E: Undefined symbol __SETPRIMASK (referred from stm32f10x_nvic.o).解决办法:工程缺少“cortexm3_macro.s”文件,把cortexm3_macro.s和STM3210x.s全部添加到工程即可。 三、调试器不能连接到STM32的问题与解决办法很多人都碰到过调试器不能连接到STM32的问题,不管是IAR的J-Link还是Keil的ULink,或者是ST的ST-Link。 出现这个问题时,调试软件会提示不能建立与Cortex-M3的连接,或提示不能下载程序,或提示找不到要调试的设备等。 这样的问题都是发生在调试那些可以在CPU不干预的时候自动运行的模块、或在调试低功耗模式的程序的时候。 所谓“可以在CPU不干预的时候自动运行的模块”包括:DMA、定时器、连续转换模式下的ADC、看门狗等模块。 --------------------------------------------------------------------------------这个问题的根源是:1. 调试器需要在RAM内执行一段程序,对Flash进行擦写操作,如果不停止这些自动运行的模块,它们会干扰程序在RAM中的执行,致使下载失败。 比如DMA模块被配置为不停地拷贝一段数据区,而调试器刚好需要使用DMA数据传输的目标区域,这时DMA的操作将会与调试器的操作发生冲突。 再比如,如果启动了看门狗而没有执行硬件复位,则在下次调试器需要下载程序时,看门狗超时将触发芯片复位,导致下载操作失败。 2. 低功耗是通过停止CPU的时钟而实现,JTAG调试是通过与CPU的通信实现,停止了CPU的时钟致使调试器会失去与CPU的通信。
若对本页面资源感兴趣,请点击下方或右方图片,注册登录后
搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源
如有其他疑问,请咨询右下角【在线客服】,谢谢支持!
发表评论