感谢版主提供的文档,其中有相关的一些信息,基本上能解答我的疑问了。如果不使用虚拟的断点,各系列MSP430支持的断点数量不同,支持的断点类型也不同,有代码(code)断点,还有数据(data)断点,范围(range)断点等等。文档的第22页有个列表,列出了支持的断点数量。而data和range breakpoints各需要消耗2个硬件断点。而我一般设置断点都是在编辑框左侧双击得到的,应该是code断点吧,这个好像只需要占用1个硬件断点?这个有点疑问,还需要研究实验一下。
像我问题中描述的调试环境下,按复位出提示的情况,应该就是文档中提到的“Resetting a program temporarily requires a breakpoint if Project - Options - Debugger - Setup - Run To is enabled”。
另外,大家还可以参考一下IAR帮助里的“MSP430 Embedded Workbench User Guide”(打开的文档是IAR Embedded Workbench® IDE for MSP430 User Guide),对断点类型有详细解释。
前些天又试了下IAR,不使用软件断点,设置第2个硬件断点时,Debug Log窗口提示如下:
+ Tue Sep 18 18:04:24 2011: Failed to set hardware breakpoint. All available resources are already in use.
+ Tue Sep 18 18:04:24 2011: Virtual breakpoints can be enabled in Options dialog under Debugger->FET Debugger->Breakpoints
+ Tue Sep 18 18:04:24 2011: Failed to set breakpoint: Driver error.
只设一个断点,运行到断点暂停时,Debug Log提示: + Tue Sep 18 18:13:00 2011: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.% 看这提示,难道是堆栈不够导致第2个断点(语句断点)无法设置?这是个问题,需要继续研究研究:dizzy: 另外,之前提到的不撤去断点,调试模式下按复位按钮,提示如下: