SmartSnippets DA1459x SDK
Data Structures | Typedefs | Enumerations | Functions

Definition of API for the FCU Low Level Driver. More...

#include <stdbool.h>
#include "sdk_defs.h"
#include "hw_dma.h"

Go to the source code of this file.

Data Structures

struct  hw_fcu_operation_params_t
 Operation parameters structure. More...
 

Typedefs

typedef void(* hw_fcu_operation_completed_cb) (void *user_data)
 Callback called upon completion of erase or write (interrupt or DMA) More...
 

Enumerations

enum  HW_FCU_ERROR
 FCU error codes.
 
enum  HW_FCU_ERASE_SUSPEND_MODE { HW_FCU_ERASE_SUSPEND_MODE_PREEMPTIVE, HW_FCU_ERASE_SUSPEND_MODE_NONPREEMPTIVE }
 FCU erase/suspend modes. More...
 
enum  HW_FCU_FLASH_ACCESS_MODE { HW_FCU_FLASH_ACCESS_MODE_READ, HW_FCU_FLASH_ACCESS_MODE_WRITE_ERASE }
 FCU flash read/write/erase mode. More...
 
enum  HW_FCU_FLASH_PROG_MODE { HW_FCU_FLASH_PROG_MODE_READ, HW_FCU_FLASH_PROG_MODE_WRITE_PAGE, HW_FCU_FLASH_PROG_MODE_ERASE_PAGE, HW_FCU_FLASH_PROG_MODE_ERASE_BLOCK }
 FCU program flash mode. More...
 
enum  HW_FCU_WAIT_CYCLES
 FCU wait cycles.
 
enum  HW_FCU_VDD_LEVEL_VALUE { HW_FCU_VDD_LESS_THAN_1V08, HW_FCU_VDD_GREATER_THAN_1V08 }
 FCU VDD level value. More...
 

Functions

__STATIC_FORCEINLINE void hw_fcu_set_vdd_level_value (HW_FCU_VDD_LEVEL_VALUE value)
 Set VDD level value. More...
 
__STATIC_FORCEINLINE HW_FCU_VDD_LEVEL_VALUE hw_fcu_get_vdd_level_value (void)
 Get VDD level value. More...
 
__STATIC_FORCEINLINE void hw_fcu_enable_vdd_level_overriding (void)
 Enable overriding of VDD level FCU input signal.
 
__STATIC_FORCEINLINE void hw_fcu_disable_vdd_level_overriding (void)
 Disable overriding of VDD level FCU input signal.
 
__STATIC_FORCEINLINE void hw_fcu_prohibit_flash_operations (void)
 Prohibit flash operations.
 
__STATIC_FORCEINLINE void hw_fcu_permit_flash_operations (void)
 Permit flash operations.
 
__STATIC_FORCEINLINE bool hw_fcu_are_flash_operations_prohibited (void)
 Check if flash operations are prohibited. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_flash_erase_suspended (void)
 Check if flash erase is suspended. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_erase_suspend_mode (HW_FCU_ERASE_SUSPEND_MODE mode)
 Set erase/suspend mode. More...
 
__STATIC_FORCEINLINE HW_FCU_ERASE_SUSPEND_MODE hw_fcu_get_erase_suspend_mode (void)
 Get erase/suspend mode. More...
 
__STATIC_FORCEINLINE void hw_fcu_enable_erase_suspend (void)
 Enable erase/suspend functionality. More...
 
__STATIC_FORCEINLINE void hw_fcu_disable_erase_suspend (void)
 Disable erase/suspend functionality.
 
__STATIC_FORCEINLINE bool hw_fcu_is_erase_suspend_enabled (void)
 Check if erase/suspend functionality is enabled. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_asleep (void)
 Check if fcu is in sleeping mode. More...
 
__STATIC_FORCEINLINE void hw_fcu_enable_dma (void)
 Enable DMA handshake when writing to the FCU. More...
 
__STATIC_FORCEINLINE void hw_fcu_disable_dma (void)
 Disable DMA handshake when writing to the FCU. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_dma_enabled (void)
 Check if DMA handshake when writing to the FCU is enabled. More...
 
__STATIC_FORCEINLINE void hw_fcu_enable_bus_error (void)
 Enable bus error response. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_bus_error_enabled (void)
 Check if bus error response is enabled. More...
 
__STATIC_FORCEINLINE bool hw_fcu_get_bus_error_status (void)
 Get bus error status. More...
 
__STATIC_FORCEINLINE void hw_fcu_clear_interrupt (void)
 Clear FCU interrupt.
 
__STATIC_FORCEINLINE HW_FCU_WAIT_CYCLES hw_fcu_get_wait_cycles (void)
 Get wait cycles. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_wait_cycles (HW_FCU_WAIT_CYCLES wait_cycles)
 Set wait cycles. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_protected_against_actions (uint32_t mask)
 
__STATIC_FORCEINLINE void hw_fcu_enable_flash_read_protection (void)
 Enable program flash read protection. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_flash_read_protection_enabled (void)
 Check program flash read protection. More...
 
__STATIC_FORCEINLINE void hw_fcu_enable_flash_write_protection (void)
 Enable program flash write protection. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_flash_write_protection_enabled (void)
 Check program flash write protection. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_flash_read_mode_inhibited (void)
 Check if program flash read mode is inhibited. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_erase_in_progress (void)
 Check if flash erase is in progress. More...
 
__STATIC_FORCEINLINE void hw_fcu_resume_erase (void)
 Resume erase. More...
 
__STATIC_FORCEINLINE bool hw_fcu_is_write_in_progress (void)
 Check if flash write is in progress. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_access_mode (HW_FCU_FLASH_ACCESS_MODE mode)
 Set flash read or write/erase mode. More...
 
__STATIC_FORCEINLINE HW_FCU_FLASH_ACCESS_MODE hw_fcu_get_flash_access_mode (void)
 Get flash read/write/erase mode. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_programming_mode (HW_FCU_FLASH_PROG_MODE mode)
 Set program flash mode. More...
 
__STATIC_FORCEINLINE HW_FCU_FLASH_PROG_MODE hw_fcu_get_flash_programming_mode (void)
 Get program flash mode. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_sleep_mode (void)
 Puts FCU (eFlash) in sleep mode for lower leakage current. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_hold_time (uint16_t hold_time)
 Set program flash NVSTR1 hold time. More...
 
__STATIC_FORCEINLINE uint16_t hw_fcu_get_flash_hold_time (void)
 Get program flash NVSTR1 hold time. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_program_time (uint16_t prog_time)
 Set program flash programming time. More...
 
__STATIC_FORCEINLINE uint16_t hw_fcu_get_flash_program_time (void)
 Get program flash programming time. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_page_erase_time (uint32_t erase_time)
 Set program flash page erase time. More...
 
__STATIC_FORCEINLINE uint32_t hw_fcu_get_flash_page_erase_time (void)
 Get program flash page erase time. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_mass_erase_time (uint32_t erase_time)
 Set program flash mass erase time. More...
 
__STATIC_FORCEINLINE uint32_t hw_fcu_get_flash_mass_erase_time (void)
 Get program flash mass erase time. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_sleep_to_standby_time (uint8_t wakeup_time)
 Set program flash sleep to standby wake-up time. More...
 
__STATIC_FORCEINLINE uint8_t hw_fcu_get_flash_sleep_to_standby_time (void)
 Get program flash sleep to standby wake-up time. More...
 
__STATIC_FORCEINLINE void hw_fcu_set_flash_page_segment_erase_time (uint32_t erase_time)
 Set program flash page segment erase time for suspend erase. More...
 
__STATIC_FORCEINLINE uint32_t hw_fcu_get_flash_page_segment_erase_time (void)
 Get program flash page segment erase time for suspend erase. More...
 
__STATIC_FORCEINLINE uint32_t hw_fcu_get_total_erase_counter (void)
 Get total erase time counter value. More...
 
__STATIC_FORCEINLINE uint32_t hw_fcu_get_segment_erase_counter (void)
 Get segment erase time counter value. More...
 
__STATIC_FORCEINLINE void hw_fcu_enable_reset_delay (void)
 Enables reset delay when FCU write/erase begins.
 
__STATIC_FORCEINLINE void hw_fcu_disable_reset_delay (void)
 Disables reset delay when FCU write/erase has finished.
 
__ALWAYS_RETAINED_CODE void hw_fcu_wakeup (void)
 Wakeup FCU.
 
__ALWAYS_RETAINED_CODE void hw_fcu_sleep (void)
 Set FCU to sleep mode.
 
__ALWAYS_RETAINED_CODE void hw_fcu_enable_erase (HW_FCU_FLASH_PROG_MODE mode)
 Put FCU in erase mode. More...
 
__ALWAYS_RETAINED_CODE HW_FCU_ERROR hw_fcu_erase_page (uint32_t address, struct hw_fcu_operation_params_t *params)
 Erase flash block's page. More...
 
__ALWAYS_RETAINED_CODE HW_FCU_ERROR hw_fcu_configure_erase_page_suspend (HW_FCU_ERASE_SUSPEND_MODE mode, uint32_t page_erase_time, uint32_t segment_erase_time)
 Configure page erase suspend/resume. More...
 
__ALWAYS_RETAINED_CODE HW_FCU_ERROR hw_fcu_erase_block (uint32_t address, struct hw_fcu_operation_params_t *params)
 Erase flash block. More...
 
__ALWAYS_RETAINED_CODE void hw_fcu_enable_write (void)
 Put FCU in write mode.
 
__ALWAYS_RETAINED_CODE HW_FCU_ERROR hw_fcu_write (uint32_t *src, uint32_t address, uint32_t len, struct hw_fcu_operation_params_t *params)
 Write a buffer to flash address (first flash page should be erased) More...
 
__ALWAYS_RETAINED_CODE void hw_fcu_enable_read (void)
 Put FCU in read mode.
 
__ALWAYS_RETAINED_CODE HW_FCU_ERROR hw_fcu_read (uint32_t address, uint32_t *dst, uint32_t len, struct hw_fcu_operation_params_t *params)
 Read from flash address to buffer. More...
 
__ALWAYS_RETAINED_CODE bool hw_fcu_is_available (void)
 Check if FCU is not busy or in sleeping mode. More...
 

Detailed Description

Definition of API for the FCU Low Level Driver.

Copyright (C) 2020-2023 Renesas Electronics Corporation and/or its affiliates. All rights reserved. Confidential Information.

This software ("Software") is supplied by Renesas Electronics Corporation and/or its affiliates ("Renesas"). Renesas grants you a personal, non-exclusive, non-transferable, revocable, non-sub-licensable right and license to use the Software, solely if used in or together with Renesas products. You may make copies of this Software, provided this copyright notice and disclaimer ("Notice") is included in all such copies. Renesas reserves the right to change or discontinue the Software at any time without notice.

THE SOFTWARE IS PROVIDED "AS IS". RENESAS DISCLAIMS ALL WARRANTIES OF ANY KIND, WHETHER EXPRESS, IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. TO THE MAXIMUM EXTENT PERMITTED UNDER LAW, IN NO EVENT SHALL RENESAS BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE, EVEN IF RENESAS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. USE OF THIS SOFTWARE MAY BE SUBJECT TO TERMS AND CONDITIONS CONTAINED IN AN ADDITIONAL AGREEMENT BETWEEN YOU AND RENESAS. IN CASE OF CONFLICT BETWEEN THE TERMS OF THIS NOTICE AND ANY SUCH ADDITIONAL LICENSE AGREEMENT, THE TERMS OF THE AGREEMENT SHALL TAKE PRECEDENCE. BY CONTINUING TO USE THIS SOFTWARE, YOU AGREE TO THE TERMS OF THIS NOTICE.IF YOU DO NOT AGREE TO THESE TERMS, YOU ARE NOT PERMITTED TO USE THIS SOFTWARE.