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(またはリセット)を行なうと、メモリの内容が破壊される場合があります。