52 typedef enum flash_id {
56 typedef enum flash_metrics {
57 FLASH_PAGE_SIZE = 256,
58 FLASH_SECTOR_SIZE = 256 * FLASH_PAGE_SIZE,
60 FLASH_SIZE = FLASH_SECTOR_SIZE * FLASH_SECTORS,
63 typedef enum flash_flags {
64 FLASH_WAIT = (1 << 0),
65 FLASH_FINISH = (1 << 1),
66 FLASH_BLOCKING = FLASH_WAIT | FLASH_FINISH,
69 typedef enum flash_error {
71 E_FLASH_INVALID_STATUS,
80 typedef uint32_t flash_addr_t;
82 flash_error_t flash_init(
void);
84 flash_error_t flash_status(
const flash_id_t);
86 flash_error_t flash_read(
const flash_id_t,
const flash_addr_t, uint8_t *,
const uint32_t,
const flash_flags_t);
88 flash_error_t flash_readi(
const flash_id_t,
const flash_addr_t, uint8_t *,
const uint32_t,
const flash_flags_t);
89 flash_error_t
flash_write(
const flash_id_t,
const flash_addr_t,
const uint8_t *,
const uint32_t,
const flash_flags_t);
91 flash_error_t flash_writei(
const flash_id_t,
const flash_addr_t,
const uint8_t *,
const uint32_t,
const flash_flags_t);
93 flash_error_t flash_write_queue(
const flash_id_t,
const flash_addr_t,
const uint8_t *,
const uint32_t,
const flash_flags_t);
94 flash_error_t flash_write_process(
const flash_flags_t);
96 flash_error_t flash_erase_sector(
const flash_id_t,
const uint32_t,
const flash_flags_t);
97 flash_error_t flash_erase_chip(
const flash_id_t,
const flash_flags_t);
99 flash_error_t flash_sleep(
const flash_id_t,
const flash_flags_t);
100 flash_error_t flash_wakeup(
const flash_id_t,
const flash_flags_t);
103 flash_error_t flash_dump(
const flash_id_t,
void (*)(
const uint8_t));
void flash_write(unsigned short *ptr, unsigned short word)
Write a 16-bit word to flash ROM.