[原创] 蓝牙DIY——UART调试与RTT调试
1614 查看
7 回复
 楼主 | 发布于 2019-07-09 | 只看楼主
分享到:

这次介绍下NRF的调试工具,我们在编程中,总是不可避免的会出现各种各养的Bug,这就需要调试工具,帮助我们一步一步的找到问题的所在。

         通常如果插上调试器且使用IDE的时候,可以使用IDE的变量查看功能,例如IARwatchlive watch,前者可以查看局部和全局变量,后者可以实时查看全局变量。但是如果没有接仿真没使用IAR,那么通常的办法就是使用串口调试了,在关键代码或者在出问题处打印出关键信息。NRFSDK有非常的完善的UARTRTT调试的功能。

RTTReal-Time Transfer)并不是NRF提出来的,是制作JlinkSEGGER公司弄出来的,这家公司还有很多黑科技,比如有自己的IDE,有J-Scope查看波形软件等等的。RTT详细介绍见官网介绍

    RTT是通过J-link SW接口将CPU与电脑进行连接,最高可达到1M/s的传输速度。


RTT可以通过不同通道,不同颜色的显示信息,具备收发功能。

      为了更加方便的介绍UARTRTT调试功能,这里使用SDK温度例程做介绍,位置:nRF5_SDK_15.3.0_59ac345\examples\peripheral\temperature,官方信息中心对例程的介绍该例程每秒读取两次芯片温度数据,然后通过UART发送出来,通过UART发送的演示如下:

      这是使用UART输出的调试结果,每秒输出两次温度,也是以前常用的调试方法。

     下面教大家使用RTT来输出调试信息,在温度的例程中,只需要修改一个数字即可。

1.      打开工程,打开sdk_config.h文件。

2.      找到NRF_LOG_BACKEND_RTT_ENABLED宏定义,将后面的0改为1

3.      如果要关闭UART调试输出,找到NRF_LOG_BACKEND_UART_ENABLED宏定义,改为0

就是这么简单!找一个新一点版本的Jlink驱动安装,会默认安装RTT Viewer的,在开始中找到改软件打开后弹出如下界面,然后选择芯片型号如下,然后OK。

     然后运行程序,在RTT Viewer中可以看到和串口调试一样的调试信息。


     在代码中主要是如下代码输出调试信息:

     NRF_LOG_INFO("Actual temperature: %d", (int)temp);

     该输出还有很多变种,可以输出error,warning,debug等等的,形式上和printf很像。

     使用RTT调试会方便很多,大家使用开心。



(2 ) (1 )
回复 举报

回复于 2019-07-10 沙发

感谢分享
(0 )
评论 (0) 举报

回复于 2019-07-11 2#

谢谢分享
(0 )
评论 (0) 举报

回复于 2019-07-25 3#

谢谢分享!!!
(0 )
评论 (0) 举报

回复于 2019-07-27 4#

支持下,谢谢分享!
(0 )
评论 (0) 举报

回复于 2019-07-30 5#

谢谢分享
(0 )
评论 (0) 举报

回复于 2019-08-06 6#

谢谢分享!!!
(0 )
评论 (0) 举报

回复于 2019-08-07 7#

谢谢分享!!!
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部