動作環境
Ubuntu 18.04 LTS
STM32F769 Discovery Kit (以下、STM32F769)
Zephyr 2.1.0-rc1
概要
- STM32F769にてUDP echo serverを動かす
- RTOSとしてZephyrを使用する
- IP addressは以下とした
- STM32F769 : 192.168.0.10
- Ubuntu: 192.168.0.9
前準備
- Zephyr: Getting Started GuideにてLEDブリンクまで動作確認
UDPサンプル
設定変更
- 対象ディレクトリ:
samples/net/sockets/echo_server - 変更ファイル
- prj.confの以下の部分を下記のようにしておく
CONFIG_NET_CONFIG_MY_IPV4_ADDR="192.168.0.10"CONFIG_NET_CONFIG_PEER_IPV4_ADDR="192.168.0.9"
- prj.confの以下の部分を下記のようにしておく
ビルドと実行
一つのターミナルで下記を実行する。
$ cd ~/Zephyr_191116/zephyrproject/zephyr
$ west build -p auto -b stm32f769i_disco samples/net/sockets/echo_server/
$ west flash
$ west debug
GDBが始まるのでcontinueしておく。
別のターミナルでUDPパケットを送信する。
ポートはMY_PORTとして定義されている4242を指定する。
$ echo "Hello" | nc -u 192.168.0.10 4242
Hello
echo backされた。
FreeRTOS+LwIP時のUDP不具合は見られない
UDPの受信は一回だけ成功し、二回目から無応答になる
FreeRTOSの時はUDPのecho backが正常に動かなかった。
Zephyrでは今のところ正常に動いているようだ。
STM32のファームウェアの問題かと思ったが、そうではないのかもしれない。
FreeRTOS + LwIPの組合せの問題だろうか。
Zephyrについてはまだ不明な部分が多い。
しばらく使ってみる。回避不能な問題がなければ良いが。