# CTRDG_WriteAndVerifyAgbSramAsync

## 構文

      #include <nitro/ctrdg.h>

      void CTRDG_WriteAndVerifyAgbSramAsync(u32 dst, const void* src, u32 size, CTRDG_TASK_FUNC callback);

## 引数

dst | ライト先の SRAM のアドレス(AGB メモリマップ上のアドレス)
src | ライト元のワーク領域のアドレス
size | バイト単位でのライト/ベリファイサイズ
callback | WriteAndVerify処理終了時に呼び出されるコールバック関数

## 返り値

なし。

## 説明

内部で非同期に CTRDG_WriteAgbSram で書き込みを行った後 CTRDG_VerifyAgbSram でベリファイを行い、エラーの場合は最大で CTRDG_AGB_SRAM_RETRY_MAX（AgbSram.hにて定義）回リトライを行います。
本ルーチンの呼び出し後に返ってくるコールバック関数の引数である構造体 CTRDGTaskInfo のメンバ result を参照することで、 WriteAndVerify処理に成功したのかを知ることができます。
WriteAndVerify処理に成功した場合は 0 、失敗した場合は 0 以外で、ベリファイエラー時はデバイス側エラーアドレスです。

アクセスサイクルの設定は関数内で行いますので、事前に行う必要はありません。

※この関数内では一定期間カートリッジバスがロックされますので注意して下さい。
また IS-NITRO-DEBUGGER 1.66 以前のバージョンでは AGB バックアップデバイスに正常にアクセスすることはできませんので、注意してください。

## 参照

`CTRDG_WriteAgbSram, CTRDG_VerifyAgbSram, CTRDG_WriteAndVerifyAgbSram
`

## 履歴

2006/05/25 IS-NITRO-DEBUGGER 1.66 以前のバージョンでは AGB バックアップデバイスに正常にアクセスできないことを追記
2006/04/07 初版