123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- /***************************************************************************//**
- * @file dev_sflash.h
- * @brief SPI Flash driver of RT-Thread RTOS for EFM32 by using USART module
- * COPYRIGHT (C) 2012, RT-Thread Development Team
- * @author onelife
- * @version 1.0
- *******************************************************************************
- * @section License
- * The license and distribution terms for this file may be found in the file
- * LICENSE in this distribution or at http://www.rt-thread.org/license/LICENSE
- *******************************************************************************
- * @section Change Logs
- * Date Author Notes
- * 2011-05-06 onelife Initial creation by using USART module
- ******************************************************************************/
- #ifndef __DEV_SFLASH_H__
- #define __DEV_SFLASH_H__
- /* Includes ------------------------------------------------------------------*/
- /* Exported types ------------------------------------------------------------*/
- enum sflash_inst_type_t
- {
- /* Instruction only */
- sflash_inst_wren = 0x00,
- sflash_inst_wrdi,
- sflash_inst_rdid_l,
- sflash_inst_rdid_s,
- sflash_inst_rdsr,
- sflash_inst_wrsr,
- sflash_inst_be,
- sflash_inst_dp,
- sflash_inst_rdp,
- /* Instruction and address */
- sflash_inst_wrlr,
- sflash_inst_rdlr,
- sflash_inst_read,
- sflash_inst_potp,
- sflash_inst_pp,
- sflash_inst_difp,
- sflash_inst_sse,
- sflash_inst_se,
- /* Instruction, address and dummy read */
- sflash_inst_read_f,
- sflash_inst_dofr,
- sflash_inst_rotp
- };
- /* Exported constants --------------------------------------------------------*/
- /* Exported macro ------------------------------------------------------------*/
- #define SFLASH_SPI_COMMAND_SKIP (1)
- #define SFLASH_SPI_READ_SKIP (2)
- #define SFLASH_INST_CODE_WREN (0x06)
- #define SFLASH_INST_CODE_WRDI (0x04)
- #define SFLASH_INST_CODE_RDID_L (0x9F)
- #define SFLASH_INST_CODE_RDID_S (0x9E)
- #define SFLASH_INST_CODE_RDSR (0x05)
- #define SFLASH_INST_CODE_WRSR (0x01)
- #define SFLASH_INST_CODE_WRLR (0xE5)
- #define SFLASH_INST_CODE_RDLR (0xE8)
- #define SFLASH_INST_CODE_READ (0x03)
- #define SFLASH_INST_CODE_READ_F (0x0B)
- #define SFLASH_INST_CODE_DOFR (0x3B)
- #define SFLASH_INST_CODE_ROTP (0x4B)
- #define SFLASH_INST_CODE_POTP (0x42)
- #define SFLASH_INST_CODE_PP (0x02)
- #define SFLASH_INST_CODE_DIFP (0xA2)
- #define SFLASH_INST_CODE_SSE (0x20)
- #define SFLASH_INST_CODE_SE (0xD8)
- #define SFLASH_INST_CODE_BE (0xC7)
- #define SFLASH_INST_CODE_DP (0xB9)
- #define SFLASH_INST_CODE_RDP (0xAB)
- #define SFLASH_REPLY_LEN_WREN (0)
- #define SFLASH_REPLY_LEN_WRDI (0)
- #define SFLASH_REPLY_LEN_RDID_L (20)
- #define SFLASH_REPLY_LEN_RDID_S (3)
- #define SFLASH_REPLY_LEN_RDSR (1)
- #define SFLASH_REPLY_LEN_WRSR (1)
- #define SFLASH_REPLY_LEN_WRLR (1)
- #define SFLASH_REPLY_LEN_RDLR (1)
- #define SFLASH_REPLY_LEN_READ (-1)
- #define SFLASH_REPLY_LEN_READ_F (-1)
- #define SFLASH_REPLY_LEN_DOFR (-1)
- #define SFLASH_REPLY_LEN_ROTP (65)
- #define SFLASH_REPLY_LEN_POTP (65)
- #define SFLASH_REPLY_LEN_PP (256)
- #define SFLASH_REPLY_LEN_DIFP (256)
- #define SFLASH_REPLY_LEN_SSE (0)
- #define SFLASH_REPLY_LEN_SE (0)
- #define SFLASH_REPLY_LEN_BE (0)
- #define SFLASH_REPLY_LEN_DP (0)
- #define SFLASH_REPLY_LEN_RDP (0)
- /* Exported functions ------------------------------------------------------- */
- rt_err_t efm_spiFlash_init(void);
- rt_err_t efm_spiFlash_deinit(void);
- rt_uint32_t efm_spiFlash_cmd(
- enum sflash_inst_type_t command,
- rt_uint32_t address,
- rt_uint8_t *buffer,
- rt_uint32_t size);
- #endif /* __DEV_SFLASH_H__ */
|