ChibiOS 21.11.4
hal_xsnor_micron_n25q_impl.inc File Reference

Template of SNOR Micron N25Q source. More...

Go to the source code of this file.

Macros

#define PAGE_SIZE   256U
#define PAGE_MASK   (PAGE_SIZE - 1U)
Command codes
#define CMD_RESET_ENABLE   0x66
#define CMD_RESET_MEMORY   0x99
#define CMD_READ_ID   0x9F
#define CMD_MULTIPLE_IO_READ_ID   0xAF
#define CMD_READ_DISCOVERY_PARAMETER   0x5A
#define CMD_READ   0x03
#define CMD_FAST_READ   0x0B
#define CMD_WRITE_ENABLE   0x06
#define CMD_WRITE_DISABLE   0x04
#define CMD_READ_STATUS_REGISTER   0x05
#define CMD_WRITE_STATUS_REGISTER   0x01
#define CMD_READ_LOCK_REGISTER   0xE8
#define CMD_WRITE_LOCK_REGISTER   0xE5
#define CMD_READ_FLAG_STATUS_REGISTER   0x70
#define CMD_CLEAR_FLAG_STATUS_REGISTER   0x50
#define CMD_READ_NV_CONFIGURATION_REGISTER   0xB5
#define CMD_WRITE_NV_CONFIGURATION_REGISTER   0xB1
#define CMD_READ_V_CONF_REGISTER   0x85
#define CMD_WRITE_V_CONF_REGISTER   0x81
#define CMD_READ_ENHANCED_V_CONF_REGISTER   0x65
#define CMD_WRITE_ENHANCED_V_CONF_REGISTER   0x61
#define CMD_PAGE_PROGRAM   0x02
#define CMD_SUBSECTOR_ERASE   0x20
#define CMD_SECTOR_ERASE   0xD8
#define CMD_BULK_ERASE   0xC7
#define CMD_PROGRAM_ERASE_RESUME   0x7A
#define CMD_PROGRAM_ERASE_SUSPEND   0x75
#define CMD_READ_OTP_ARRAY   0x4B
#define CMD_PROGRAM_OTP_ARRAY   0x42
Flags status register bits
#define FLAGS_PROGRAM_ERASE   0x80U
#define FLAGS_ERASE_SUSPEND   0x40U
#define FLAGS_ERASE_ERROR   0x20U
#define FLAGS_PROGRAM_ERROR   0x10U
#define FLAGS_VPP_ERROR   0x08U
#define FLAGS_PROGRAM_SUSPEND   0x04U
#define FLAGS_PROTECTION_ERROR   0x02U
#define FLAGS_RESERVED   0x01U
#define FLAGS_ALL_ERRORS

Functions

static bool n25q_find_id (const uint8_t *set, size_t size, uint8_t element)
static flash_error_t n25q_poll_status (hal_xsnor_micron_n25q_c *self)
static void n25q_activate_xip (hal_xsnor_micron_n25q_c *self)
static void n25q_reset_xip (hal_xsnor_micron_n25q_c *self)
static void n25q_reset_memory (hal_xsnor_micron_n25q_c *self)
static void n25q_read_id (hal_xsnor_micron_n25q_c *self, uint8_t *buf)
Methods implementations of hal_xsnor_micron_n25q_c
void * __n25q_objinit_impl (void *ip, const void *vmt)
 Implementation of object creation.
void __n25q_dispose_impl (void *ip)
 Implementation of object finalization.
flash_error_t __n25q_init_impl (void *ip)
 Override of method xsnor_device_init().
flash_error_t __n25q_read_impl (void *ip, flash_offset_t offset, size_t n, uint8_t *rp)
 Override of method xsnor_device_read().
flash_error_t __n25q_program_impl (void *ip, flash_offset_t offset, size_t n, const uint8_t *pp)
 Override of method xsnor_device_program().
flash_error_t __n25q_start_erase_all_impl (void *ip)
 Override of method xsnor_device_start_erase_all().
flash_error_t __n25q_start_erase_sector_impl (void *ip, flash_sector_t sector)
 Override of method xsnor_device_start_erase_sector().
flash_error_t __n25q_query_erase_impl (void *ip, unsigned *msec)
 Override of method xsnor_device_query_erase().
flash_error_t __n25q_verify_erase_impl (void *ip, flash_sector_t sector)
 Override of method xsnor_device_verify_erase().
flash_error_t __n25q_mmap_on_impl (void *ip, uint8_t **addrp)
 Override of method xsnor_device_mmap_on().
void __n25q_mmap_off_impl (void *ip)
 Override of method xsnor_device_mmap_off().

Variables

static const xsnor_commands_t cmd1l
static const xsnor_commands_t cmd2l
static const xsnor_commands_t cmd4l
static const wspi_command_t cmd_reset_enable_1
static const wspi_command_t cmd_reset_memory_1
static const wspi_command_t cmd_reset_enable_2
static const wspi_command_t cmd_reset_memory_2
static const wspi_command_t cmd_reset_enable_4
static const wspi_command_t cmd_reset_memory_4
static const uint8_t n25q_manufacturer_ids [] = {0x20}
static const uint8_t n25q_memory_type_ids [] = {0xBA, 0xBB}
const struct hal_xsnor_micron_n25q_vmt __hal_xsnor_micron_n25q_vmt
 VMT structure of SNOR Micron N25Q driver class.

Detailed Description

Template of SNOR Micron N25Q source.

Note
This is a template file, can be edited directly.

Definition in file hal_xsnor_micron_n25q_impl.inc.