答えはCommon Memory Modeだった・・ コンパクトフラッシュ3日目
|
現在のカテゴリー : compact flash memory
|
True IDE Modeで読み書きすると思っていたが、
どうやら、Common Memory Modeで読み書きしないとまずそうだ。
True IDE Modeには、16ビットのマイコンが必要になる。
Common Memory Modeは、8ビットのマイコンで操れる。
8ビットのマイコンしかない。
つうか、
PIC16F88
ぐらいしかもってないんだ。
H8とかSH-2とか、
そんな名前のマイコンだったら16ビットをサポートしていると思うが、
持ち合わせがないから、PICに決定。
PIC嫌いだ。
プログラミング言語、アゼンブラじゃん。
ところで、アゼングラじゃなくて、アセンブラというのか?
どうでもいいや。
アセンブラでカキカキするなんて、
悪夢だ。
かと言って、
CCSのC Compilerは100ドルくらいする代物で、
わざわざ買いたくない。
誰かくれ。
とグチはこの辺でやめて、
PICでアセンブラするしかないか。。
そうそう、
長らく疑問に思っていたのだが、
どうやったら3つのアドレスピンで、
8GBのコンパクトフラッシュをアドレスするかというのだけど、
どうやら、CFにはレジスタというのが存在する。
CFの3つのアドレスピンは、
レジスタを区別するもので、
2^3で8個のレジスタを区別できる。
1つのレジスタには8ビットある。
8個のレジスタの種類だが、
Data Register (Address - 1F0h[170h];Offset 0,8,9)
Error Register (Address - 1F1h[171h]; Offset 1, 0Dh Read Only)
Feature Register (Address - 1F1h[171h]; Offset 1, 0Dh Write Only)
Sector Count Register (Address - 1F2h[172h]; Offset 2)
Sector Number (LBA 7-0) Register (Address - 1F3h[173h]; Offset 3)
Cylinder Low (LBA 15-8) Register (Address - 1F4h[174h]; Offset 4)
Cylinder High (LBA 23-16) Register (Address - 1F5h[175h]; Offset 5)
Drive/Head (LBA 27-24) Register (Address 1F6h[176h]; Offset 6)
Status & Alternate Status Registers (Address 1F7h[177h]&3F6h[376h]; Offsets 7 &
Eh)
Sector Number、Cylinder Low,High、Drive/Head Register
をあわせると、28ビット。28ビットは8.94GB。
だとさ。
Memory Mapped Addressingとレジスタを合わせて、
がりがり読み書きしていくのだとよ。
とりあえず、
CFのめどはついた。
デバックが問題になるだろう。
アセンブラだもんな・・・。
あ、そういえば、
FAT16についても勉強しておかないと、
まずいだろうな。
人気blogランキングへ