Microchip® Advanced Software Framework

nand_flash_mem.h File Reference

NAND Flash ctrl access interface definition.

This file contains ctrl access interface functions of NAND Flash module.

Copyright (c) 2012-2018 Microchip Technology Inc. and its subsidiaries.

#include "ctrl_access.h"

Macros

#define NAND_FLASH_BUSY   2
 
#define NAND_FLASH_NOT_INIT   0
 
#define NAND_FLASH_READY   1
 
#define NAND_FLASH_UNLOADED   3
 
#define NAND_FLASH_VERSION   "1.0"
 

Functions

Ctrl_status nand_flash_mem_2_ram (uint32_t addr, void *ram)
 This function transfers 1 data sector from memory to RAM. More...
 
Ctrl_status nand_flash_ram_2_mem (uint32_t addr, const void *ram)
 This function transfers 1 data sector from RAM to memory. More...
 
Ctrl_status nand_flash_read_capacity (uint32_t *u32_nb_sector)
 This function returns the address of the last valid sector. More...
 
bool nand_flash_removal (void)
 This function informs about the memory type. More...
 
Ctrl_status nand_flash_test_unit_ready (void)
 This function tests memory state, and starts memory initialization. More...
 
bool nand_flash_unload (bool unload)
 This function unloads/loads the memory. More...
 
Ctrl_status nand_flash_usb_read_10 (uint32_t addr, uint16_t nb_sector)
 This function transfers the memory data to the USB MSC interface. More...
 
Ctrl_status nand_flash_usb_write_10 (uint32_t addr, uint16_t nb_sector)
 This function transfers the USB MSC data to the memory. More...
 
bool nand_flash_wr_protect (void)
 This function returns the write-protected mode. More...
 

#define NAND_FLASH_BUSY   2
#define NAND_FLASH_NOT_INIT   0
#define NAND_FLASH_UNLOADED   3
#define NAND_FLASH_VERSION   "1.0"

Ctrl_status nand_flash_mem_2_ram ( uint32_t  addr,
void *  ram 
)

This function transfers 1 data sector from memory to RAM.

Parameters
addrSector address to start read
ramAddress of RAM buffer
Returns
Ctrl_status

This function transfers 1 data sector from memory to RAM.

Parameters
addrSector address to start read
ramAddress of RAM buffer
Returns
Ctrl_status

References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, nand_flash_read(), NAND_FLASH_READY, nand_flash_status, and SECTOR_SIZE.

Ctrl_status nand_flash_ram_2_mem ( uint32_t  addr,
const void *  ram 
)

This function transfers 1 data sector from RAM to memory.

Parameters
addrSector address to start write
ramAddress of RAM buffer
Returns
Ctrl_status

This function transfers 1 data sector from RAM to memory.

Parameters
addrSector address to start write
ramAddress of RAM buffer
Returns
Ctrl_status

References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, NAND_FLASH_READY, nand_flash_status, nand_flash_write(), and SECTOR_SIZE.

Ctrl_status nand_flash_read_capacity ( uint32_t *  nb_sector)

This function returns the address of the last valid sector.

Parameters
uint32_t_nb_sectorPointer to number of sectors (sector=512 bytes)
Returns
Ctrl_status
Parameters
nb_sectorPointer to number of sectors (sector=512 bytes)
Returns
Ctrl_status

References addr_address, cmd_address, CTRL_BUSY, CTRL_GOOD, CTRL_NO_PRESENT, data_address, NAND_FLASH_NOT_INIT, NAND_FLASH_READY, nand_flash_status, nand_flash_translation_get_device_size_in_byte(), nand_flash_translation_initialize(), NAND_FLASH_UNLOADED, nf_translation, page_read_buffer, page_write_buffer, and SECTOR_SIZE.

bool nand_flash_removal ( void  )

This function informs about the memory type.

Returns
true if the memory is removable
bool nand_flash_unload ( bool  unload)

This function unloads/loads the memory.

Returns
true if memory unload/load success

References nand_flash_flush(), NAND_FLASH_NOT_INIT, NAND_FLASH_READY, nand_flash_status, and NAND_FLASH_UNLOADED.

Ctrl_status nand_flash_usb_read_10 ( uint32_t  addr,
uint16_t  nb_sector 
)

This function transfers the memory data to the USB MSC interface.

Parameters
addrSector address to start read
nb_sectorNumber of sectors to transfer (sector=512 bytes)
Returns
Ctrl_status

References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, min, MODEL, nand_flash_model_get_page_data_size(), nand_flash_read(), NAND_FLASH_READY, nand_flash_status, nand_flash_usb_buffer, nf_translation, NULL, SECTOR_SIZE, and udi_msc_trans_block().

Ctrl_status nand_flash_usb_write_10 ( uint32_t  addr,
uint16_t  nb_sector 
)

This function transfers the USB MSC data to the memory.

Parameters
addrSector address to start write
nb_sectorNumber of sectors to transfer (sector=512 bytes)
Returns
Ctrl_status

References CTRL_BUSY, CTRL_FAIL, CTRL_GOOD, min, MODEL, nand_flash_model_get_page_data_size(), NAND_FLASH_READY, nand_flash_status, nand_flash_usb_buffer, nand_flash_write(), nf_translation, NULL, SECTOR_SIZE, and udi_msc_trans_block().

bool nand_flash_wr_protect ( void  )

This function returns the write-protected mode.

Returns
true if the memory is protected