7. API 関数
7.2 ユーザプログラムアップデート API
ユーザプログラムのファームウェアアップデート機能を使用するためのAPIを記載します。
7.2.1 R_FWUP_Open
ファームウェアアップデート機能の初期化を行うAPI関数です。
ファームウェアアップデートで使用する資源のオープン処理、OSの初期設定(OS使用時)、各変数の 初期化処理を行います。
形式
fwup_err_t R_FWUP_Open(void) 引数
無し 戻り値
FWUP_SUCCESS 正常終了
FWUP_ERR_ALREADY_OPEN すでに初期化済み
FWUP_ERR_COMM 通信モジュールのエラー
FWUP_ERR_STATE_MONITORING 状態監視モジュールのエラー
FWUP_ERR_FLASH FLASHモジュールのエラー
FWUP_ERR_IMAGE_STATE フラッシュのステータスがアップデートできる状態でない
解説
本APIはファームウェアアップデート機能の初期化を実行します。
APIをコール後、ファームウェアアップデート機能が利用可能となります。
補足
本APIは一度コールするとR_FWUP_Closeをコールするまで、再度コールすることができません。
再度コールする場合はR_FWUP_Closeをコール後、本APIをコールしてください。
7.2.2 R_FWUP_Close
ファームウェアアップデート機能の終了処理を行うAPIです。
形式
fwup_err_t R_FWUP_Close (void) 引数
無し 戻り値
FWUP_SUCCESS 正常終了
FWUP_ERR_NOT_OPEN ファームウェアアップデート機能が未初期化
解説
本APIはファームウェアアップデート機能の終了処理を実行します。
ファームウェアアップデートで使用した資源のクローズ処理を行います。
補足
本APIはR_FWUP_Openをコール後にコールしてください。
R_FWUP_Openをコール前にコールするとエラーとなります。
7.2.3 R_FWUP_Operation
ユーザーアプリケーションからのファームウェアアップデート処理を行います。
形式
fwup_err_t R_FWUP_Operation (void) 引数
無し 戻り値
FWUP_SUCCESS ファームウェアアップデート成功
FWUP_IN_PROGRESS ファームウェア更新継続中
FWUP_FAIL ファームウェアアップデート失敗
FWUP_ERR_NOT_OPEN ファームウェアアップデート機能が未初期化
FWUP_ERR_IMAGE_STATE フラッシュのステータスがアップデートできる状態でない
FWUP_ERR_STATE_MONITORING アップデートの状態が一定時間以上変わっていない
解説
本APIはファームウェアアップデート機能のファームウェア更新処理を実行します。
コンフィグ設定で指定された通信経路からアップデート用ファームウェアデータを取り出し、
フラッシュへプログラム、署名検証の実施を行います。
補足
更新対象のフラッシュの状態が “VALID” または “INITIAL_FIRM_INSTALLED” 以外の場合は ファームウェアを更新できる状態ではないため、戻り値として“FWUP_ERR_STATE” を返します。
戻り値が “FWUP_IN_PROGRESS” の場合はファームウェアアップデート継続中のため、再度本関数
をコールしてください。
戻り値が “FWUP_SUCCESS” の場合はファームウェアアップデート完了です。
R_FWUP_SoftwareReset関数をコールしてください。ソフトウェアリセットを行うことで更新した
ファームウェアに処理を移します。
戻り値が “FWUP_FAIL” の場合はファームウェアアップデートが失敗を意味します。
エラーを解除し再度本関数をコールしてください。
7.2.4 R_FWUP_SetEndOfLife
ユーザーアプリケーションの保守期間終了時(END OF LIFE)の処理を行います。
形式
fwup_err_t R_FWUP_SetEndOfLife(void) 引数
無し 戻り値
FWUP_SUCCESS 正常終了
FWUP_ERR_FLASH フラッシュモジュールでエラー発生
FWUP_ERR_COMM 通信モジュールでエラー発生
解説
ユーザーアプリケーションの保守期間終了時(END OF LIFE)の処理を行います。
補足
7.2.5 R_FWUP_SoftwareReset
ソフトウェアリセットを実行するAPIです。
形式
void R_FWUP_SoftwareReset (void) 引数
無し 戻り値 無し 解説
本APIはソフトウェアリセットを実行します。
ソフトウェアリセット後はリセットベクタから動作が開始されます。
補足