ncs: USB-CDCとUARTの両立 (2)
2024/08/29
前回の続き。
あらすじ
- DevAcademy Fundamentals Lesson 5 - Exercise 1
- USB CDC ACM を有効にすると UART の ASYNC API を使うことができなくなった
CONFIG_UART_0_ASYNC
が無効になっているようだった
CONFIG_UART_0_ASYNC
こちらが USB CDC ACM を有効にしている場合の Kconfig。
そしてこちらが無効な場合の Kconfig。
ASYNC の項目すら出てきていない。
その代わり USB CDC ACM が有効な場合は UART_0_INTERRUPT_DRIVEN
が有効になっている。
では、それを無効にしてしまえば。。。
出てくるじゃないか!
しかしボード定義ファイルにもCONFIG_UART_0_INTERRUPT_DRIVENについては設定していないので、自動的に有効にされたことになる。
原因はCONFIG_UART_INTERRUPT_DRIVENのようで、USB CDC ACM 有効の場合は誰かに=y
設定され、そうでない場合は未設定になっていた。
このページの “Selected by” にあるように CONFIG_USB_CDC_ACM
などのためだろう。
わざわざ有効にしているからには意味があるに違いない。
ここはCONFIG_UART_0_INTERRUPT_DRIVEN=n
だけに限定しておくのが無難か。
変更すると、ちゃんと動いた。 よかった。