这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
cc2640r2f:debugging [2017/08/31 16:30] 127.0.0.1 外部编辑 |
cc2640r2f:debugging [2021/06/22 23:14] (当前版本) |
||
---|---|---|---|
行 69: | 行 69: | ||
调试时,跳过计数和条件可以帮助跳过多个断点,或者只有在变量为特定值时才会中断。 | 调试时,跳过计数和条件可以帮助跳过多个断点,或者只有在变量为特定值时才会中断。 | ||
- | >注意: | + | >**注意**: |
- | >条件中断需要调试器响应,并且可能会使处理器长时间停止,以断开有源RF连接,否则会中断调试目标上的时序。 | + | |
## IAR中的断点 ## | ## IAR中的断点 ## | ||
要切换断点,请执行以下任何操作: | 要切换断点,请执行以下任何操作: | ||
行 93: | 行 94: | ||
调试时,跳过计数和条件可以帮助跳过多个断点,或者只有在变量为特定值时才会中断。 | 调试时,跳过计数和条件可以帮助跳过多个断点,或者只有在变量为特定值时才会中断。 | ||
- | >注意: | + | >**注意**: |
- | >条件中断需要调试器响应,并且可能会使处理器长时间停止,以断开有源RF连接,否则会中断调试目标上的时序。 | + | |
## 关于断点的注意事项 ## | ## 关于断点的注意事项 ## | ||
+ | |||
### 断点和时机 ### | ### 断点和时机 ### | ||
同步RF协议(如蓝牙低功耗协议)是时序敏感的,断点可以很容易地停止执行足够长的时间,从而失去网络时序并破坏链路。 | 同步RF协议(如蓝牙低功耗协议)是时序敏感的,断点可以很容易地停止执行足够长的时间,从而失去网络时序并破坏链路。 | ||
行 160: | 行 161: | ||
如`Debug Interfaces`中所述,DWT模块包含四个内存观察点,允许内存访问断点。硬件匹配功能仅在地址上。如果要用于变量,变量必须是全局变量。在IAR和CCS中使用观察点如下所述。 | 如`Debug Interfaces`中所述,DWT模块包含四个内存观察点,允许内存访问断点。硬件匹配功能仅在地址上。如果要用于变量,变量必须是全局变量。在IAR和CCS中使用观察点如下所述。 | ||
- | >注意: | + | >**注意**: |
- | >如果使用值匹配的数据观察点,则使用四个观察点中的两个。 | + | |
### CCS中的观察点 ### | ### CCS中的观察点 ### | ||
行 221: | 行 221: | ||
**stackPeak** | **stackPeak** | ||
该列显示了基于RAM中起始位置运行时使用的最大堆栈内存,其中堆栈以0xBE预填充,并且在运行时堆栈的末尾有一个哨兵字。 | 该列显示了基于RAM中起始位置运行时使用的最大堆栈内存,其中堆栈以0xBE预填充,并且在运行时堆栈的末尾有一个哨兵字。 | ||
- | >注意: | + | >**注意**: |
- | >函数调用可能会将堆栈指针推出运行时堆栈,但实际上并不写入整个区域。stackSize附近的堆栈峰值不超过它可能表示堆栈溢出。 | + | |
**stackSize** | **stackSize** | ||
此列显示在实例化任务时配置的运行时堆栈的大小。 | 此列显示在实例化任务时配置的运行时堆栈的大小。 | ||
行 276: | 行 276: | ||
* 在IAR中:View -> Watch -> Watch 1,add `HEAPMGR_SIZE` | * 在IAR中:View -> Watch -> Watch 1,add `HEAPMGR_SIZE` | ||
* 在CCS调试会话中:View -> Expressions,添加 `HEAPMGR_SIZE` | * 在CCS调试会话中:View -> Expressions,添加 `HEAPMGR_SIZE` | ||
- | >注意: | + | >**注意**: |
- | >自动堆大小功能不能确定应用程序所需的堆数量。系统设计人员必须确保堆具有满足应用程序运行时内存需求所需的空间。 | + | |
> | > | ||