|
FireBLE QN902x SWD JATG 调试不了 解决贴
发表于 2015-6-4 14:37:12
浏览:11132
|
回复:6
打印
只看该作者
[复制链接]
楼主
本帖最后由 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下:
追踪 CFG_SWD
- #if (defined(CFG_SWD))
- #define FB_SWD 1
- #else
- #define FB_SWD 0
- #endif
复制代码 全局搜索 FB_SWD 可得配置code 如下
- #if !(FB_SWD)
- | P06_GPIO_6_PIN_CTRL
- | P07_GPIO_7_PIN_CTRL
- #else
- | P06_SW_DAT_PIN_CTRL
- | P07_SW_CLK_PIN_CTRL
- #endif
复制代码
在确定 P06、P07 的复用都配置为SWD 之后重新编译,通过ISP重新下载后即可使用JTAG 仿真调试。
|
|