hiro99ma blog

何か技術的なこと

ncs: LOG

2024/08/25

前回は DevAcademy で NUS(Nordic UART Service) の exercise をしているところだった。 評価ボードnRF5340 MDBT53-1Mモジュールピッチ変換基板で UART を使ったことが無かったので、どこが失敗しているのかよくわからなくなっていた。

NUS を進める前に DevAcademy の Fundamentals で基礎的なところをやっておこう。

Lesson 4 – Printing messages to console and logging

ログ出力である。

nRF53 DK などの DevKit は uart0 をオンボードの Segger J-Link と接続してあり、J-Link の方で USBシリアルに変換しているとのこと。 デフォルトのログ出力も uart0 になっている。 なお nRF53 には app と net の 2コア構成のため、DK はそれぞれ uart0uart1接続しているそうだ。
オンボードではない J-Link を使っているが、そちらは VCOM0 だけしかない。オンボード版はその辺をカスタマイズできるのか。

Exercise 1

Exercise 1 をやってみたが、やはり前回と同じ設定では main() までたどり着かなかった。
デバッガが reset.S で止まったのだが、そこで止まっていてもなんだかわからんよという箇所だった。

とりあえず、この設定でprintk()でのログ出力をuart0に出すことができた。

LED とボタンは dk_buttons_and_leds ではなく自分で DeviceTree の設定を取得して使うようになっていた。 ncs の使い方をやってるのだからそうじゃないとね。

Exercise 2

Exercise 1 では printk() で文字列を出力するとそのまま出力されるサンプルだった。
Exercise 2 はそのリッチ版である。

私は TeraTerm を使っているが、ちゃんと色つきで出力された。

関係ない話だが、vscode で ncs アプリを開くとソースコード管理がプロジェクトを開いたフォルダではなく ncs の west が管理している方が出てくる。 Source control UIにもそう書いてあるのだが、カレントディレクトリも west manifest に含めないとここに表示されないということなのか?
でも、ncs は ncs だしアプリはアプリだしで、ncs と混ぜ込まなくてよいと思うのだがなあ。 せめて切り替えたりできればよいのに。

Exercise 3

これはやるだけ。

Quiz

Lesson の最後はクイズでちゃんとやったか確認する。

といっても、別に次に進めないわけでもないので適当にやっている。 そして、あまり問題を読まずにこたえて間違っている。。。

例えばこんなの。

image

「デフォルトはUARTよね?」で最初間違えたのだが、よく見ると「デフォルトではサポートしていない」のをこたえるのだ。
いやあ、よく読まないとダメだねぇ。

Fundamentals Lesson 4だけやったので、また BLE に戻ろう。

< Top page