PebbleOS
Loading...
Searching...
No Matches
Typedefs | Functions
flash_impl.h File Reference
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <pbl/drivers/flash.h>
#include <system/status_codes.h>

Typedefs

typedef uint32_t FlashAddress
 Flash address.
 

Functions

status_t flash_impl_init (bool coredump_mode)
 Initialize the driver and bring the part to a state ready to accept commands.
 
status_t flash_impl_set_burst_mode (bool enable)
 Enable or disable synchronous burst mode, if supported.
 
FlashAddress flash_impl_get_sector_base_address (FlashAddress addr)
 Get the base address of the sector containing an address.
 
FlashAddress flash_impl_get_subsector_base_address (FlashAddress addr)
 Get the base address of the subsector containing an address.
 
size_t flash_impl_get_capacity (void)
 Get the flash capacity.
 
status_t flash_impl_enter_low_power_mode (void)
 Enter a low-power state.
 
status_t flash_impl_exit_low_power_mode (void)
 Leave the low-power state.
 
status_t flash_impl_read_sync (void *buffer, FlashAddress addr, size_t len)
 Read data.
 
void flash_impl_enable_write_protection (void)
 Enable write protection, if the part requires it to be enabled explicitly.
 
status_t flash_impl_write_protect (FlashAddress start_sector, FlashAddress end_sector)
 Write-protect a range of sectors.
 
status_t flash_impl_unprotect (void)
 Remove write protection.
 
int flash_impl_write_page_begin (const void *buffer, FlashAddress addr, size_t len)
 Start writing up to a page.
 
status_t flash_impl_get_write_status (void)
 Poll the status of a page write.
 
status_t flash_impl_write_suspend (FlashAddress addr)
 Suspend an in-progress write so reads and erases are permitted.
 
status_t flash_impl_write_resume (FlashAddress addr)
 Resume a suspended write.
 
status_t flash_impl_erase_subsector_begin (FlashAddress subsector_addr)
 Start erasing the subsector containing an address.
 
status_t flash_impl_erase_sector_begin (FlashAddress sector_addr)
 Start erasing the sector containing an address.
 
status_t flash_impl_erase_bulk_begin (void)
 Start erasing the entire flash.
 
status_t flash_impl_get_erase_status (void)
 Poll the status of an erase.
 
uint32_t flash_impl_get_typical_subsector_erase_duration_ms (void)
 Get the typical subsector erase duration.
 
uint32_t flash_impl_get_typical_sector_erase_duration_ms (void)
 Get the typical sector erase duration.
 
status_t flash_impl_erase_suspend (FlashAddress addr)
 Suspend an in-progress erase so reads and writes are permitted.
 
status_t flash_impl_erase_resume (FlashAddress addr)
 Resume a suspended erase.
 
status_t flash_impl_blank_check_subsector (FlashAddress addr)
 Check whether the subsector containing an address is blank (all ones).
 
status_t flash_impl_blank_check_sector (FlashAddress addr)
 Check whether the sector containing an address is blank (all ones).
 
void flash_impl_use (void)
 Take a reference keeping the flash peripheral powered.
 
void flash_impl_release (void)
 Drop one reference taken with flash_impl_use().
 
void flash_impl_release_many (uint32_t num_locks)
 Drop several references taken with flash_impl_use().
 
status_t flash_impl_read_security_register (uint32_t addr, uint8_t *val)
 Read a byte from a security register.
 
status_t flash_impl_security_register_is_locked (uint32_t address, bool *locked)
 Check whether a security register is locked.
 
status_t flash_impl_erase_security_register (uint32_t addr)
 Erase a security register.
 
status_t flash_impl_write_security_register (uint32_t addr, uint8_t val)
 Write a byte to a security register.
 
const FlashSecurityRegisters * flash_impl_security_registers_info (void)
 Get the security register layout.