#ifndef __CPU_ESP8266_H__ #define __CPU_ESP8266_H__ #include "os_type.h" #include "spi_flash.h" #include "pin_map.h" #include "user_config.h" #include "flash_api.h" // Number of resources (0 if not available/not implemented) #define NUM_GPIO GPIO_PIN_NUM #define NUM_SPI 2 #define NUM_UART 1 #define NUM_PWM GPIO_PIN_NUM #define NUM_ADC 1 #define NUM_CAN 0 #define NUM_I2C 1 #define NUM_OW GPIO_PIN_NUM #define NUM_TMR 7 #if defined(FLASH_512K) #define FLASH_SEC_NUM 0x80 // 4MByte: 0x400, 2MByte: 0x200, 1MByte: 0x100, 512KByte: 0x80 #elif defined(FLASH_1M) #define FLASH_SEC_NUM 0x100 #elif defined(FLASH_2M) #define FLASH_SEC_NUM 0x200 #elif defined(FLASH_4M) #define FLASH_SEC_NUM 0x400 #elif defined(FLASH_8M) #define FLASH_SEC_NUM 0x800 #elif defined(FLASH_16M) #define FLASH_SEC_NUM 0x1000 #elif defined(FLASH_AUTOSIZE) #if defined(FLASH_SAFE_API) #define FLASH_SEC_NUM (flash_safe_get_sec_num()) #else #define FLASH_SEC_NUM (flash_rom_get_sec_num()) #endif // defined(FLASH_SAFE_API) #else #define FLASH_SEC_NUM 0x80 #endif #define SYS_PARAM_SEC_NUM 4 #define SYS_PARAM_SEC_START (FLASH_SEC_NUM - SYS_PARAM_SEC_NUM) // #define WOFS_SEC_START 0x80 // #define WOFS_SEC_START 0x60 // #define WOFS_SEC_END (SYS_PARAM_SEC_START) // #define WOFS_SEC_NUM (WOFS_SEC_END - WOFS_SEC_START) // #define WOFS_SEC_NUM 0xc #define INTERNAL_FLASH_SECTOR_SIZE SPI_FLASH_SEC_SIZE // #define INTERNAL_FLASH_SECTOR_ARRAY { 0x4000, 0x4000, 0x4000, 0x4000, 0x10000, 0x20000, 0x20000, 0x20000, 0x20000, 0x20000 } #define INTERNAL_FLASH_WRITE_UNIT_SIZE 4 #define INTERNAL_FLASH_READ_UNIT_SIZE 4 #define INTERNAL_FLASH_SIZE ( (SYS_PARAM_SEC_START) * INTERNAL_FLASH_SECTOR_SIZE ) #define INTERNAL_FLASH_MAPPED_ADDRESS 0x40200000 // SpiFlashOpResult spi_flash_erase_sector(uint16 sec); // SpiFlashOpResult spi_flash_write(uint32 des_addr, uint32 *src_addr, uint32 size); // SpiFlashOpResult spi_flash_read(uint32 src_addr, uint32 *des_addr, uint32 size); #if defined(FLASH_SAFE_API) #define flash_write flash_safe_write #define flash_erase flash_safe_erase_sector #define flash_read flash_safe_read #else #define flash_write spi_flash_write #define flash_erase spi_flash_erase_sector #define flash_read spi_flash_read #endif // defined(FLASH_SAFE_API) #define CACHE_FLASH_CTRL_REG 0x3ff0000c #define CACHE_FLASH_ACTIVE 0x00000100 #define CACHE_FLASH_MAPPED0 0x02000000 #define CACHE_FLASH_MAPPED1 0x00010000 #endif // #ifndef __CPU_ESP8266_H__