[分享] NRF52832 Debug 使用 J-link RTT Viewer

13 Dec 2017

因為專案的關係需要使用兩組 UART(一組通訊、一組Debug),但NRF51和NRF52832只有一組硬體UART,所以嘗試了Porting SoftSerial 和 BufferedSoftSerial 這兩個 Library,但測試後各別的 baudrate 極限只有到 4800 和 2400,個人覺得應該是底層 Ticker 使用 32.768KHz timer的關係,導致精度不夠。目前解決方式是Debug 改用 J-link RTT Viewer ,這在NRF SDK上很常見但 mbed 卻少有人這樣用 (可能是因為都使用預設的DAP+UART),硬體接線只使用 SWD 的 4 wire 介面,使用方式很簡單:

1. 首先要有 J-Link 硬體介面 (可能是on-board circuit、或者是一個很貴的黑黑盒子)。

2. 下載安裝 J-link 軟體 https://www.segger.com/downloads/jlink/#J-LinkSoftwareAndDocumentationPack

3. 安裝完後到以下路徑(版本名自行修改) C:\Program Files (x86)\SEGGER\JLink_V622c\Samples\RTT\ 解壓縮 SEGGER_RTT_V622c.zip,把裡面的 RTT 資料夾複製丟到 mbed 專案一起 compile 。

4. Debug 使用方式大致如下:

title

    #include "SEGGER_RTT.h"
    ...
    SEGGER_RTT_printf(0, "hELL. wORLD \r\n");

5. 打開 J-Link RTT Viewer (類似 TeraTerm的東西),簡單設定就可以接受Debug 訊息了。

以上的好處是只需要 J-Link SWD (4-wire) 就可以燒錄和抓蟲子...