15 return FLASH_BASE + 128 * 1024;
17 return FLASH_BASE + 32 * 1024;
59 static const size_t checksumOffset = 0x1C;
64 size_t imageSize = *
reinterpret_cast<size_t*
>(start + checksumOffset + 4);
66 if (imageSize > 1024 * 1024) {
72 uint32_t calcChecksum = crc32(start, checksumOffset);
74 calcChecksum = crc32inc(start + checksumOffset + 4, calcChecksum, imageSize - (checksumOffset + 4));
76 uint32_t storedChecksum = *
reinterpret_cast<uint32_t*
>(start + checksumOffset);
78 return calcChecksum == storedChecksum ? BLT_TRUE : BLT_FALSE;
84 return (FLASH->OPTCR & FLASH_OPTCR_nDBANK) == 0 ? BLT_TRUE : BLT_FALSE;
return FLASH_RETURN_SUCCESS
int intFlashErase(flashaddr_t address, size_t size)
Erase the sectors containing the span of size bytes starting at address.
int intFlashWrite(flashaddr_t address, const char *buffer, size_t size)
Copy data from a buffer to the flash memory.
bool intFlashIsErased(flashaddr_t address, size_t size)
Check if the size bytes of flash memory starting at address are erased.
blt_bool isFlashDualBank(void)
blt_bool FlashVerifyChecksum()
blt_addr FlashGetUserProgBaseAddress()
blt_bool FlashWriteChecksum()
blt_bool FlashWrite(blt_addr addr, blt_int32u len, blt_int8u *data)
blt_bool FlashErase(blt_addr addr, blt_int32u len)