| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 | //xflash.h#ifndef _XFLASH_H#define _XFLASH_H#include <inttypes.h>#include "config.h"#include "spi.h"#define XFLASH_STATUS_BUSY   0x01#define XFLASH_STATUS_WEL    0x02#define XFLASH_STATUS_BP0    0x04#define XFLASH_STATUS_BP1    0x08#define XFLASH_STATUS_TB     0x20#define XFLASH_STATUS_SRP    0x80#define XFLASH_SPI_RATE      0 // fosc/4 = 4MHz#define XFLASH_SPCR          SPI_SPCR(XFLASH_SPI_RATE, 1, 1, 1, 0)#define XFLASH_SPSR          SPI_SPSR(XFLASH_SPI_RATE)#define XFLASH_SPI_ENTER() spi_setup(XFLASH_SPCR, XFLASH_SPSR)#if defined(__cplusplus)extern "C" {#endif //defined(__cplusplus)extern int8_t xflash_init(void);extern void xflash_enable_wr(void);extern void xflash_disable_wr(void);extern uint8_t xflash_rd_status_reg(void);#if 0extern void w25x20cl_wr_status_reg(uint8_t val);#endifextern void xflash_rd_data(uint32_t addr, uint8_t* data, uint16_t cnt);extern void xflash_page_program(uint32_t addr, uint8_t* data, uint16_t cnt);extern void xflash_page_program_P(uint32_t addr, uint8_t* data, uint16_t cnt);extern void xflash_sector_erase(uint32_t addr);extern void xflash_block32_erase(uint32_t addr);extern void xflash_block64_erase(uint32_t addr);extern void xflash_chip_erase(void);extern void xflash_page_program(uint32_t addr, uint8_t* data, uint16_t cnt);extern void xflash_rd_uid(uint8_t* uid);extern void xflash_wait_busy(void);#if defined(__cplusplus)}#endif //defined(__cplusplus)#endif //_XFLASH_H
 |