NuttxでNTPクライアントを実行し、時刻を合わせることができたので備忘録として本稿を挙げてみることにしました。対象はweact-f401ceで、前回のf401ccのrndis_ipv6の設定と少ししか差がないのですが、configのdiffは以下の通りです。
$ diff -urN boards/arm/stm32/weact-f401cc/configs/rndis_ipv6/defconfig \ boards/arm/stm32/weact-f401ce/configs/rndis_ipv6_ntpc/defconfig --- boards/arm/stm32/weact-f401cc/configs/rndis_ipv6/defconfig 2021-03-27 08:14:07.000000000 +0900 +++ boards/arm/stm32/weact-f401ce/configs/rndis_ipv6_ntpc/defconfig 2021-03-28 03:34:21.000000000 +0900 @@ -9,13 +9,14 @@ # CONFIG_NSH_ARGCAT is not set # CONFIG_NSH_CMDOPT_HEXDUMP is not set # CONFIG_NSH_CMDPARMS is not set +# CONFIG_NSH_DISABLE_DATE is not set CONFIG_ARCH="arm" -CONFIG_ARCH_BOARD="weact-f401cc" -CONFIG_ARCH_BOARD_WEACT_F401CC=y +CONFIG_ARCH_BOARD="weact-f401ce" +CONFIG_ARCH_BOARD_WEACT_F401CE=y CONFIG_ARCH_BUTTONS=y CONFIG_ARCH_CHIP="stm32" CONFIG_ARCH_CHIP_STM32=y -CONFIG_ARCH_CHIP_STM32F401CC=y +CONFIG_ARCH_CHIP_STM32F401CE=y CONFIG_ARCH_STACKDUMP=y CONFIG_BOARD_LATE_INITIALIZE=y CONFIG_BOARD_LOOPSPERMSEC=8499 @@ -36,10 +37,11 @@ CONFIG_PREALLOC_MQ_MSGS=4 CONFIG_PREALLOC_TIMERS=4 CONFIG_PREALLOC_WDOGS=16 -CONFIG_RAM_SIZE=65536 +CONFIG_RAM_SIZE=98304 CONFIG_RAM_START=0x20000000 CONFIG_RAW_BINARY=y CONFIG_RR_INTERVAL=200 +CONFIG_RTC_DATETIME=y CONFIG_SCHED_WAITPID=y CONFIG_SDCLONE_DISABLE=y CONFIG_START_DAY=6 @@ -47,10 +49,12 @@ CONFIG_START_YEAR=2011 CONFIG_STM32_JTAG_SW_ENABLE=y CONFIG_STM32_PWR=y +CONFIG_STM32_RTC=y CONFIG_STM32_SPI1=y CONFIG_STM32_USART2=y CONFIG_SYSTEM_NSH=y CONFIG_SYSTEM_NSH_CXXINITIALIZE=y +CONFIG_SYSTEM_NTPC=y CONFIG_SYSTEM_PING=y CONFIG_SYSTEM_PING6=y CONFIG_USART2_RXBUFSIZE=128コンパイルし、実行すると以下の様になります。
NuttShell (NSH) NuttX-9.1.0 nsh> date Mon, Mar 29 09:59:10 2021時刻同期はできていますが、デフォルトではzoneinfo/timezoneの設定は入っていないので、当然といえば当然ですが、時刻はGMT/UTCしか取得できません。後程 zoneifoを使うビルドなどを行ったのですが、少し込み入るので、この辺りは別稿としたいと思います。 なお、ntpサーバは、デフォルトのpool.ntp.org(IPv4のアドレスのみ)ですが、IPv6を設定しているとntp.nict.jp(IPv4/IPv6の両方のアドレスあり)では時刻を取得できませんでした。ソースをみたところ少なくとも9.1.0のソースではIPv4のみで時刻同期を行っているようでした。このため、IPv6をコンフィグから外し、IPv4だけでコンフィグ・ビルドしたところ、GMT/UTCの時刻同期はできました。 今回は以上です。それでは。
コメント
コメントを投稿