simple FS  v0.1.0
Functions | Variables
SFS_LL_API

low level API to File System More...

Collaboration diagram for SFS_LL_API:

Functions

void ll_init_low_level (void *hw1, void *hw2, uint16_t GPIO_Pin)
 Initialise low-level memory driver. More...
 
void ll_read_info_FS (FS_Header_t *info)
 Read information from preamble. More...
 
void ll_init_data_buffer (void)
 
FS_state ll_add_meta_sensor (uint8_t index, SimpleFS_t *fs)
 Write information about sensor in FLASH. More...
 
uint8_t ll_detect_num_files (void)
 Detect the numbers files in sensorFS. More...
 
FS_state ll_write_file_header (SimpleFS_t *fs)
 Write file header in flashFS. More...
 
FS_state ll_read_file_info (uint8_t id_file, SimpleFS_t *fs)
 Read file header from FLASH. More...
 
int8_t ll_check_block (uint32_t addr, uint32_t len)
 Check data block of file record. More...
 
FS_state ll_add_file_record (uint8_t data[], uint8_t len, uint8_t offset)
 Prepare data buffer to write sensor values. More...
 
FS_state ll_write_data (uint32_t address, uint32_t length)
 
uint8_t * ll_get_preamble (void)
 
void ll_dump_memory (void)
 
void ll_write_preamble (uint8_t *data)
 
uint64_t ll_memory_id (void)
 
uint8_t ll_memory_capacity (void)
 
uint8_t ll_memory_manufacturer (void)
 
uint8_t ll_memory_type (void)
 

Variables

MemoryDriver_tmemory = &memoryRam
 
uint8_t data_buffer [MEMORY_PAGE_SIZE]
 Internal data buffer for memory I/O operations.
 

Detailed Description

low level API to File System

Function Documentation

◆ ll_add_file_record()

FS_state ll_add_file_record ( uint8_t  data[],
uint8_t  len,
uint8_t  offset 
)

Prepare data buffer to write sensor values.

Parameters
dataarray of values to be written.
lenlength of data array. Maximum length is 8
offsetoffset stored values from begining of data buffer.
Returns
STATE_OK if eas no error, STATE_ERR if parameter len>8

◆ ll_add_meta_sensor()

FS_state ll_add_meta_sensor ( uint8_t  index,
SimpleFS_t fs 
)

Write information about sensor in FLASH.

Parameters
indexindex of sensor
sensorsensor driver
num_filesnumber existing files in sensorFS
Returns
state STATE_OK

◆ ll_check_block()

int8_t ll_check_block ( uint32_t  addr,
uint32_t  len 
)

Check data block of file record.

Data block is used for store of values.

Parameters
addraddress of beginning of the block
lenlength of data block
Returns
0 - if the block at address adr is first free, 1 if the block is empty and it is in empty part of file, -1 if block is not empty.

◆ ll_detect_num_files()

uint8_t ll_detect_num_files ( void  )

Detect the numbers files in sensorFS.

Returns
number of existing files.

◆ ll_init_low_level()

void ll_init_low_level ( void *  hw1,
void *  hw2,
uint16_t  GPIO_Pin 
)

Initialise low-level memory driver.

As adriver can be implemented FLASH memory, EEPROM (One-wire) or dummy (SIMULATON=1) memory.

Parameters
hw1pointer to structure that is used to initialize peripherial. This can be used for SPI_HandleTypeDef, QSPI_HandleTypeDef, ...
hw2additional poineter for helper structure. This can be GPIO_TypeDef for PGIO prot that use CS pin. If not used, use NULL instead.
GPIO_Pinadditional HW specification. For SPI can be used as pin specification for ChipSelect.

◆ ll_read_file_info()

FS_state ll_read_file_info ( uint8_t  id_file,
SimpleFS_t fs 
)

Read file header from FLASH.

Information are stored in internal variable sensorFS.

Parameters
id_filefile ID.
Returns
state: STATE_OK/STATE_ERR

◆ ll_read_info_FS()

void ll_read_info_FS ( FS_Header_t info)

Read information from preamble.

TODO: implement additional parameters: MAX_FILE, MAX_COL_COUNT !!!!

Parameters
info

◆ ll_write_file_header()

FS_state ll_write_file_header ( SimpleFS_t fs)

Write file header in flashFS.

It is used in FS_commit_file_header function.

Parameters
fspointer to open file
Returns
state: STATE_OK