| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 | 
							- #ifndef SPI_FLASH_H
 
- #define SPI_FLASH_H
 
- #include <stdint.h>
 
- #include <stdbool.h>
 
- #include <stdlib.h>
 
- #include <string.h>
 
- #include <unistd.h>
 
- #ifdef PRINTF_STDLIB
 
- #include <stdio.h>
 
- #endif
 
- #ifdef PRINTF_CUSTOM
 
- #include "tinystdio.h"
 
- #endif
 
- #define SPI_FLASH_SECTOR_SIZE		        4096
 
- #define SPI_FLASH_SECTORS_IN_BLOCK_NUMBER   16
 
- #define SPI_FLASH_BLOCK_SIZE                16//4
 
- #define SPI_FLASH_BLOCK_NUMBER		        32
 
- // SPI flash partitioning layout
 
- #define LOG_FLASH_SECTOR_OFFSET	4
 
- #ifdef HARDWARE_BT6711
 
- // assuming 512 sectors
 
- #define ALARM_LOG_FLASH_SECTOR_OFFSET	174
 
- #define SECTOR_COUNT 170
 
- #define FIRMWARE_UPDATE_SECTOR_OFFSET	344
 
- #define FIRMWARE_UPDATE_SECTOR_COUNT	(512 - FIRMWARE_UPDATE_SECTOR_OFFSET)
 
- #else // HARDWARE_BT6711
 
- #define ALARM_LOG_FLASH_SECTOR_OFFSET	258
 
- #define SECTOR_COUNT (spi_flash_desc.sector_count/2 - LOG_FLASH_SECTOR_OFFSET)
 
- #endif // HARDWARE_BT6711
 
- #if defined ( __ICCARM__ )
 
- typedef int ssize_t;
 
- #endif
 
- typedef struct {
 
- 	bool present;
 
- //	uint16_t sector_size;
 
- 	uint32_t sector_size;
 
- 	uint8_t sector_erase_op;
 
- 	uint16_t sector_count;
 
- } spi_flash_desc_t;
 
- extern spi_flash_desc_t spi_flash_desc;
 
- extern bool spi_flash_init(void);
 
- extern ssize_t spi_flash_read(int addr, void *buf, size_t len, uint32_t timeout);
 
- extern ssize_t spi_flash_write(int addr, const void *buf, size_t len, uint32_t timeout);
 
- extern int spi_flash_erase_sector(int addr, uint32_t timeout);
 
- extern int spi_flash_chip_erase(uint32_t timeout);
 
- extern bool spi_flash_test(void);
 
- #endif /* SPI_FLASH_H */
 
 
  |