System 0x35


PM領域書込み


【機能】

 パーマネントデータメモリ(不揮発性のメモリ)領域にデータを書込みます。

【関数】

 int PmWrite( int sa,short *data, int size )
 {
   return trapa_svc( 0x35, pid, sa, data, size );
 }

【入力】

 sa 書込み開始アドレス 0x0e0000〜0x0ffff(偶数番地を指定)
 data 書込みデータ 書込みデータを格納している領域の先頭アドレス
(偶数番地を指定)
 size データサイズ 書込みデータのワード数(16ビット単位)

【出力】

 リターンコード OK 正常終了
ERR_PARAM パラメータエラー
ERR_FLSHWRT フラッシュ書込みエラー

【解説】

 パーマネントデータメモリ(フラッシュメモリ)領域は、64キロバイトを単位としたセクタとして管理されています。本装置はパーマネントデータメモリを2セクタ分実装しています。
 本ファンクションは、パーマネントデータメモリ内の指定されたアドレスに、指定されたデータを書込みます。

 書込みはワード(16ビット)単位で行なわれます。システムは書込み結果をチェックし、書込んだデータと一致しない場合は、フラッシュ書込みエラーを返します。
 また、一度書込みを行なったアドレスには、そのままでは上書きすることはできません。同じアドレスに書込む場合は、「PM消去」ファンクションでセクタのデータを消去してから行なって下さい。

 書込み開始アドレスが範囲外の場合、また書込み領域がセクタ範囲を超える場合(書込みアドレス+書込みデータのワード数)は、パラメータエラーを返します。
 第1セクタのセクタ範囲は0x0e0000〜0x0effff、第2セクタのセクタ範囲は0x0f0000〜0x0fffffです。
 また、書込み開始アドレス、書込みデータの先頭アドレスが2バイト境界にない場合、書込みデータのワード数が0の場合、パラメータエラーを返します。

【関連項目】

 PM領域消去 PM領域読込

【注意】

 本ファンクション実行中は、シリアル受信オーバランが発生する可能性があるため、シリアルをクローズしてから実行することを推奨します。また、本ファンクション実行中に電源OFF(またはリセット)を行なうと、メモリの内容が破壊される場合があります。