VSF Documented
Macros | Typedefs | Functions
flash.c File Reference
#include "./flash.h"
#include "hal/vsf_hal.h"
#include "hal/driver/vendor_driver.h"
#include <string.h>
#include "hal/driver/common/flash/flash_template.inc"

Macros

#define VSF_HW_FLASH_CFG_MULTI_CLASS   VSF_FLASH_CFG_MULTI_CLASS
 
#define VSF_FLASH_CFG_IMP_PREFIX   vsf_hw
 
#define VSF_FLASH_CFG_IMP_UPCASE_PREFIX   VSF_HW
 
#define ROM_TABLE_CODE(c1, c2)   ((c1) | ((c2) << 8))
 
#define ROM_FUNC_CONNECT_INTERNAL_FLASH   ROM_TABLE_CODE('I', 'F')
 
#define ROM_FUNC_FLASH_EXIT_XIP   ROM_TABLE_CODE('E', 'X')
 
#define ROM_FUNC_FLASH_RANGE_ERASE   ROM_TABLE_CODE('R', 'E')
 
#define ROM_FUNC_FLASH_RANGE_PROGRAM   ROM_TABLE_CODE('R', 'P')
 
#define ROM_FUNC_FLASH_FLUSH_CACHE   ROM_TABLE_CODE('F', 'C')
 
#define ROM_FUNC_FLASH_ENTER_CMD_XIP   ROM_TABLE_CODE('C', 'X')
 
#define VSF_FLASH_CFG_MODE_CHECK_UNIQUE   VSF_HAL_CHECK_MODE_LOOSE
 
#define VSF_FLASH_CFG_IRQ_MASK_CHECK_UNIQUE   VSF_HAL_CHECK_MODE_STRICT
 
#define VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED
 
#define VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION   ENABLED
 
#define VSF_FLASH_CFG_REIMPLEMENT_API_IRQ_CLEAR   ENABLED
 
#define VSF_FLASH_CFG_ERASE_ALL_TEMPLATE   ENABLED
 
#define VSF_FLASH_CFG_ERASE_ONE_SECTOR_TEMPLATE   ENABLED
 
#define VSF_FLASH_CFG_WRITE_ONE_SECTOR_TEMPLATE   ENABLED
 
#define VSF_FLASH_CFG_READ_ONE_SECTOR_TEMPLATE   ENABLED
 
#define VSF_FLASH_CFG_REIMPLEMENT_API_CTRL   ENABLED
 
#define VSF_FLASH_CFG_IMP_LV0(__IDX, __HAL_OP)
 

Typedefs

typedef void *(* rom_table_lookup_fn) (uint16_t *table, uint32_t code)
 
typedef void(* rom_connect_internal_flash_fn) (void)
 
typedef void(* rom_flash_exit_xip_fn) (void)
 
typedef void(* rom_flash_range_erase_fn) (uint32_t addr, size_t count, uint32_t block_size, uint8_t block_cmd)
 
typedef void(* rom_flash_range_program_fn) (uint32_t addr, const uint8_t *data, size_t count)
 
typedef void(* rom_flash_flush_cache_fn) (void)
 
typedef void(* rom_flash_enter_cmd_xip_fn) (void)
 

Functions

struct VSF_MCONNECT (VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
 
vsf_err_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_init)
 
void VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_fini)
 
fsm_rt_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_enable)
 
fsm_rt_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_disable)
 
void VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_irq_enable)
 
void VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_irq_disable)
 
vsf_flash_irq_mask_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_irq_clear)
 
 __attribute__ ((section(".time_critical")))
 
vsf_err_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_read_multi_sector)
 
vsf_flash_status_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_status)
 
vsf_err_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_get_configuration)
 
vsf_flash_capability_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_capability)
 
vsf_err_t VSF_MCONNECT (VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_ctrl)
 

Macro Definition Documentation

◆ VSF_HW_FLASH_CFG_MULTI_CLASS

#define VSF_HW_FLASH_CFG_MULTI_CLASS   VSF_FLASH_CFG_MULTI_CLASS

◆ VSF_FLASH_CFG_IMP_PREFIX

#define VSF_FLASH_CFG_IMP_PREFIX   vsf_hw

◆ VSF_FLASH_CFG_IMP_UPCASE_PREFIX

#define VSF_FLASH_CFG_IMP_UPCASE_PREFIX   VSF_HW

◆ ROM_TABLE_CODE

#define ROM_TABLE_CODE (   c1,
  c2 
)    ((c1) | ((c2) << 8))

◆ ROM_FUNC_CONNECT_INTERNAL_FLASH

#define ROM_FUNC_CONNECT_INTERNAL_FLASH   ROM_TABLE_CODE('I', 'F')

◆ ROM_FUNC_FLASH_EXIT_XIP

#define ROM_FUNC_FLASH_EXIT_XIP   ROM_TABLE_CODE('E', 'X')

◆ ROM_FUNC_FLASH_RANGE_ERASE

#define ROM_FUNC_FLASH_RANGE_ERASE   ROM_TABLE_CODE('R', 'E')

◆ ROM_FUNC_FLASH_RANGE_PROGRAM

#define ROM_FUNC_FLASH_RANGE_PROGRAM   ROM_TABLE_CODE('R', 'P')

◆ ROM_FUNC_FLASH_FLUSH_CACHE

#define ROM_FUNC_FLASH_FLUSH_CACHE   ROM_TABLE_CODE('F', 'C')

◆ ROM_FUNC_FLASH_ENTER_CMD_XIP

#define ROM_FUNC_FLASH_ENTER_CMD_XIP   ROM_TABLE_CODE('C', 'X')

◆ VSF_FLASH_CFG_MODE_CHECK_UNIQUE

#define VSF_FLASH_CFG_MODE_CHECK_UNIQUE   VSF_HAL_CHECK_MODE_LOOSE

◆ VSF_FLASH_CFG_IRQ_MASK_CHECK_UNIQUE

#define VSF_FLASH_CFG_IRQ_MASK_CHECK_UNIQUE   VSF_HAL_CHECK_MODE_STRICT

◆ VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY

#define VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY   ENABLED

◆ VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION

#define VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION   ENABLED

◆ VSF_FLASH_CFG_REIMPLEMENT_API_IRQ_CLEAR

#define VSF_FLASH_CFG_REIMPLEMENT_API_IRQ_CLEAR   ENABLED

◆ VSF_FLASH_CFG_ERASE_ALL_TEMPLATE

#define VSF_FLASH_CFG_ERASE_ALL_TEMPLATE   ENABLED

◆ VSF_FLASH_CFG_ERASE_ONE_SECTOR_TEMPLATE

#define VSF_FLASH_CFG_ERASE_ONE_SECTOR_TEMPLATE   ENABLED

◆ VSF_FLASH_CFG_WRITE_ONE_SECTOR_TEMPLATE

#define VSF_FLASH_CFG_WRITE_ONE_SECTOR_TEMPLATE   ENABLED

◆ VSF_FLASH_CFG_READ_ONE_SECTOR_TEMPLATE

#define VSF_FLASH_CFG_READ_ONE_SECTOR_TEMPLATE   ENABLED

◆ VSF_FLASH_CFG_REIMPLEMENT_API_CTRL

#define VSF_FLASH_CFG_REIMPLEMENT_API_CTRL   ENABLED

◆ VSF_FLASH_CFG_IMP_LV0

#define VSF_FLASH_CFG_IMP_LV0 (   __IDX,
  __HAL_OP 
)
Value:
VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash##__IDX) = {__HAL_OP};
#define VSF_FLASH_CFG_IMP_PREFIX
Definition flash.c:47
struct VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
Definition flash.c:49

Typedef Documentation

◆ rom_table_lookup_fn

typedef void *(* rom_table_lookup_fn) (uint16_t *table, uint32_t code)

◆ rom_connect_internal_flash_fn

typedef void(* rom_connect_internal_flash_fn) (void)

◆ rom_flash_exit_xip_fn

typedef void(* rom_flash_exit_xip_fn) (void)

◆ rom_flash_range_erase_fn

typedef void(* rom_flash_range_erase_fn) (uint32_t addr, size_t count, uint32_t block_size, uint8_t block_cmd)

◆ rom_flash_range_program_fn

typedef void(* rom_flash_range_program_fn) (uint32_t addr, const uint8_t *data, size_t count)

◆ rom_flash_flush_cache_fn

typedef void(* rom_flash_flush_cache_fn) (void)

◆ rom_flash_enter_cmd_xip_fn

typedef void(* rom_flash_enter_cmd_xip_fn) (void)

Function Documentation

◆ VSF_MCONNECT() [1/13]

struct VSF_MCONNECT ( VSF_FLASH_CFG_IMP_PREFIX  ,
_flash_t   
)

◆ VSF_MCONNECT() [2/13]

vsf_err_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_init   
)

◆ VSF_MCONNECT() [3/13]

void VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_fini   
)

◆ VSF_MCONNECT() [4/13]

fsm_rt_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_enable   
)

◆ VSF_MCONNECT() [5/13]

fsm_rt_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_disable   
)

◆ VSF_MCONNECT() [6/13]

void VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_irq_enable   
)

◆ VSF_MCONNECT() [7/13]

void VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_irq_disable   
)

◆ VSF_MCONNECT() [8/13]

vsf_flash_irq_mask_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_irq_clear   
)

◆ __attribute__()

__attribute__ ( (section(".time_critical"))  )

◆ VSF_MCONNECT() [9/13]

vsf_err_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_read_multi_sector   
)

◆ VSF_MCONNECT() [10/13]

vsf_flash_status_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_status   
)

◆ VSF_MCONNECT() [11/13]

vsf_err_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_get_configuration   
)

◆ VSF_MCONNECT() [12/13]

vsf_flash_capability_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_capability   
)

◆ VSF_MCONNECT() [13/13]

vsf_err_t VSF_MCONNECT ( VSF_MCONNECT(  VSF_FLASH_CFG_IMP_PREFIX,
_flash_ctrl   
)
Generated from commit: vsfteam/vsf@3b461d0