summaryrefslogtreecommitdiff
path: root/src/agb_flash.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-07-22 15:47:06 -0400
committerGitHub <noreply@github.com>2020-07-22 15:47:06 -0400
commit69a04f88f4411d9b0db67aa2c42e17e4bfb0dd0e (patch)
tree779c24f56f1179ee0e3221e0282b4dfd060056fa /src/agb_flash.c
parentbfa7dfcd581fdab33f14ac1bf291e1d207d9adc7 (diff)
parentaf5090c89226748836eb1f5f808394b11a3ff59a (diff)
Merge pull request #1109 from DizzyEggg/patch-3
Update agb_flash.c
Diffstat (limited to 'src/agb_flash.c')
-rw-r--r--src/agb_flash.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/agb_flash.c b/src/agb_flash.c
index a9cf13d5f..1ad9e47ec 100644
--- a/src/agb_flash.c
+++ b/src/agb_flash.c
@@ -127,7 +127,8 @@ void SetReadFlash1(u16 *dest)
}
}
-void ReadFlash_Core(u8 *src, u8 *dest, u32 size)
+// Using volatile here to make sure the flash memory will ONLY be read as bytes, to prevent any compiler optimizations.
+void ReadFlash_Core(vu8 *src, u8 *dest, u32 size)
{
while (size-- != 0)
{
@@ -142,7 +143,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size)
u16 readFlash_Core_Buffer[0x40];
u16 *funcSrc;
u16 *funcDest;
- void (*readFlash_Core)(u8 *, u8 *, u32);
+ void (*readFlash_Core)(vu8 *, u8 *, u32);
REG_WAITCNT = (REG_WAITCNT & ~WAITCNT_SRAM_MASK) | WAITCNT_SRAM_8;
@@ -164,7 +165,7 @@ void ReadFlash(u16 sectorNum, u32 offset, u8 *dest, u32 size)
i--;
}
- readFlash_Core = (void (*)(u8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1);
+ readFlash_Core = (void (*)(vu8 *, u8 *, u32))((s32)readFlash_Core_Buffer + 1);
src = FLASH_BASE + (sectorNum << gFlash->sector.shift) + offset;