# CARD_WriteFlashAsync

## 構文

  `#include <nitro/card.h>`
  `static inline void CARD_WriteFlashAsync( u32 dst, const void *src, u32 len, MIDmaCallback callback, void *arg);`

## 引数

dst | 転送先の FLASH アドレス
src | 転送元のメモリアドレス
len | 書き込むデータのバイト長
callback | 完了時のコールバック関数 必要ない場合は NULL を指定します。 このコールバックは割り込みハンドラ内から呼び出されます。
arg | 完了時のコールバック関数に与える引数 callback に NULL を指定した場合は単に無視されます。

## 返り値

なし。

## 説明

FLASH デバイスへデータを非同期的に書き込みます。
この関数はただちに制御を返します。
処理の完了を待つにはCARD_WaitBackupAsync( )を使用します。
処理の結果を判定するには、完了後にCARD_GetResultCode( )を呼び出してください。

## 注意

- この関数を使用する場合、事前にアクセスバスをCARD_LockBackup( )でロックしている必要があります。
- この関数は内部でPXIを介してARM7プロセッサと通信しています。PXIの割り込みが有効でないと処理が完了しない点に注意してください。
- この関数は内部のスレッドを使用して非同期処理を実行します。このスレッドに関してはCARD_GetThreadPriority( )の説明を参照ください。
- 一部の大容量FLASHデバイスは"Write"操作に対応できないため、この関数を呼び出してもCARD_RESULT_UNSUPPORTEDを返して失敗します。「バックアップアクセス概要」に記載された詳細をご参照の上、必要に応じてCARD_WriteFlashSector( )などで代替してください。

## 参照

`CARD_IsBackupFlash, CARD_WaitBackupAsync, CARD_GetResultCode, CARD_ReadFlash, CARD_WriteFlash, CARD_VerifyFlash, CARD_WriteAndVerifyFlash, CARD_GetThreadPriority`

## 履歴

2007/11/13 一部の大容量FLASHがこの関数を使用できない旨の記述追加
2005/06/01 コールバックが割り込みハンドラから呼び出される旨を補足
2004/12/09 記述修正 「IOプロセッサ」→「ARM7プロセッサ」
2004/11/02 リンク先訂正
2004/08/23 初版