Firefly开源社区

标题: FireBLE QN902x SWD JATG 调试不了 解决贴 [打印本页]

作者: FireBLE_blue    时间: 2015-6-4 14:37
标题: FireBLE QN902x SWD JATG 调试不了 解决贴
本帖最后由 FireBLE_blue 于 2015-6-4 14:41 编辑

不少用FireBLE 的用户以及网络上的用户都遇到一个问题,jlink,stlink等JTAG仿真器连接QN902x 的FireBLE开发板上是不能识别,导致不能单步调试。
如果你也遇到同样的问题,别认为你把板子搞废了,或者板子本身有问题,请尝试本帖方式解决。

遇到JTAG不能识别的问题,一般都是JTAG 口复用的问题,由于QN902x 本身IO 口并不多,很多情况下会选择IO复用,如果你前面的烧录的bin把JTAG 功能的SWD接口所占用的IO口复用成了其他功能,那么就会导致JTAG不能识别,导致不能仿真。所以对症下药,如果你需要仿真功能,那么就应该把JTAG 所对应的IO 复用为JTAG 功能。

QN902x 的JTAG使用的是SWD接口,只有2个信号线,分别为SWDIO/P0_6、SWCLK/P0_7.要把它们都配置为SWD所用,QN902x 所供的SDK 其实是提供了宏作为开关 在usr_config.h下:

  1. #define  CFG_SWD
复制代码
追踪 CFG_SWD

  1. #if (defined(CFG_SWD))               
  2.         #define        FB_SWD                        1
  3. #else
  4.         #define        FB_SWD                        0
  5. #endif
复制代码
全局搜索 FB_SWD 可得配置code 如下

  1. #if !(FB_SWD)
  2.         | P06_GPIO_6_PIN_CTRL
  3.         | P07_GPIO_7_PIN_CTRL
  4. #else
  5.         | P06_SW_DAT_PIN_CTRL
  6.         | P07_SW_CLK_PIN_CTRL
  7. #endif
复制代码

在确定 P06、P07 的复用都配置为SWD 之后重新编译,通过ISP重新下载后即可使用JTAG 仿真调试。

作者: 暴走的阿Sai    时间: 2015-6-5 14:49
支持原创
作者: lovefirstly    时间: 2015-6-5 15:17
恩,学习了。
作者: Asia003    时间: 2015-8-21 14:56
比之前那个帖子讲解jink要好!
作者: Goshawk    时间: 2016-3-22 11:07
楼主,为什么在FireBLE提供的源码下面,没有在use_config.h中搜索到CFG_SWD,FB_SWD,只找到CFG_SW_DEBUG宏,求解。PS,不管QBLUE或者bitbucket下面都没有
作者: Goshawk    时间: 2016-3-23 09:19
Goshawk 发表于 2016-3-22 11:07
楼主,为什么在FireBLE提供的源码下面,没有在use_config.h中搜索到CFG_SWD,FB_SWD,只找到CFG_SW_DEBUG宏, ...

已经解决
作者: 蓝海    时间: 2016-3-31 13:23
在FireBLE 板子上,LED2 LED3 复用了P06 P07 ,\src\qnevb\led.h有说明。




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1