* Documentation: add Doxyfile, prepare sources for doxygen. * Update ReadMe and remove obsolete CLA * Add contribution guide * Contributing: update text * Correct spelling
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <stdbool.h>
 | 
						|
#include <stdint.h>
 | 
						|
#include <stddef.h>
 | 
						|
 | 
						|
/** Get flash base address
 | 
						|
 *
 | 
						|
 * @return     pointer to flash base
 | 
						|
 */
 | 
						|
size_t furi_hal_flash_get_base();
 | 
						|
 | 
						|
/** Get flash read block size
 | 
						|
 *
 | 
						|
 * @return     size in bytes
 | 
						|
 */
 | 
						|
size_t furi_hal_flash_get_read_block_size();
 | 
						|
 | 
						|
/** Get flash write block size
 | 
						|
 *
 | 
						|
 * @return     size in bytes
 | 
						|
 */
 | 
						|
size_t furi_hal_flash_get_write_block_size();
 | 
						|
 | 
						|
/** Get flash page size
 | 
						|
 *
 | 
						|
 * @return     size in bytes
 | 
						|
 */
 | 
						|
size_t furi_hal_flash_get_page_size();
 | 
						|
 | 
						|
/** Get expected flash cycles count
 | 
						|
 *
 | 
						|
 * @return     count of erase-write operations
 | 
						|
 */
 | 
						|
size_t furi_hal_flash_get_cycles_count();
 | 
						|
 | 
						|
/** Get free flash start address
 | 
						|
 *
 | 
						|
 * @return     pointer to free region start
 | 
						|
 */
 | 
						|
const void* furi_hal_flash_get_free_start_address();
 | 
						|
 | 
						|
/** Get free flash end address
 | 
						|
 *
 | 
						|
 * @return     pointer to free region end
 | 
						|
 */
 | 
						|
const void* furi_hal_flash_get_free_end_address();
 | 
						|
 | 
						|
/** Get first free page start address
 | 
						|
 *
 | 
						|
 * @return     first free page memory address
 | 
						|
 */
 | 
						|
size_t furi_hal_flash_get_free_page_start_address();
 | 
						|
 | 
						|
/** Get free page count
 | 
						|
 *
 | 
						|
 * @return     free page count
 | 
						|
 */
 | 
						|
size_t furi_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
 | 
						|
 *
 | 
						|
 * @return     true on success
 | 
						|
 */
 | 
						|
bool furi_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
 | 
						|
 *
 | 
						|
 * @return     true on success
 | 
						|
 */
 | 
						|
bool furi_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
 | 
						|
 *
 | 
						|
 * @return     true on success
 | 
						|
 */
 | 
						|
bool furi_hal_flash_write_dword_from(size_t address, size_t source_address);
 |