1

SD card 用のカスタムファイル システムの実装があります。参照。いいえ14-16。このファイルは、SPI インターフェイスを介して SD カードに接続されたマイクロコントローラーによって読み書きできます。

このファイル システムに BMP イメージを保存しています。ただし、アプリケーションでは、ある場所から別の場所へのランダムなジャンプが多数必要です。

この回答を通じて、基本的に fseek() が必要であることを学びました。残念ながら、このシステムでは fseek() は提供されていません。利用できる機能は次のとおりです。

fcreate、fopen、fread、fwrite、feof、fclose:

利用可能な関数を使用して fseek() または同様の機能を実装することは可能ですか? はいの場合、どのように?そうでない場合、低レベルのコード (セクターの読み取りなど) を書くことが唯一の解決策ですか?

fcreate

Description: Creates a new file with the specified name.
Prototype: static BYTE fcreate (find_info* findinfo, char* filename)
Parameters: 
1. findinfo-Pointer to a structure with details about the file.
2. filename-Pointer to a memory location that contains the filename.
Return Value: 1, if the file was created successfully. 0, otherwise.

開く

    Description: Opens a file in one of three modes - Read (r), Write (w), Append (a). 
    In Write/Append modes, if the specified filename does not exist, it is created. 
    In   Write mode, if the specified file exists, it is overwritten.
    Prototype: int fopen (FILE* f, char* filename, char* mode)
    Parameters: 
    1. f-Pointer to file structure 
    2. filename-Pointer to a memory location that contains the filename.
    3. mode-Pointer to a memory location that contains the file open mode.
    Return Value: 1, if file was opened successfully. 0, otherwise.

恐れる

Description: Reads the specified number of bytes from a file.
Prototype: unsigned fread (FILE* f, BYTE* buffer, unsigned count)
Parameters: 
1. f-Pointer to file structure
2. buffer-Pointer to a memory locationwhere the data will be copied to.
3. count-The maximum number of bytes to read from the file.
Return Value: Number of bytes read from the file.

書き込み

Description: Writes the specified number of bytes to a file.
Prototype: unsigned fwrite (FILE* f, BYTE* buffer, unsigned count)
Parameters: 
1. f-Pointer to file structure
2. buffer-Pointer to a memory location where the data will be copied from.
3. count-The number of bytes to write to the file.
Return Value: Number of bytes written to the file.

フェオフ

Description: Checks whether the specified file's current position pointer has reached the end of the file.
Prototype: int feof (FILE* f)
Parameters: 
1. f-Pointer to file structure
Return Value: 0, if the file'scurrent position pointer has not reached the end of the file.    1, if the file's current position pointer has reached the end of the file.

閉じる

Description: Closes a file.
Prototype: void fclose (FILE* f)
Parameters: 1. f-Pointer to file structure
Return Value: None.
4

1 に答える 1