Merge branch 'master' into open-libmain

Conflicts:
	core/include/esp/rtc_regs.h
	include/espressif/spi_flash.h
This commit is contained in:
Alex Stewart 2016-03-22 16:24:50 -07:00
commit 769ca0d8f8
89 changed files with 4766 additions and 634 deletions

View file

@ -35,7 +35,7 @@ struct sdk_scan_config {
};
struct sdk_bss_info {
STAILQ_ENTRY(bss_info) next;
STAILQ_ENTRY(sdk_bss_info) next;
uint8_t bssid[6];
uint8_t ssid[32];

View file

@ -42,6 +42,7 @@ enum sdk_sleep_type sdk_wifi_get_sleep_type(enum sdk_sleep_type);
void sdk_system_restore(void);
void sdk_system_restart(void);
bool sdk_system_deep_sleep_set_option(uint8_t option);
void sdk_system_deep_sleep(uint32_t time_in_us);
uint32_t sdk_system_get_time(void);
@ -57,6 +58,25 @@ bool sdk_system_rtc_mem_read(uint8_t src, void *dst, uint16_t n);
bool sdk_system_rtc_mem_write(uint8_t dst, const void *src, uint16_t n);
void sdk_system_uart_swap(void);
void sdk_system_uart_de_swap(void);
#define SYS_CPU_80MHZ 80
#define SYS_CPU_160MHZ 160
/*
Set CPU frequency in MHz. All peripheral devices are clocked by independent
system bus, and CPU frequency change will not affect them.
*/
bool sdk_system_update_cpu_freq(uint8_t freq);
uint8_t sdk_system_get_cpu_freq(void);
/*
Measure voltage on the TOUT pin, 1V max. Returns 10 bits ADC value (1/1024V).
Voltage range 0 .. 1.0V. RF must be enabled.
Example:
printf ("ADC voltage is %.3f", 1.0 / 1024 * sdk_system_adc_read());
*/
uint16_t sdk_system_adc_read(void);
#ifdef __cplusplus
}

View file

@ -23,9 +23,48 @@ typedef enum {
uint32_t sdk_spi_flash_get_id(void);
sdk_SpiFlashOpResult sdk_spi_flash_read_status(uint32_t *status);
sdk_SpiFlashOpResult sdk_spi_flash_write_status(uint32_t status_value);
/* Erase SPI flash sector. Parameter is sector index.
Sectors are SPI_FLASH_SEC_SIZE (4096) bytes long.
*/
sdk_SpiFlashOpResult sdk_spi_flash_erase_sector(uint16_t sec);
sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, uint32_t *src_addr, uint32_t size);
sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, uint32_t *des_addr, uint32_t size);
/* Write data to flash.
des_addr is byte offset to write to. Should be 4-byte aligned.
src is pointer to a buffer to read bytes from.
size is length of buffer in bytes. Should be a multiple of 4.
*/
sdk_SpiFlashOpResult sdk_spi_flash_write(uint32_t des_addr, const void *src, uint32_t size);
/* Read data from flash.
src_addr is byte offset to read from. Should be 4-byte aligned.
des is pointer to a buffer to read bytes into.
size is number of bytes to read. Should be a multiple of 4.
*/
sdk_SpiFlashOpResult sdk_spi_flash_read(uint32_t src_addr, void *des, uint32_t size);
/* SDK uses this structure internally to account for flash size.
chip_size field is initialised during startup from the flash size
saved in the image header (on the first 8 bytes of SPI flash).
Other field are initialised to hardcoded values by the SDK.
Based on RE work by @foogod at
http://esp8266-re.foogod.com/wiki/Flashchip_%28IoT_RTOS_SDK_0.9.9%29
*/
typedef struct {
uint32_t device_id;
uint32_t chip_size; /* in bytes */
uint32_t block_size; /* in bytes */
uint32_t sector_size; /* in bytes */
uint32_t page_size; /* in bytes */
uint32_t status_mask;
} sdk_flashchip_t;
extern sdk_flashchip_t sdk_flashchip;