質問: サンプルとして含まれている`gnss_factory`を有効にし、`gnss_factory_test` をCONFIG_SDK_USER_ENTRYPOINTにした場合も以下のように2回目以降エラーになるため不思議です... ``` Hello, FACTORY SAMPLE!! start error -1 End of FACTORY Sample:-1 ```
回答: ソニーのSPRESENSEサポート担当です。 ご不便をお掛けしてしまって申し訳ございません。 お問い合わせのGNSSの起動が失敗する件ついてお答えいたします。 `CONFIG_SDK_USER_ENTRYPOINT` の変更や `/etc/init.d/rcS` の利用による自動起動を行った場合、 GNSS機能の準備が完了するよりも前にGNSSの操作が行われてしまうため、ご指摘のエラーが発生してしまいます。 この問題は、GNSSの機能を操作する前に1秒ほどsleepを挿入することで回避することができます。 ご参考までに、修正案を示します。 ``` int gnss_factory_test(int argc, char *argv[]) { /* Initialize */ int ret = boardctl(BOARDIOC_INIT, 0); + /* Workaround */ + sleep(1); if (ret == OK) { /* Call factory test */ ret = gnss_factory_main(argc, argv); } return ret; } ``` 現在、sleep が不要となるように、ソフトウェアの検討を行っております。 ご不便をおかけしますが、いましばらくお待ちください。 今後ともSPRESENSEをどうぞよろしくお願いいたします。 SPRESENSEサポートチーム