Debug Logger
Debug Loggerでは、UARTを用いたログの表示が可能です。
環境構築
今回は、main.c以外に、custom_board.hを追加する。
新規作成しただけでは、リストに表示されないので、Sample1付近で右クリックを押し表示されるショートカットメニューの[Add Existing Files to Group 'Sample1'...]を選択し、custom_board.h を選ぶ。
次に、Optionの設定で、C/C++タブで、defineに、BOARD_CUSTOMとENABLE_DEBUG_LOG_SUPPORTを追記する。
項目 | 意味 |
---|---|
BOARD_CUSTOM | custom_board.hを追加することで、カスタムボードのPIN設定を反映できるようになる |
ENABLE_DEBUG_LOG_SUPPORT | Debug Loggerを有効にする |
また、custom_board.hが存在するフォルダにパスを通しておく。
SourceCode
main.c
#include <stdbool.h>
#include "nrf_delay.h"
#include "app_trace.h"
int counter = 0;
/**
* @brief Main処理.
*/
int main(void)
{
app_trace_init();
while (true)
{
app_trace_log("\n\rCounter:%d.\r\n", counter);
nrf_delay_ms(1000);
counter++;
}
}
cuntom_board.h
// UARTのPortを定義.
#define RX_PIN_NUMBER 9
#define TX_PIN_NUMBER 11
#define CTS_PIN_NUMBER 100
#define RTS_PIN_NUMBER 100
追加するソフトウェアコンポーネント
nRF_Librariesからapp_traceを選択する。足りないパッケージがあるためオレンジ色になるので、左したのResolvボタンを押す。
nRF_Driverのnrf_errorがオレンジ色になっているので、No_softdeviceに選択を変える。
app_uartは、Fifoに変えておく。これをやらないと、1文字しか文字が表示されない。
また、Board Supportのbspを追加する。オレンジ色になるので、resolveボタンを選択する。
Board Support | nRF_Driver | nRF_Libraries | nRF_SoftDevice |
---|---|---|---|
nrf_drv_config.hファイルを修正する
GPIOTEを有効にするため
#define GPIOTE_ENABLED 1
にする。
/* GPIOTE */
#define GPIOTE_ENABLED 1
#if (GPIOTE_ENABLED == 1)
#define GPIOTE_CONFIG_USE_SWI_EGU false
#define GPIOTE_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
#define GPIOTE_CONFIG_NUM_OF_LOW_POWER_EVENTS 1
#endif
UARTを有効にするため
#define UART0_ENABLED 1
にする。
/* UART */
#define UART0_ENABLED 1
#if (UART0_ENABLED == 1)
#define UART0_CONFIG_HWFC NRF_UART_HWFC_DISABLED
#define UART0_CONFIG_PARITY NRF_UART_PARITY_EXCLUDED
#define UART0_CONFIG_BAUDRATE NRF_UART_BAUDRATE_38400
#define UART0_CONFIG_PSEL_TXD 0
#define UART0_CONFIG_PSEL_RXD 0
#define UART0_CONFIG_PSEL_CTS 0
#define UART0_CONFIG_PSEL_RTS 0
#define UART0_CONFIG_IRQ_PRIORITY APP_IRQ_PRIORITY_LOW
#ifdef NRF52
#define UART0_CONFIG_USE_EASY_DMA false
//Compile time flag
#define UART_EASY_DMA_SUPPORT 1
#define UART_LEGACY_SUPPORT 1
#endif //NRF52
#endif