At this time, the file is not unformatted (the application does not recognize it as unformatted), and there are corrupted files.
If you record data to a cartridge RAM like the one above, it will stop within the BUP_Write() function.
For comparison, I tried running the data recording process of another application (created by calling the SBL function with the same name using the same procedure), and it ran normally. Are there differences depending on the library in the internal processing of the BUP_Write() function?
If the backup data is corrupted, the data size information included in the backup data may also have changed.
A situation may occur where the buffer is overflowed when reading/writing a backup.
If it is an important area used by the system, it may hang.
In the first place, it is quite possible that a situation like this could occur depending on the user's usage, but if this happens, the application will no longer be able to intervene.
In the case of 4096 bytes of continuous data, when calculated using the usage formula in the creation standards, the usage should be (4096+32)/64=65 blocks, but when it is actually written to backup RAM and "BUP_Dir" If you check with "BUP_Stat", the amount of blocks used is 72 blocks.
Also, on the backup data management screen, it is displayed as 65 blocks according to the calculation formula. Why does this difference occur?
Is it okay to use the device's built-in backup RAM to its capacity limit for one backup data?
Or is it morally necessary to leave a certain amount of space free?
When accessing the backup RAM, check whether it is possible to write in the block unit shown in the structure BupStat obtained by Bup_Stat, and refer to it.
" Consumption amount [block] " explained in Developer's Information STN-9 is
This is a convenient value to notify the 'user' of usage.
The calculation formula is used.
This calculation formula is the same as the consumption calculation formula displayed on the main unit's BOOT-ROM backup management screen, and is common to all main units, cartridges, and FDs. This is different from consumption in the strict sense of the word, so it cannot be used to check remaining capacity.
In addition, the size of "block" in library functions differs depending on the device, and is as follows.
Total number of blocks total block | 1 block capacity blocksize (in bytes) | |
---|---|---|
Built-in RAM (current) | 512 | 64 |
Power memory (old model) | 1024 | 512 |
Power memory (new model) | 2048 | 256 |
If you want to write the comment in Japanese, please specify BUP_JAPANESE for 'Language type'.
For other languages, use one of the following:
BUP_ENGLISH | :English |
BUP_FRANCAIS | :French |
BUP_DEUTSCH | :German |
BUP_ESPANOL | :Spanish |
BUP_ITALIANO | :Italian |
* Please refer to "Backup Creation Standards" for characters that can be used in file names and comment information.
BUP_Init( addr, workbuff, conf) Uint32 *addr :Library deployment area Uint32 workbuff[2078] :Library work area BupConfig conf[3] :Connected device information conf[0] Built-in RAM conf[1] Cartridge RAM conf[2] FDD (currently unavailable)