Nios® V プロセッサー・ソフトウェア開発者ハンドブック

ID 743810
日付 7/08/2024
Public
ドキュメント目次

7.8.3.1. alt_get_flash_info()

alt_get_flash_info() は、消去領域の数、各領域内の消去ブロックの数、および各消去ブロックのサイズを取得します。関数のプロトタイプは次のとおりです。

int alt_get_flash_info ( alt_flash_fd* fd, flash_region** info, int* number_of_regions )

呼び出しが成功すると、戻り時に、 number_of_regions が指すアドレスにはフラッシュメモリー内の消去領域の数が含まれ、*infoflash_region 構造体の配列を指します。 この配列はファイル・ディスクリプターの一部です。

表 30.  フラッシュの書き込みと予期しないデータ破損の例
アドレス ブロック 時間 t(0) 時間 t(1) 時間 t(2) 時間 t(3) 時間 t(4)
最初の書き込み前 最初の書き込み 2 回目の書き込み
ブロック消去後 データ 1 書き込み後 ブロック消去後 データ 2 書き込み後
0x0000 1 不明 fF AA AA AA
0x0400 1 不明 fF AA AA AA
0x0800 1 不明 fF AA AA AA
0x0C00 1 不明 fF AA AA AA
0x1000 2 不明 FF AA FF FF1
0x1400 2 不明 FF FF FF BB
0x1800 2 不明 FF FF FF BB
0x1C00 2 不明 FF FF FF FF
flash_region 構造体は、sys/alt_flash_types.h で定義されています。データ構造は次のように定義されます。
typedef struct flash_region { int offset; /* Offset of this region from start of the flash */ int region_size; /* Size of this erase region */ int number_of_blocks; /* Number of blocks in this region */ int block_size; /* Size of each block in this erase region */ } flash_region;

alt_get_flash_info() を呼び出して取得した情報を使用して、フラッシュデバイスの個々のブロックを消去またはプログラムすることができます。

1 2 回目の書き込みの消去中に意図せず FF にクリアされます。