#include <nitro/ctrdg.h>
void CTRDG_WriteAndVerifyAgbFlashAsync(u16 sec_num, u8* src, u32 verifysize, CTRDG_TASK_FUNC callback);
| sec_num | Represents the target flash sector number |
| src | Represents the source write address |
| verifysize | Represents the verify size in bytes |
| callback | Represents the callback function called after WriteAndVerify processing ends |
None.
CTRDG_WriteAgbFlashSector internally and asynchronously writes data and then CTRDG_VerifyAgbFlash asynchronously verifies data for the number of bytes given by "verifysize."
If there is an error, the function retries up to the number of times specified by CTRDB_AGB_FLASH_RETRY_MAX (defined in AgbFlash.h).
You can find out whether the WriteAndVerify process succeeded by accessing the result member of the CTRDGTaskInfo structure used as an argument to the callback function that returns after this routine is called.
This function returns 0 if the WriteAndVerify process succeeded, non-zero if the process failed, and the error address on the device side if there was a verification error.
Note: When checking error codes, this function returns an error code using 16 out of 32 bits when there is a write error, but returns a 32-bit error address on the device side when there is a verification error.
The access cycle setting does not need to be set beforehand because it is created inside the function.
In addition, the OS_InitTick function must be called before this function because clock ticks are used by this function to measure timeouts.
Note: All interrupts are disabled inside this function and the catridge bus is locked for a set period.
In particular, do not use DMA for automatic startup during direct sound and V/H blank synchronization, display synchronization, or cartridge request.
In addition, the AGB backup device cannot be accessed normally by the IS-NITRO-DEBUGGER.
However, be sure to check operations using an actual DS handheld unit since normal access is possible with actual DS units.
(This will be fixed in a future version of IS-NITRO-DEBUGGER.)
/* callback function */ typedef u32 (*CTRDG_TASK_FUNC) (struct CTRDGiTaskInfo_tag *);
CTRDG_WriteAgbFlashSector, CTRDG_VerifyAgbFlash, CTRDG_WriteAndVerifyAgbFlash
04/07/2006 Initial version.
CONFIDENTIAL