CN / EN
文档反馈
感谢关注汇顶文档,期待您的宝贵建议!
感谢您的反馈,祝您愉快!
文档中心 > GR551x开发者指南/ 使用Keil开发调试/ 调试/ Mirror模式下的调试 Copy URL

Mirror模式下的调试

在Mirror模式下,开发者必须在Application Firmware被拷贝到RAM后设置Breakpoint。

说明:

如果Breakpoint被设置在RAM地址范围,Keil会使用Software Breakpoint以节省硬件资源(用BKPT指令替换原有指令)。开发者设置了Breakpoint之后,Bootloader拷贝Application Firmware到设置了Breakpoint的地址,该地址上的BKPT指令将会被Application Firmware覆盖,Application就无法停在该地址上。参考ARM Keil官方文档Breakpoints are not hit when debugging in RAM

开发者需要在Application的main()开始执行之前设置Breakpoint,具体设置方法如下:

  1. 在Application的main()的第一行加入__BKPT(X)。示例代码如下:
    int main(void)
    {
        __BKPT(0);
        app_periph_init();                /*<init user periph .*/
        …
  2. 点击Keil Toolbar的Build按钮完成代码编译链接。
  3. 点击Keil Toolbar的Start/Stop Debug Session按钮 ,开始调试。程序开始执行后,会停在__BKPT(0)
  4. 在Application中设置新的断点。
  5. F10(注意不是按F5)单步执行到下一条代码,然后开发者可以正常方式继续调试代码。
说明:

F10是只执行下一条代码行;按F5是执行所有剩余代码行。在遇到__BKPT的时候,Keil只能响应F10

扫描关注

打开微信,使用“扫一扫”即可关注。