62 lines
2.3 KiB
C
62 lines
2.3 KiB
C
#ifndef _SPI_FLASH_H_
|
||
#define _SPI_FLASH_H_ 1
|
||
#include "Flash.h"
|
||
|
||
//===========ATMEL 081D flash==================
|
||
#define FLASH_CHREAD 0x0B
|
||
#define FLASH_CLREAD 0x03
|
||
#define FLASH_PREAD 0xD2
|
||
|
||
#define FLASH_BUFWRITE1 0x84
|
||
#define FLASH_IDREAD 0x9F
|
||
//#define FLASH_STATUS 0xD7
|
||
#define PAGE_ERASE 0x81
|
||
//#define PAGE_READ 0xD2 //011D 264
|
||
#define PAGE_READ 0x52 //161D 528
|
||
#define MM_PAGE_TO_B1_XFER 0x53 // 将主存储器的指定页数据加载到第一缓冲区
|
||
#define BUFFER_2_WRITE 0x87 // 写入第二缓冲区
|
||
#define B2_TO_MM_PAGE_PROG_WITH_ERASE 0x86 // 将第二缓冲区的数据写入主存储器(擦除模式)
|
||
|
||
#define Dummy_Byte 0xA5
|
||
|
||
//===========MXIC 8006E flash==================
|
||
#define FLASH_STATUS 0x05
|
||
//#define PAGE_READ
|
||
|
||
/* Select SPI FLASH: ChipSelect pin low */
|
||
#define Select_Flash() GPIO_ResetBits(GPIOB, GPIO_Pin_12)
|
||
/* Deselect SPI FLASH: ChipSelect pin high */
|
||
#define NotSelect_Flash() GPIO_SetBits(GPIOB, GPIO_Pin_12)
|
||
|
||
#define sFLASH_PAGE_MASK 0xFFF00
|
||
#define sFLASH_PAGE_SIZE 0x100
|
||
|
||
#define DOWN_ONE_FRAME_LENGTH 200 //2013-03-19
|
||
|
||
void Delay_100us_1(void);
|
||
void SPI_Flash_Init(void); //SPI初始化
|
||
u8 SPI_Flash_ReadByte(void); //flash操作基本函数,读一个字节
|
||
u8 SPI_Flash_SendByte(u8 byte);
|
||
//void SPI_Flash_SendByte(unsigned char Update_Data); // FLASH操作基本函数,发送一个字节
|
||
//void FlashPageEarse(u16 page); //擦除指定的页,页范围0-4095
|
||
|
||
void FlashPageRead(unsigned int wPage,unsigned char *Update_Ptr); //读取整页,页范围0-4095
|
||
void FlashPageWrite(u16 wPage,u8 *Data); //写一整页,页范围0-4095
|
||
void flash_page_read(unsigned short wPage, unsigned char* pData);
|
||
void FlashWaidBusy(void);
|
||
void flash_write_enable(void);
|
||
void FlashWaitBusy(void); //Flash忙检测
|
||
void FlashReadID(u8 *ProdustID); //读取flashID四个字节
|
||
void D_spiWriteFlash(unsigned int iadr, unsigned short nbyte, unsigned char* psrc_data);
|
||
void D_spiReadFlashPage(unsigned int iadr,unsigned short ilen,unsigned char *pdin_data);
|
||
void D_spiFlashRead(u32 iaddr,u16 length, u8 *pdin_data);
|
||
void D_spiFlashWrite(u32 iadr, u16 length, u8 *psrc_data);
|
||
void UClearWatchdog(void);//@ "FLASHCODE"
|
||
void Flash_Page_Read(unsigned int wPage,unsigned char *Update_Ptr);
|
||
void flash_sector_erase(unsigned int uiAddr);
|
||
void flash_sector_write(unsigned int uiAddr, unsigned short wLen);
|
||
void flash_fast_read( unsigned int iAddr, unsigned short wLen );
|
||
#endif
|
||
|
||
|