18#ifndef __HAL_DRIVER_${SERIES/FLASH_IP}_FLASH_H__
19#define __HAL_DRIVER_${SERIES/FLASH_IP}_FLASH_H__
25#if VSF_HAL_USE_FLASH == ENABLED
44#if defined(__VSF_HAL_${FLASH_IP}_FLASH_CLASS_IMPLEMENT)
45# define __VSF_CLASS_IMPLEMENT__
46#elif defined(__VSF_HAL_${FLASH_IP}_FLASH_CLASS_INHERIT__)
47# define __VSF_CLASS_INHERIT__
64#ifndef VSF_${FLASH_IP}_FLASH_CFG_MULTI_CLASS
65# define VSF_${FLASH_IP}_FLASH_CFG_MULTI_CLASS VSF_FLASH_CFG_MULTI_CLASS
82#define VSF_FLASH_CFG_REIMPLEMENT_TYPE_MODE ENABLED
83#define VSF_FLASH_CFG_REIMPLEMENT_TYPE_STATUS ENABLED
84#define VSF_FLASH_CFG_REIMPLEMENT_TYPE_IRQ_MASK ENABLED
85#define VSF_FLASH_CFG_REIMPLEMENT_TYPE_CTRL ENABLED
86#define VSF_FLASH_CFG_REIMPLEMENT_TYPE_CFG ENABLED
87#define VSF_FLASH_CFG_REIMPLEMENT_TYPE_CAPABILITY ENABLED
89#if VSF_FLASH_CFG_REIMPLEMENT_TYPE_CAPABILITY == ENABLED
90# undef VSF_FLASH_CFG_REIMPLEMENT_TYPE_FLASH_SIZE
91# define VSF_FLASH_CFG_REIMPLEMENT_TYPE_FLASH_SIZE ENABLED
100#if VSF_${FLASH_IP}_CFG_MULTI_CLASS == ENABLED
119#if VSF_FLASH_CFG_REIMPLEMENT_TYPE_IRQ_MASK == ENABLED
130#if VSF_FLASH_CFG_REIMPLEMENT_TYPE_FLASH_SIZE == ENABLED
134#if VSF_FLASH_CFG_REIMPLEMENT_TYPE_CFG == ENABLED
147#if VSF_FLASH_CFG_REIMPLEMENT_TYPE_STATUS == ENABLED
158#if VSF_FLASH_CFG_REIMPLEMENT_TYPE_CAPABILITY == ENABLED
160#if VSF_FLASH_CFG_INHERIT_HAL_CAPABILITY == ENABLED
191#undef __VSF_HAL_${FLASH_IP}_FLASH_CLASS_IMPLEMENT
192#undef __VSF_HAL_${FLASH_IP}_FLASH_CLASS_INHERIT__
vsf_flash_irq_mask_t
Definition flash.h:47
@ VSF_FLASH_IRQ_ERASE_MASK
Definition flash.h:49
@ VSF_FLASH_IRQ_READ_MASK
Definition flash.h:53
@ VSF_FLASH_IRQ_WRITE_ERROR_MASK
Definition flash.h:58
@ VSF_FLASH_IRQ_WRITE_MASK
Definition flash.h:51
@ VSF_FLASH_IRQ_ERASE_ERROR_MASK
Definition flash.h:56
@ VSF_FLASH_IRQ_READ_ERROR_MASK
Definition flash.h:60
void vsf_flash_isr_handler_t(void *target_ptr, vsf_flash_t *flash_ptr, vsf_flash_irq_mask_t mask)
Definition flash.h:85
struct vsf_flash_capability_t vsf_flash_capability_t
struct vsf_flash_cfg_t vsf_flash_cfg_t
struct vsf_flash_isr_t vsf_flash_isr_t
struct vsf_flash_status_t vsf_flash_status_t
uint_fast32_t vsf_flash_size_t
Definition flash.h:80
vsf_arch_prio_t
Definition cortex_a_generic.h:88
#define vsf_class(__name)
Definition ooc_class.h:48
const i_spi_t vsf_spi_irq_mask_t irq_mask
Definition spi_interface.h:38
unsigned uint32_t
Definition stdint.h:9
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_flash.h:263
vsf_flash_size_t max_size
Definition vsf_template_flash.h:270
uint8_t none_sector_aligned_read
Definition vsf_template_flash.h:276
vsf_flash_size_t write_sector_size
Definition vsf_template_flash.h:272
inherit(vsf_peripheral_capability_t) vsf_flash_irq_mask_t irq_mask
vsf_flash_size_t base_address
Definition vsf_template_flash.h:269
vsf_flash_size_t erase_sector_size
Definition vsf_template_flash.h:271
uint8_t none_sector_aligned_write
Definition vsf_template_flash.h:275
Definition vsf_template_flash.h:239
vsf_flash_isr_t isr
Interrupt configuration.
Definition vsf_template_flash.h:240
Definition vsf_template_flash.h:234
vsf_flash_isr_handler_t * handler_fn
Interrupt handler function.
Definition vsf_template_flash.h:235
vsf_arch_prio_t prio
Interrupt priority.
Definition vsf_template_flash.h:237
void * target_ptr
User target pointer.
Definition vsf_template_flash.h:236
Flash status structure that can be reimplemented in specific HAL drivers.
Definition vsf_template_flash.h:252
Definition vsf_template_flash.h:291
Definition vsf_template_hal_driver.h:203
Definition vsf_template_hal_driver.h:196
vsf_flash_irq_mask_t
Definition flash.h:120
void vsf_flash_isr_handler_t(void *target_ptr, vsf_flash_t *flash_ptr, vsf_flash_irq_mask_t mask)
Definition flash.h:136
vsf_flash_isr_t isr
Definition flash.h:114
uint_fast32_t vsf_flash_size_t
Definition flash.h:131
vsf_flash_irq_mask_t
Predefined VSF Flash interrupts that can be reimplemented in specific HAL drivers.
Definition vsf_template_flash.h:198