RXduino  1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
関数
tkdn_dflash.h

内蔵データフラッシュを使用するためのルーチン [詳細]

#include "tkdn_dflash.h"

ソースコードを見る。

関数

int tkdn_dflash_write (unsigned long offset, unsigned char *buf, int len)
 内蔵データフラッシュの任意の位置に指定した長さのデータを書き込む [詳細]
 
int tkdn_dflash_read (unsigned long offset, unsigned char *buf, int len)
 内蔵データフラッシュの任意の位置のデータを読み出し、バッファに格納する [詳細]
 
int tkdn_dflash_erase (unsigned long offset, int len)
 内蔵データフラッシュの任意の位置のブロックを消去する [詳細]
 
void tkdn_dflash_terminate (void)
 フラッシュ書き込みモードを終了する [詳細]
 
int tkdn_dflash_blank (unsigned long offset, int len)
 内蔵データフラッシュの任意の領域をブランクチェックする [詳細]
 

説明

内蔵データフラッシュを使用するためのルーチン

RX62N/RX63Nには、データフラッシュという32kBの不揮発性メモリが内蔵されています。
MACアドレスやホスト名、各種IDなど、ボード固有の情報を格納しておくのに使えます。
このライブラリは、内蔵データフラッシュを使いやすくするためのものです。

TODO:
このライブラリはRX63N用に作られてしまったのでRX62Nでは使えない。RX62Nでも使えるようにしなければならない。

tkdn_dflash.h で定義されています。

関数

int tkdn_dflash_write ( unsigned long  offset,
unsigned char *  buf,
int  len 
)

内蔵データフラッシュの任意の位置に指定した長さのデータを書き込む

内蔵データフラッシュに2バイトずつ書き込んでいく。

引数
offset書き込みたいデータフラッシュのアドレス。必ず偶数番地から始めること。範囲は0~32766。
[in]buf書き込みたいデータが格納されているバッファへのポインタ
len書き込みたいデータの長さ。offset + lenが32768を超えるとエラーを返す
戻り値
書き込み結果を示す。
  • 0 : 書き込み失敗(何らかのエラー)
  • -1 : アドレスや長さの範囲のエラー。セットアップのエラーが発生したことを示す。
  • 1~32768 : 書き込まれたデータの長さ(バイト数)
警告
この関数を呼び出した後は、データフラッシュはアクティブ(内蔵高電圧ON)になっているので、
最後のアクセスの場合は、tkdn_dflash_terminateを呼び出すこと。
TODO:
RX62Nでも使えるようにしたい。
int tkdn_dflash_read ( unsigned long  offset,
unsigned char *  buf,
int  len 
)

内蔵データフラッシュの任意の位置のデータを読み出し、バッファに格納する

引数
offset書き込みたいデータフラッシュのアドレス。0~32767の範囲。
[out]buf読み出しデータを格納するバッファへのポインタ
len読み出したいデータの長さ。
戻り値
読み出したデータの長さ(バイト数)
覚え書き
この関数は内部でtkdn_dflash_terminateを行っているので、内蔵高電圧はOFFになる。
警告
この関数を呼び出した後は、データフラッシュはアクティブ(内蔵高電圧ON)になっているので、
最後のアクセスの場合は、tkdn_dflash_terminateを呼び出すこと。
TODO:
RX62Nでも使えるようにしたい。
int tkdn_dflash_erase ( unsigned long  offset,
int  len 
)

内蔵データフラッシュの任意の位置のブロックを消去する

引数
offset消去したいデータフラッシュのアドレス。32の倍数であること。0~32736の範囲。
len消去したいデータの長さ。32の倍数であること。offset + lenが32768を超えるとエラーを返す
戻り値
消去結果
  • 0 : 消去失敗(何らかのエラー)
  • 1 : 消去成功
  • -1 : アドレスや長さの範囲のエラー。セットアップのエラーが発生したことを示す。
覚え書き
RX63Nでは消去は32バイト単位
警告
この関数を呼び出した後は、データフラッシュはアクティブ(内蔵高電圧ON)になっているので、
最後のアクセスの場合は、tkdn_dflash_terminateを呼び出すこと。
TODO:
RX62Nでも使えるようにしたい。
void tkdn_dflash_terminate ( void  )

フラッシュ書き込みモードを終了する

書き込み/消去不可能な初期状態に戻す。内蔵高電圧がOFFになり、消費電力が減る。
内蔵フラッシュのアクセスを終了する際には必ず呼び出すこと。

引数
なし
戻り値
なし
int tkdn_dflash_blank ( unsigned long  offset,
int  len 
)

内蔵データフラッシュの任意の領域をブランクチェックする

書き込み/消去不可能な初期状態に戻す。内蔵高電圧がOFFになり、消費電力が減る。
内蔵フラッシュのアクセスを終了する際には必ず呼び出すこと。

引数
offset検査したいデータフラッシュのアドレス。32の倍数であること。0~32736の範囲。
len検査したい長さ
戻り値
検査結果
  • 0 : 指定された領域には書き込まれたデータがある
  • 1 : 指定された領域はブランクである
  • -1 : エラーのため検査できなかったことを示す
覚え書き
RXの内蔵データフラッシュは、消去後に1、書き込み後に0なるような普通のフラッシュメモリではない。
消去時(未書き込み時)は「不定」なデータとなる。したがって、読み出した値がFFだからといって未書き込みとは判断できない。 ブランクチェックを行う場合は、必ずこの関数を使うこと。
戻り値
なし