EEPROMエミュレーション・ライブラリ Pack02の最大データ数が255の訳がわかりません。

初めまして、RL78/G13を使い始めて2年生、ぴろと申します。自己紹介の代わりに使ってきたMPUを書き連ねると、H8/300,H8/500シリーズあたりからルネサス系(当時日立)を使いはじめ、ルネサスが主力を変える度にこちらも追従して来ました。R8Cシリーズに変え、現在はRL78/G13とRX621等に変遷してきました。

では本題です。対象となるRL78はR5F100LFAFAです。データフラッシュは8kbyte(8192byte)で。

RL78用に提供されている「EEPROMエミュレーション・ライブラリ Pack02」ではデフォルトで最大ユーザデータ長を255byteとしています。

それに管理用としてEELブロックヘッダが8byte、さらに格納データにはSoRとEoRフィールドがあり、合計で255+8+1+1 = 265byteとなり、

8192/265=30.9....と端数が出てしまいます。

30ブロックには出来ない、29ブロックとすると余り444byteとなり永遠に使われない無駄な領域が生まれることになるのでは?という疑問を持った次第です。

ライブラリでEELブロックヘッダやSoR,EoRで10byteつかうなら256-10=246byteを最大ユーザデータ長としたほうが256byteバウンダリーで使えて

8192/256=32ブロックピッタリ!となると思うのです。なぜ端数が出るような使い方をしているのでしょうか?私が何か大事な領域を見逃しているのでしょうか?

ご教示よろしくお願いします。

  • チョコです。

    >を引っぱってくるからデータは255byte毎であることが判る。
    少し気になったので,コメントしておきます。
    type_A~type_F及びtype_Xは2~20バイトであり,255バイトになっているのはtype_Zだけです。
    ここらは,"eel_user_types.h"で定義している例がそうなっているだけです。おそらく,type_Zはここまで使えることを示すために最大のサイズにしているだけでしょう。実際に使用する場合には,保存したいデータに合わせて個々のデータのサイズを指定することになります。
    1回のデータ書き換え(実際は追記)では,データ+2バイトが必要なので,あまり小さなサイズのデータが多いとメモリ効率が悪くなります。逆に大きなサイズのデータでは,ブロックの切り替えが頻発して,処理時間が長くなってしまうので,注意が必要です。
  • わいわいさん、ありがとうございます。
    マイコンをいじる方は何方もフラッシュメモリーについての常識的範囲での知識は持っておられると考えています。自分も常識的範囲での知識は持っているつもりです。RL78のデータシートの何処にも書いて有りませんが、RL78が持っているフラッシュメモリーはコードフラッシュもデータフラッシュも任意アドレスに任意サイズでREADアクセス可能な点からNOR型構造のFLASHかな?と想像しています。保証する書き換え回数に大きな差があるのはフローティングゲートの構造に差を付けてるのか?とかも想像しています。このような情報はハードウェアマニュアルには一切記載されていないので想像範囲内でしか有りません。(書いて欲しいな。特定ユーザーには教えているんでしょうが。)
    フラッシュには寿命があるというのはSDカードやUSBメモリーの故障でよく経験する事です。最近はPCに内蔵されるSSDなども普及してきていますが「記憶素子に原理的書き換え寿命があるものを汎用記憶装置として使うってのはすげ~」とも考えています。HDDも寿命がありますが、寿命を決めているのは機械的要因(磁性体がディスクからはがれるような事も含めて)がほとんどで記憶している磁性体そのものに書き換え寿命があるという話は聞きません。
    話が横道にそれましたが、RL78のデータフラッシュの特性(書き換え保証回数)から、データフラッシュをむやみに書き換えしないようなプログラムを作っていますし、コードフラッシュにも寿命がありますのでデバッグ用と製品用のMPU基板を作っています。
  • ちょこさんコメントありがとうございます。
    今回のデータフラッシュの利用方法は「250byteほどのRAM上のデータテーブルを外部指示でデータフラッシュに記憶する。データフラッシュに記憶されているデータは電源投入時にRAMにコピーされ初期値情報として使用する。」と言う用途です。ですので今回はtype_Zで使います。type_Zの設定値はいじるかもしれませんし、type_Yを作るかもしれません。
  • ちょこさん、わいわいさん
    コメントありがとうございました。お二人の説明を聞いてEELについて自分なりに判ったつもり?になっています。
    このスレッドはこれにてCLOSEしたいと思います。
    今後ともよろしくお願いします。