FR8018HA JLINK MDK5在线调试老是断开



  • 使用JLINK OB V2断点单步调试程序,但是单步执行老是断,
    大家有没有遇到这样的情况,很头痛,不能友好的调试代码,严重影响效率;

    JLINK 输出信息:
    **JLink Warning: CPU could not be halted
    ***JLink Error: Can not read register 15 (R15) while CPU is running
    ***JLink Error: Can not read register 16 (XPSR) while CPU is running
    ***JLink Error: Can not read register 0 (R0) while CPU is running
    ***JLink Error: Can not read register 1 (R1) while CPU is running
    ***JLink Error: Can not read register 2 (R2) while CPU is running
    ***JLink Error: Can not read register 3 (R3) while CPU is running
    ***JLink Error: Can not read register 4 (R4) while CPU is running
    ***JLink Error: Can not read register 5 (R5) while CPU is running
    ***JLink Error: Can not read register 6 (R6) while CPU is running
    ***JLink Error: Can not read register 7 (R7) while CPU is running
    ***JLink Error: Can not read register 8 (R8) while CPU is running
    ***JLink Error: Can not read register 9 (R9) while CPU is running
    ***JLink Error: Can not read register 10 (R10) while CPU is running
    ***JLink Error: Can not read register 11 (R11) while CPU is running
    ***JLink Error: Can not read register 12 (R12) while CPU is running
    ***JLink Error: Can not read register 13 (R13) while CPU is running
    ***JLink Error: Can not read register 14 (R14) while CPU is running
    ***JLink Error: Can not read register 15 (R15) while CPU is running
    ***JLink Error: Can not read register 16 (XPSR) while CPU is running
    ***JLink Error: Can not read register 17 (MSP) while CPU is running
    ***JLink Error: Can not read register 18 (PSP) while CPU is running
    ***JLink Error: Can not read register 20 (CFBP) while CPU is running

    硬件连接:
    VCC GND SWD CLK

    代码中已经屏蔽了相关patch:
    #if 0
    [4] = {
    .patch_pc = 0x00004aae,
    .replace_function = frspim_rd,
    },
    [3] = {
    .patch_pc = 0x00004b02,
    .replace_function = frspim_wr,
    },

    0_1665366786179_111.png



  • 单步调试时注意 底层射频部分不能用单步调试.
    FR8010H.FLM 是什么时候的?



  • @刘流鎏
    有没有看门狗? 连接线过长?



  • @刘流鎏
    感谢回复,debug的是自己的代码部分,
    FR8010H.FLM 用比较工具确认了一下是git上sdk中最新的版本



  • @刘流鎏FR8018HA JLINK MDK5在线调试老是断开 中说:

    连接线过长,或者接触不良?



  • @刘流鎏
    好的 我关闭看门狗好了很多,对于连接线 我后续看看。

    顺便请教一个问题,栈空间大小如何修改?

    按照我的理解:

    1. 系统栈主要应该是用于中断的嵌套,一般在.s启动文件中配置,
      在8018HA的SDK中,我发现app_boot_vector.s中“;Stack_Size EQU 0x280 ;0x00000400 ”是注释掉的,
      并且没有 “Heap_Mem SPACE Heap_Size”分配栈空间的指令;
    1. 任务栈,底层应该是个FreeRTOS,那么任务栈是从堆空间分配的,
      那么我是否可以通过FreeRTOSConfig.h中
      #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 17 * 1024 ) ) 来修改;

    对于我们的应用,基本使用os_timer 和os_task,
    现在遇到一些偶发的奇怪问题,现在分析怀疑可能在某些情况下可能调用过深;
    所以想了解SDK中的栈是如何配置分配的,谢谢~



  • @kkFR8018HA JLINK MDK5在线调试老是断开 中说:

    K中

    堆栈的配置参照http://www.freqchip.net/topic/599/%E7%8E%B0%E8%B1%A1-%E5%BC%82%E5%B8%B8%E5%8F%91%E7%94%9Fcrash-dump-regs-pc-0xa506-%E7%8E%B0%E8%B1%A1%E8%BE%83%E5%BC%82%E5%B8%B8-%E6%9C%89%E5%AE%9A%E6%97%B6%E5%99%A8%E6%8C%82%E4%BA%86-%E4%B9%9F%E6%9C%89%E7%9B%B4%E6%8E%A5crash%E5%90%8E%E6%8C%82%E8%B5%B7%E7%9C%8B%E9%97%A8%E7%8B%97%E6%97%A0%E6%B3%95%E9%87%8D%E5%90%AF-%E4%B9%9F%E6%9C%89%E7%9B%B4%E6%8E%A5crash%E5%90%8E%E9%87%8D%E5%90%AF





  • @刘流鎏 好的 谢谢~