Comments
Description
Transcript
LSI C-80 編
FAT アクセスライブラリーの使用方法 LSI C-80 編 1.開発環境と実行環境 2.開発手順 3.ライブラリファイルと機能 4.コンパイル 5.リンク 6.初期化手順 7.使用上のご注意 8. FAT アクセスライブラリ仕様書 1.開発環境と実行環境 開発環境は LSI ジャパン社の LSI C-80 C コンパイラの動作環境に準じます。LSI C-80 を使用して、Z80/64180/KL5C80xx の開発が可能なパソコンとソフトウエアが揃っている ことが必須です。 実行環境は当社 CPU カード MPCZ-16EX と PCMCIA カード MPC104−PCMCIA の組 み合わせとなっております。また MPC104-PCMCIA の I/O アドレスモードは8、または 16 ビットアドレス、範囲は 32 番地を占有します。 使用可能な PCMCIA カードの仕様はつぎのとおりです。 ホストインターフェース : PC Card ATA インターフェース 動作電圧 : 5V または 3.3V/5V 兼用タイプ フォーマット : MS-DOS(FAT16) 当社では TDK 製 SFD064H で動作を確認しております。 2.開発手順 LSI C-80 を用いた FAT システム応用プログラム開発の流れを図に示します。 ユーザー作成 ユーザー作成 FAT ライブラリ Cソース ヘッダ ヘッダ LSIC C コンパイラ ユーザー作成 ユーザー作成 FAT ライブラリ アセンブリソース ヘッダ ヘッダ LSIC アセンブラ FAT ライブラリ (リロケータブル 標準 リロケータブル ライブラリ オブジェクト オブジェクト) 本ライブラリが提供する LSIC ファイル リンカ ターゲット システム デバッグ時 ターゲット ロードモジュール .dbg または hex .hex ファイル ファイル システム 組み込み時 3.ライブラリファイルと機能 本ライブラリは次のファイルで構成されています。ファイル名と内容を示します。 1 2 3 4 5 6 7 8 9 10 ファイル名 fatdef.h fatinc.inc cbios.sof ata.sof sub.sof fat.sof freec.sof fread.sof remove.sof rename.sof 内容 構造体定義ヘッダー、関数プロトタイプ アセンブリソース用インクルードファイル カードアクセス BIOS ATA カードアクセスライブラリ 演算、文字列操作ライブラリ FAT ライブラリ本体 空き容量探索ライブラリ ファイル読み出しライブラリ ファイル削除ライブラリ ファイル名変更ライブラリ 備考 セクタ単位のアクセス ファイル作成、書き込み オプション オプション オプション オプション 4.コンパイル FAT システムの初期化関数、ファイルアクセス関数を呼び出しているソースファイルに fatdef.h をインクルードする行を記述してください。 例:(ライブラリが現在のディレクトリの下層 fatlib にあると仮定します) #include <stdlib.h> #include <stdio.h> #include “fatlib¥fatdef.h” ・ _FILE *fp; ・ ・ int open_new_file(char *filename) { if ((fp = _fopen(filename, “w”)) == 0) /* ここでファイルオープンのライブラリを 呼び出します */ return 1; /* Error */ else{ ・ ・ } _fclose(fp); /* ファイルをクローズします。クローズせずに終了した場合ファイルの内容 は無効になります */ return 0; /* No Error */ } 5.リンク アプリケーションにリンクするファイルは cbios.sof、ata.sof、fat.sof、sub.sof です。利 用する機能によってはオプションのファイルもリンクしてください。 またセグメント名はコード部分が fau_code、データ部分が fau_bss となっていますので、 それらもリンカに指定してください。 例:(ライブラリが現在のディレクトリの下層 fatlib にあると仮定します) knil #CODE=80 #fau_code #DATA=8000 #fau_bss main.hex @link.lst -mmain.map -nmain.lin -fc:¥lsic¥lib¥romlibz 下線部分がセグメント名です link.lst の内容です。 main cmain start dir ram adda mod irqclk fatlib¥fat fatlib¥ata fatlib¥cbios fatlib¥sub fatlib¥freec 6.初期化の手順 ファイルアクセスを行う前にカード電源の投入、カード情報の読み取り、各種変数の初 期化の必要があります。つぎのフローチャートにしたがって、初期化を行ってください。 初期化開始 インターフェースカード CardAdrsSet(0x00c0) のアドレス(例 0x00c0) をセットする カードの電源オン ATAInit() カード挿入確認 NO エラー処理 結果が0? (カードが見つからな い) YES カードアクセスモードを ATASetLBA() LBA に設定する ファイルシステムの FATReset() 初期化終わり 初期化 7.使用上のご注意 使用上のご注意 7. FAT アクセスライブラリ(FATLIB Ver1.0)の使用上の注意 FAT アクセスライブラリ(本ライブラリ)は MPCZ-16EX 上の CPU:KL5C80A16(Z80 コンパチブルの8ビット CPU)で動作します。したがいまして、プログラムサイズの制限 や、処理時間の節約のため、制限(省略)される機能、仕様があります。 --- FAT 形式の制限 本ライブラリが扱うフォーマットは 16 ビット FAT のみで 12 ビット FAT でフォーマッ トされたカードは使用できません。 MS-DOS が扱う FAT 形式には 12 ビット FAT と 16 ビット FAT があります。MS-DOS の初期バージョンはディスク容量(FAT 領域)を節約するため、12 ビット FAT しかあり ませんでした。しかし、大容量ディスクを管理するためには 12 ビットの FAT では1クラ スタあたりのサイズが大きくなりすぎて、スペースの効率的な使い方ができなくなるのと、 1つのパーティション(ドライブ)で管理できるファイル、ディレクトリの数が約 4,000 個しかとれないため、MS-DOS の Ver3 から 16 ビット FAT が使えるようになりました。 現在市販されている ATA カードでは、ほとんど 16 ビット FAT でフォーマットされて いるので問題ありませんが、少容量(20MB 以下)の ATA カードまたはコンパクトフラ ッシュカードを使用される場合はご注意願います。 --- 機能制限 本ライブラリは現在、次の機能をサポートします。 ・ ファイル作成(fopen に相当) ・ ファイルクローズ(fclose に相当) ・ ファイル読み出し(fread に相当) ・ ファイル書き込み、追加(fwrite に相当) ・ ファイル削除(remove、unlink に相当) ・ ファイル名変更(rename に相当) ・ ファイルポインタ移動(fseek に相当) ・ ファイルポインタ取得(ftell に相当) ・ 空きクラスタ計算 ・ ディレクトリサーチ --- 作成されるファイル数の制限 本ライブラリはディレクトリ指定の機能はありません。したがいまして、読み出し・書 き込みはルートディレクトリのみに行われます。ルートディレクトリに作成されるファイ ル(ディレクトリを含む)数はフォーマット時に決まってしまいますので、この数を超え てファイルを作成することはできません。たとえば、64MB の ATA フラッシュメモリカ ードをフォーマットすると、512 個分のディレクトリエントリが作成されます。すなわち、 カードにいくら残り容量があっても 512 個のファイルを作成すると、それ以上のファイル 作成はできません。 アプリケーション開発をされる場合はライブラリ関数の戻り値でエラー検出を行ってく ださい。 なお、注意していただきたいのは Windows95/98 など、ロングファイルネームをサポー トした OS でファイルを書き込むと、ファイル名を記憶するためだけにディレクトリエン トリが消費され、表示されるファイル数と使用されているエントリ数が異なる点です。た とえば、Windows95 で ABC.DAT という名のファイルをカードにコピーすると、ディレ クトリエントリに MS-DOS 互換の ABC.DAT という名前が記憶されますが、別のエント リにロングファイル名フォーマットの名前が記憶されます。しかも、ファイル名が長くな れば多くのエントリが消費されます(13 文字で1エントリ)。 ディレクトリエントリが何個使用されているかは、エクスプローラや、MS-DOS プロン プトの DIR コマンドではわかりませんので注意してください。 安全のためには Windows95/98(将来リリースされる Windows シリーズを含めて)で 書き込み操作をしたカードは使用しないことです。つまりカードは本ライブラリで書き込 んだデータを、Windows で読み出し、消去するというふうに一方通行で使用してください。 ・免責事項 当社製品の故障、不具合、誤動作あるいは停電によって生じた損害等の純粋経済損失につきましては、当 社は一切その責任を負いかねますので、あらかじめご了承ください。 8. FAT アクセスライブラリ仕様書 概要 組み込みシステムでデータ収集を行う場合、現状ではインテル 386/486 互換のワンボー ド CPU などと MS-DOS を用いたシステムが一般的な方法として考えられます。しかし、 コストや消費電力の問題でこういったシステムの構築が困難なとき、8 ビット CPU を使 用することにより解決可能な場合があります。本ライブラリは8ビット CPU(Z80 互換の KL5C80A16)から DOS のファイルシステムにアクセスする手段を提供します。 仕様 記憶媒体 ATA フラッシュメモリーカード インターフェース MPC104-PCMCIA ファイルシステム MS-DOS(FAT16) ファイル名形式 8+3 ディレクトリサポート なし パーティション 基本のみ サポートドライブ数 1 1セクタのサイズ 同時にオープン可能なファイル サポートする C 言語 512 バイト 1 LSIC-80 機能 ファイルオープン ファイル書き込み(追加を含む) ファイル読み出し ファイルクローズ ファイルポインタ変更 ファイルポインタ取得 ファイル削除 ファイル名変更 ファイルシステムのリセット ファイル探索 空き容量の取得 パーティションテーブルの取得 空きクラスタの探索 空きディレクトリエントリの探索 ディレクトリ情報の取得 ファイル更新の日時取得 カードへの物理アクセス(セクタリード・ライト、電源オン・オフなど)