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

ID 743810
日付 10/31/2022
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

インテルのみ表示可能 — GUID: iti1655905683258

Ixiasoft

ドキュメント目次

6.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 構造体の配列を指します。 この配列はファイル・ディスクリプターの一部です。

表 28.  フラッシュの書き込みと予期しないデータ破損の例
アドレス ブロック数 時間 t(0) 時間 t(1) 時間 t(2) 時間 t(3) 時間 t(4)
最初の書き込み前 最初の書き込み 2 回目の書き込み
ブロック消去後 Write data 1 ブロック消去後 Write data 2
0x0000 1 Unknown FF AA AA AA
0x0400 1 Unknown FF AA AA AA
0x0800 1 Unknown FF AA AA AA
0x0C00 1 Unknown FF AA AA AA
0x1000 2 Unknown FF AA FF FF1
0x1400 2 Unknown FF FF FF BB
0x1800 2 Unknown FF FF FF BB
0x1C00 2 Unknown 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 にクリアされました。