このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
mas1xx_devel:nuttx_firmware:start [2024/02/29 13:27] – admin | mas1xx_devel:nuttx_firmware:start [2024/02/29 14:20] (現在) – admin | ||
---|---|---|---|
行 2: | 行 2: | ||
\\ | \\ | ||
+ | |||
+ | {{https:// | ||
MA-S1xx シリーズは Linux のほかに、OS として[[https:// | MA-S1xx シリーズは Linux のほかに、OS として[[https:// | ||
行 10: | 行 12: | ||
* 2秒でアプリケーションが起動 | * 2秒でアプリケーションが起動 | ||
* PPP 接続をする場合、LTE module 起動まで 18 秒ほど、PPPは 20 秒ほどで接続完了 | * PPP 接続をする場合、LTE module 起動まで 18 秒ほど、PPPは 20 秒ほどで接続完了 | ||
+ | * => 動作している時間を Linux と比べて非常に短くできるため、バッテリー駆動の時間を大幅に延ばすことが可能 | ||
* 高速シャットダウン(Filesystem を unmount するだけ) | * 高速シャットダウン(Filesystem を unmount するだけ) | ||
* ちいさいファームウェアサイズ (0.5 MiB 〜 2MiB 程度) | * ちいさいファームウェアサイズ (0.5 MiB 〜 2MiB 程度) | ||
+ | |||
+ | 実際のファームウェアサイズの例はこのようなサイズ感です。 | ||
+ | |||
+ | [参考] | ||
+ | |||
+ | < | ||
+ | nuttx$ ls -l uImage | ||
+ | -rw-rw-r-- 1 user user 1706160 | ||
+ | </ | ||
+ | |||
+ | このファームウェアでは、下記のような処理を行っています。 | ||
+ | |||
+ | * RTC Alarm で定期的に起動して、下記処理を行う | ||
+ | * RS485 接続のセンサーに電源を供給 | ||
+ | * センサーの起動を待ち、独自プロトコルのセンサーからデータを取得 | ||
+ | * eMMC にデータを保存 (1) | ||
+ | * 送信するタイミングの場合、下記を追加で行う | ||
+ | * LTE module の電源を投入 | ||
+ | * LTE module が起動したら、PPP 接続の設定を行い、LTE 網に Attach されるのを待つ | ||
+ | * LTE 網に Attach されたら、PPP 接続を行う | ||
+ | * PPP 接続完了後、(1) で保存されたデータを読み込み、JSON 形式にして SORACOM Funk へ送信する | ||
+ | * HTTP Response Header にある日時情報を利用して、RTC へ時刻同期を行う | ||
+ | * HTTP Response Body の情報を見て、RTC Alarm のインターバルを変更する | ||
+ | * 上記処理完了後、RTC Alarm の設定を行い、Filesystem を unmount 後、shutdown する | ||
+ | |||
+ | \\ | ||
上記のメリットに加えて、[[https:// | 上記のメリットに加えて、[[https:// | ||
行 17: | 行 46: | ||
* Nim の各種モジュールを使用して簡単にアプリケーションを作成可能 | * Nim の各種モジュールを使用して簡単にアプリケーションを作成可能 | ||
* Python で開発するのと同じ程度の記述量で RTOS のアプリケーションを作成可能 | * Python で開発するのと同じ程度の記述量で RTOS のアプリケーションを作成可能 | ||
+ | * C 言語にコンパイルされるため、Python や microPython などと比較して超高速で処理が可能 | ||
+ | * C 言語の関数をバインディングモジュールを作る必要がなく簡単に呼び出すことが可能 | ||
+ | * Nim のモジュールにない、NuttX 独自の関数を簡単に使用することができる | ||
となっています。 | となっています。 | ||
行 28: | 行 60: | ||
\\ | \\ | ||
- | ==== SORACOM Harvest に bool 値の配列を JSON で送信する関数 | + | ==== SORACOM Harvest に bool 値の配列を JSON で送信する ==== |
<codify nim> | <codify nim> | ||
行 94: | 行 126: | ||
</ | </ | ||
+ | \\ | ||
+ | |||
+ | ===== 開発方法 ===== | ||
+ | * [[.nuttx_development_detail: | ||