MS-DTU/Anjiehui7_Set_ZNY/User/spi_Flash.h

56 lines
1.6 KiB
C
Raw Permalink Normal View History

2025-04-03 14:18:58 +08:00
/*
*********************************************************************************************************
* IAR Development Kits
* on the
*
* M451
*
* Filename : spi_flash.h
* Version : V1.00
* Programmer(s) : Qian Xianghong
*********************************************************************************************************
*/
#ifndef USER_SPI_FLASH_PRESENT
#define USER_SPI_FLASH_PRESENT
#include "type.h"
// Flash<73><EFBFBD><EFBFBD><E6BBAE><EFBFBD>£<EFBFBD>
// 0~7K: boot-loader<65><72><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>LDROM<4F><4D><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ִ<EFBFBD><D6B4>
// 8~11K: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>2K+2K<32><4B>˫<EFBFBD>ݴ洢<DDB4><E6B4A2>
// 12~15K<35><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 16~255K: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>16<31><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֿ⣬<D6BF><E2A3AC>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ڳ<EFBFBD><DAB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 256~511K<31><4B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// 512K~8M: <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>GPRS<52>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ<EFBFBD><D6B7>8K<38><4B><EFBFBD><EFBFBD>СΪ4K<34><4B>
#define SFLASH_CONFIG_BASE 0x2000
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ַ<EFBFBD><D6B7>256K<36><4B><EFBFBD><EFBFBD>СΪ256K<36><4B>
#define SFLASH_UPGRADE_BASE 0x40000ul
// Flash<73><EFBFBD><E6B4A2><EFBFBD><EFBFBD>: 8M bytes
#define SFLASH_SIZE 0x800000ul
#define SFLASH_PAGE_SIZE 256
#define SFLASH_ERASE_SIZE 256 // Page erase size
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void SFlash_Init();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
void SFlash_Open();
void SFlash_ReadID();
uint8_t SFlash_UnlockBPR();
uint8_t SFlash_WriteEN();
void SFlash_ChipErase();
void SFlash_SectorErase(uint32_t Addr);
void SFlash_PageErase(uint32_t Addr);
uint32_t SFlash_BufferWrite(uint32_t Addr, uint8_t *buf, uint32_t nbytes);
uint32_t SFlash_BufferRead(uint32_t Addr, uint8_t *buf, uint32_t nbytes);
uint32_t SFlash_BufferVerify(uint32_t Addr, uint8_t *buf, uint32_t nbytes);
uint16_t do_sflash_crc(unsigned long base_addr, long len);
#endif