62 uint32_t (*crc32)(uint8_t *data, uint32_t byte_count);
65 uint32_t (*get_flash_size)(void);
68 uint32_t (*get_chip_id)(void);
71 int32_t (*page_erase)(uint32_t flash_addr, uint32_t size);
74 int32_t (*program_flash)(uint32_t *ram_data, uint32_t flash_addr,
78 void (*reset_device)(void);
81 void *(*memset)(
void *s,
int c,
size_t n);
84 void *(*memcpy)(
void *dest,
const void *src,
size_t n);
87 int (*memcmp)(
const void *s1,
const void *s2,
size_t n);
90 void *(*memmove)(
void *dest,
const void *src,
size_t n);
97 #define ROM_UTIL_API ((struct rom_util_api *)0x00000048)
103 #define rom_util_crc32(data, byte_count) \
104 (ROM_UTIL_API->crc32((data), (byte_count)))
105 #define rom_util_get_flash_size() \
106 (ROM_UTIL_API->get_flash_size())
107 #define rom_util_get_chip_id() \
108 (ROM_UTIL_API->get_chip_id())
109 #define rom_util_page_erase(flash_addr, size) \
110 (ROM_UTIL_API->page_erase((flash_addr), (size)))
111 #define rom_util_program_flash(ram_data, flash_addr, byte_count) \
112 (ROM_UTIL_API->program_flash((ram_data), (flash_addr), (byte_count)))
113 #define rom_util_reset_device() \
114 (ROM_UTIL_API->reset_device())
115 #define rom_util_memset(s, c, n) \
116 (ROM_UTIL_API->memset((s), (c), (n)))
117 #define rom_util_memcpy(dest, src, n) \
118 (ROM_UTIL_API->memcpy((dest), (src), (n)))
119 #define rom_util_memcmp(s1, s2, n) \
120 (ROM_UTIL_API->memcmp((s1), (s2), (n)))
121 #define rom_util_memmove(dest, src, n) \
122 (ROM_UTIL_API->memmove((dest), (src), (n)))