/* * Copyright (C) 2013 -2014 Espressif System * */ #ifndef __ESP_SYSTEM_H__ #define __ESP_SYSTEM_H__ #ifdef __cplusplus extern "C" { #endif enum sdk_rst_reason { DEFAULT_RST = 0, WDT_RST = 1, EXCEPTION_RST = 2, SOFT_RST = 3 }; struct sdk_rst_info{ uint32_t reason; uint32_t exccause; uint32_t epc1; uint32_t epc2; uint32_t epc3; uint32_t excvaddr; uint32_t depc; uint32_t rtn_addr; }; struct netif *sdk_system_get_netif(uint32_t mode); struct sdk_rst_info* sdk_system_get_rst_info(void); const char* sdk_system_get_sdk_version(void); enum sdk_sleep_type { WIFI_SLEEP_NONE = 0, WIFI_SLEEP_LIGHT = 1, WIFI_SLEEP_MODEM = 2, }; bool sdk_wifi_set_sleep_type(enum sdk_sleep_type); enum sdk_sleep_type sdk_wifi_get_sleep_type(void); 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); void sdk_system_print_meminfo(void); uint32_t sdk_system_get_free_heap_size(void); uint32_t sdk_system_get_chip_id(void); uint32_t sdk_system_rtc_clock_cali_proc(void); uint32_t sdk_system_get_rtc_time(void); bool sdk_system_rtc_mem_read(uint32_t src_addr, void *des_addr, uint16_t save_size); bool sdk_system_rtc_mem_write(uint32_t des_addr, void *src_addr, uint16_t save_size); 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 } #endif #endif