mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-12-27 13:13:07 +00:00
734820c137
* Targets: add F6 * F6: Update linker script for use with internal storage * F6: synchronize with F5, add all changes arriving in V9 board, update cube project. Github workflow: add multi-target build, add F6 to build targets. * CI: fix full assembly * CI: better artifact naming scheme * CI: fix artifacts wildcard * F6: Swap C10 - A15, vibro and sdcard detect pins
74 lines
1.8 KiB
C
74 lines
1.8 KiB
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
#include <stddef.h>
|
|
|
|
/** Get flash base address
|
|
* @return pointer to flash base
|
|
*/
|
|
size_t api_hal_flash_get_base();
|
|
|
|
/** Get flash read block size
|
|
* @return size in bytes
|
|
*/
|
|
size_t api_hal_flash_get_read_block_size();
|
|
|
|
/** Get flash write block size
|
|
* @return size in bytes
|
|
*/
|
|
size_t api_hal_flash_get_write_block_size();
|
|
|
|
/** Get flash page size
|
|
* @return size in bytes
|
|
*/
|
|
size_t api_hal_flash_get_page_size();
|
|
|
|
/** Get expected flash cycles count
|
|
* @return count of erase-write operations
|
|
*/
|
|
size_t api_hal_flash_get_cycles_count();
|
|
|
|
/** Get free flash start address
|
|
* @return pointer to free region start
|
|
*/
|
|
const void* api_hal_flash_get_free_start_address();
|
|
|
|
/** Get free flash end address
|
|
* @return pointer to free region end
|
|
*/
|
|
const void* api_hal_flash_get_free_end_address();
|
|
|
|
/** Get first free page start address
|
|
* @return first free page memory address
|
|
*/
|
|
size_t api_hal_flash_get_free_page_start_address();
|
|
|
|
/** Get free page count
|
|
* @return free page count
|
|
*/
|
|
size_t api_hal_flash_get_free_page_count();
|
|
|
|
/*
|
|
* Erase Flash
|
|
* Locking operation, uses HSEM to manage shared access.
|
|
* @param page, page number
|
|
* @param count, page count to erase
|
|
*/
|
|
bool api_hal_flash_erase(uint8_t page, uint8_t count);
|
|
|
|
/*
|
|
* Write double word (64 bits)
|
|
* Locking operation, uses HSEM to manage shared access.
|
|
* @param address - destination address, must be double word aligned.
|
|
* @param data - data to write
|
|
*/
|
|
bool api_hal_flash_write_dword(size_t address, uint64_t data);
|
|
|
|
/*
|
|
* Write double word (64 bits) from address
|
|
* Locking operation, uses HSEM to manage shared access.
|
|
* @param address - destination address, must be block aligned
|
|
* @param source_address - source address
|
|
*/
|
|
bool api_hal_flash_write_dword_from(size_t address, size_t source_address);
|