diff --git a/changes.md b/changes.md index 32fabfd53..22da473e8 100644 --- a/changes.md +++ b/changes.md @@ -15,6 +15,8 @@ ### Tools +- SDK updated to 1.1.0 (#306) + ## 1.6.4-673-g8cd3697 May 22, 2015 diff --git a/cores/esp8266/core_esp8266_main.cpp b/cores/esp8266/core_esp8266_main.cpp index d45165443..34e436c88 100644 --- a/cores/esp8266/core_esp8266_main.cpp +++ b/cores/esp8266/core_esp8266_main.cpp @@ -116,6 +116,12 @@ void init_done() { esp_schedule(); } +extern "C" { +void user_rf_pre_init() { + +} +} + extern "C" { void user_init(void) { uart_div_modify(0, UART_CLK_FREQ / (115200)); diff --git a/cores/esp8266/spiffs/spiffs.h b/cores/esp8266/spiffs/spiffs.h index 7df7ae049..376560436 100644 --- a/cores/esp8266/spiffs/spiffs.h +++ b/cores/esp8266/spiffs/spiffs.h @@ -511,7 +511,6 @@ u32_t SPIFFS_buffer_bytes_for_cache(spiffs *fs, u32_t num_pages); #endif #endif -#include "spiffs_esp8266.h" #ifdef __cplusplus } diff --git a/tools/sdk/changelog.txt b/tools/sdk/changelog.txt index 86bb16cee..ad750024a 100644 --- a/tools/sdk/changelog.txt +++ b/tools/sdk/changelog.txt @@ -1,3 +1,102 @@ +esp_iot_sdk_v1.1.0_15_05_22 Release Note +---------------------------------------- +Resolved Issues(Bugs below are eligible for Bug Bounty Program): +1.Predictable TLS random values leads to insecure connections [projectgus] +2.Connection problem in softAP+station mode.[智捷通] +3.Low heap cause of reset when connect using SSL. [TuanPM] +4.Smart config issue [bigbear] + +Document "2C_ESP8266__Programming Guide" updates: +1.Update Demo code of rtc timer in appendix, and rtc timer will return to zero after deep-sleep wake up. [andrew] +2.Add "3.espconn callback" in appendix to introduce espconn callbacks and the pointer may be different in different callback.[nagverma] +3.Add RF description in “2.Overview”,if RF is disabled,ESP8266 station and soft-AP are both disabled.[yiaiguo] +4.Revise name of API "wifi_softap_set_dhcps_offer_option" [ryan] + +Optimization: +1.Solving the problem that some Wi-Fi events may be missing during test. +2.UART Wi-Fi passthrough of UDP maybe change to oneway. [orgmar] +3.Optimized FOTA to make upgrade faster +4.ESP8266 soft-AP can connected to 8 stations at most, softap_config.max_connection default is 4 +5.ESP8266 station will connect to the stronger WiFi signal, if there are several APs sharing the same SSID.[stefan] +6.Add 1024KB+1024KB flash map which need boot_v1.4+, more details in document "2A-ESP8266_IOT_SDK_User_Manual" +7.Optimized PWM driver +8.Revised structure mdns_info to support 10 groups of text data. +9.Add user_rf_pre_init in user_main.c, user can set configuration of RF in it. + +Added APIs: +1.sntp_set_timezone: set SNTP time zone. +2.espconn_dns_setserver : set default DNS server +3.system_uart_de_swap : disable UART0 swap +4.system_get_flash_size_map: get flash size and flash map +5.system_phy_set_max_tpw : set maximum RF TX power +6.system_phy_set_tpw_via_vdd33 :set RF TX power according to VDD33 +7.system_phy_set_rfoption : set RF option +8.wifi_station_get_rssi:get rssi of AP which ESP8266 station connected to   +9.wifi_softap_get_station_num :get number count of stations connected to ESP8266 soft-AP + +AT_v0.24 Release Note: +Note: For AT firmware to support FOTA, flash size need to be 1024KB or more than that. +Optimization: +1.Disable data echo of command "AT+CIPSEND" +2.Optimized "AT+CWJAP?" to get channel and rssi +3.ESP8266 station IP can only be got and inquiried after ESP8266 station connected to AP + +Added AT command: +1.AT+RFPOWER :set maximum RF TX power +2.AT+RFVDD : set RF TX power according to VDD33 + + +自从乐鑫信息科技于 2015-03-20 启动 Bug 赏金计划以来,我们收到了一些重要问题反馈及建议,感谢世界各地的开发者对 ESP8266的关注,推动我们的软件更进一步,技术支持团队也得到迅速地成长。我们将在如下发布日志中点名感谢您的帮助。 + +esp_iot_sdk_v1.1.0_15_05_22 Release Note +修正问题(符合乐鑫 Bug 赏金计划): +1.随机值的生成可以被预测,完善随机数的产生机制 [projectgus] +2.softAP+station 模式下,可能连接 ESP8266 soft-AP 失败 [智捷通] +3.内存不足导致 SSL 连接时重启. [TuanPM] +4.Smart config 相关问题 [bigbear] + +文档 "2C_ESP8266__Programming Guide" 更新: +1.更新附录中的 RTC 示例代码,RTC 时钟会因 deep-sleep 清零. [andrew] +2.附录新增 "3.espconn callback"介绍 espconn callbacks,不同的 espconn callback 中 espconn 结构体指针可能不同.[nagverma] +3.“2.概述”中增加 RF 设置的说明,如果不打开 RF ,ESP8266 station 和 soft-AP 均失效。[yiaiguo] +4.修正 API 名称 "wifi_softap_set_dhcps_offer_option" [ryan] + +优化: +1.解决特定测试环境下某些 Wi-Fi events 可能缺失的问题。 +2.UDP 透传可能变成单向传输的相关问题 [orgmar] +3.优化 FOTA 的底层实现,加快升级速度 +4.ESP8266 soft-AP 最多可连接 8 个 station, 默认最大连接个数为 4 +5.当多个 AP 的 SSID password相同时,ESP8266 station 默认连接信号最强的 AP。[stefan] +6.更新 boot_v1.4+ 及编译文件,支持 1024KB+1024KB flash map , flash map 的详细介绍见文档 "2A-ESP8266_IOT_SDK_User_Manual" +7.优化 PWM driver +8.优化 structure mdns_info 支持 10 组 text data. +9.在 user_main.c 中新增 user_rf_pre_init , 用户可在 user_rf_pre_init 中调用 system_phy_set_rfoption 配置 RF 初始化. + +新增 APIs: +1.sntp_set_timezone: SNTP 设置时区 +2.espconn_dns_setserver : 设置默认 DNS server +3.system_uart_de_swap : 取消 UART0 转换 +4.system_get_flash_size_map: 查询 flash size 和 flash map +5.system_phy_set_max_tpw : 设置 RF TX power 最大值 +6.system_phy_set_tpw_via_vdd33 :根据 VDD33 设置 RF TX power +7.system_phy_set_rfoption : 设置 RF +8.wifi_station_get_rssi:查询 ESP8266 station 连接的 AP 的信号强度   +9.wifi_softap_get_station_num :查询连接到 ESP8266 soft-AP 的 station 数目 + +AT_v0.24 Release Note: +注意:运行 AT 固件,支持云端升级,请使用 1024KB 或以上容量的 flash + +优化: +1."AT+CIPSEND" 发送数据时,数据不回显 +2.优化"AT+CWJAP?" 可获得信道和信号强度 +3.必须在 ESP8266 station 连接到 AP 后,才能查询到 ESP8266 station IP + +新增 AT command: +1.AT+RFPOWER :设置 RF TX power 最大值 +2.AT+RFVDD : 根据 VDD33 设置 RF TX power + +Thanks for your interest in ESP8266 ! + esp_iot_sdk_v1.0.1_15_05_04_p1 ------------------------------------------- Here is a patch for station+softAP issue that users may have, based on SDK_v1.0.1, @@ -18,7 +117,7 @@ Optimization: 1. Optimized IOT_Espressif_EspTouch.APK (apply for access from Espressif) for improved compatibility. [???] 2. TCP server can not open again immediately with the same port [624908539] 3. Update UART driver for parity bit value may be incorrect [1062583993] -4. Add define of ICACHE_RODATA_ATTR for Symbol 'ICACHE_RODATA_ATTR' could not be resolved. [???] +4. Add define of “ICACHE_RODATA_ATTR” for Symbol 'ICACHE_RODATA_ATTR' could not be resolved. [???] 5. Add API wifi_softap_dhcps_set_offer_option to enable/disable ESP8266 softAP DHCP server default gateway. [xyz769] 6. AT register_uart_rx_intr may enter callback twice. [???] 7.optimize document that WPA password length range : 8 ~ 64 bytes [785057041] @@ -75,7 +174,7 @@ Fix bugs: 4.UDP broadcast issue in WEP Optimize: -1.Add more details about measure ADC & VDD3P3 in appendix of document2C-SDK-Espressif IoT SDK Programming Guide[BBP#15 reporter (DarkByte)] +1.Add more details about measure ADC & VDD3P3 in appendix of document“2C-SDK-Espressif IoT SDK Programming Guide”[BBP#15 reporter (DarkByte)] 2.Can not do any WiFi related operation if WiFi mode is in NULL_MODE [BBP#23 reporter (hao.wang)] 3.start_ip and end_ip won't change through API wifi_softap_set_dhcps_lease [BBP#37 reporter (glb)] 4.AT get into busy state [BBP#35 reporter (tommy_hk)] diff --git a/tools/sdk/include/eagle_soc.h b/tools/sdk/include/eagle_soc.h index 59214159e..71e32dc2e 100644 --- a/tools/sdk/include/eagle_soc.h +++ b/tools/sdk/include/eagle_soc.h @@ -184,9 +184,9 @@ #define PERIPHS_IO_MUX_FUNC 0x13 #define PERIPHS_IO_MUX_FUNC_S 4 #define PERIPHS_IO_MUX_PULLUP BIT7 -#define PERIPHS_IO_MUX_PULLDWN BIT6 +#define PERIPHS_IO_MUX_PULLUP2 BIT6 #define PERIPHS_IO_MUX_SLEEP_PULLUP BIT3 -#define PERIPHS_IO_MUX_SLEEP_PULLDWN BIT2 +#define PERIPHS_IO_MUX_SLEEP_PULLUP2 BIT2 #define PERIPHS_IO_MUX_SLEEP_OE BIT1 #define PERIPHS_IO_MUX_OE BIT0 diff --git a/tools/sdk/include/espconn.h b/tools/sdk/include/espconn.h index eaf23bbec..a85c82392 100644 --- a/tools/sdk/include/espconn.h +++ b/tools/sdk/include/espconn.h @@ -126,9 +126,8 @@ struct mdns_info { char *server_name; uint16 server_port; unsigned long ipAddr; - char *txt_data; + char *txt_data[10]; }; - /****************************************************************************** * FunctionName : espconn_connect * Description : The function given as the connect @@ -174,19 +173,6 @@ sint8 espconn_accept(struct espconn *espconn); sint8 espconn_create(struct espconn *espconn); -/****************************************************************************** - * FunctionName : espconn_sent - * Description : sent data for client or server - * Parameters : espconn -- espconn to set for client or server - * psent -- data to send - * length -- length of data to send - * Returns : none -*******************************************************************************/ - -sint8 espconn_sent(struct espconn *espconn, uint8 *psent, uint16 length); - -/***** Connetion Settings *******/ - /****************************************************************************** * FunctionName : espconn_tcp_get_max_con * Description : get the number of simulatenously active TCP connections @@ -218,7 +204,7 @@ sint8 espconn_tcp_get_max_con_allow(struct espconn *espconn); * FunctionName : espconn_tcp_set_max_con_allow * Description : set the count of simulatenously active connections on the server * Parameters : espconn -- espconn to set the count - * num -- support the connection number + * num -- support the connection number * Returns : result *******************************************************************************/ @@ -228,7 +214,7 @@ sint8 espconn_tcp_set_max_con_allow(struct espconn *espconn, uint8 num); * FunctionName : espconn_regist_time * Description : used to specify the time that should be called when don't recv data * Parameters : espconn -- the espconn used to the connection - * interval -- the timer when don't recv data + * interval -- the timer when don't recv data * Returns : none *******************************************************************************/ @@ -248,69 +234,12 @@ sint8 espconn_get_connection_info(struct espconn *pespconn, remot_info **pcon_in * FunctionName : espconn_get_packet_info * Description : get the packet info with host * Parameters : espconn -- the espconn used to disconnect the connection - * infoarg -- the packet info + * infoarg -- the packet info * Returns : the errur code *******************************************************************************/ sint8 espconn_get_packet_info(struct espconn *espconn, struct espconn_packet* infoarg); -/****************************************************************************** - * FunctionName : espconn_port - * Description : access port value for client so that we don't end up bouncing - * all connections at the same time . - * Parameters : none - * Returns : access port value -*******************************************************************************/ - -uint32 espconn_port(void); - -/****************************************************************************** - * FunctionName : espconn_set_opt - * Description : access port value for client so that we don't end up bouncing - * all connections at the same time . - * Parameters : espconn -- the espconn used to set the connection - * opt -- the option to set - * Returns : access port value -*******************************************************************************/ - -sint8 espconn_set_opt(struct espconn *espconn, uint8 opt); - -/****************************************************************************** - * FunctionName : espconn_clear_opt - * Description : clear the option for connections so that we don't end up bouncing - * all connections at the same time . - * Parameters : espconn -- the espconn used to set the connection - * opt -- the option for clear - * Returns : the result -*******************************************************************************/ - -sint8 espconn_clear_opt(struct espconn *espconn, uint8 opt); - -/****************************************************************************** - * FunctionName : espconn_set_keepalive - * Description : access level value for connection so that we set the value for - * keep alive - * Parameters : espconn -- the espconn used to set the connection - * level -- the connection's level - * value -- the value of time(s) - * Returns : access port value -*******************************************************************************/ - -sint8 espconn_set_keepalive(struct espconn *espconn, uint8 level, void* optarg); - -/****************************************************************************** - * FunctionName : espconn_get_keepalive - * Description : access level value for connection so that we get the value for - * keep alive - * Parameters : espconn -- the espconn used to get the connection - * level -- the connection's level - * Returns : access keep alive value -*******************************************************************************/ - -sint8 espconn_get_keepalive(struct espconn *espconn, uint8 level, void *optarg); - -/***** CALLBACKS *******/ - /****************************************************************************** * FunctionName : espconn_regist_sentcb * Description : Used to specify the function that should be called when data @@ -324,9 +253,9 @@ sint8 espconn_get_keepalive(struct espconn *espconn, uint8 level, void *optarg); sint8 espconn_regist_sentcb(struct espconn *espconn, espconn_sent_callback sent_cb); /****************************************************************************** - * FunctionName : espconn_regist_write_finish + * FunctionName : espconn_regist_sentcb * Description : Used to specify the function that should be called when data - * has been successfully written to the send buffer + * has been successfully delivered to the remote host. * Parameters : espconn -- espconn to set the sent callback * sent_cb -- sent callback function to call for this espconn * when data is successfully sent @@ -335,6 +264,17 @@ sint8 espconn_regist_sentcb(struct espconn *espconn, espconn_sent_callback sent_ sint8 espconn_regist_write_finish(struct espconn *espconn, espconn_connect_callback write_finish_fn); +/****************************************************************************** + * FunctionName : espconn_sent + * Description : sent data for client or server + * Parameters : espconn -- espconn to set for client or server + * psent -- data to send + * length -- length of data to send + * Returns : none +*******************************************************************************/ + +sint8 espconn_sent(struct espconn *espconn, uint8 *psent, uint16 length); + /****************************************************************************** * FunctionName : espconn_regist_connectcb * Description : used to specify the function that should be called when @@ -378,7 +318,59 @@ sint8 espconn_regist_reconcb(struct espconn *espconn, espconn_reconnect_callback sint8 espconn_regist_disconcb(struct espconn *espconn, espconn_connect_callback discon_cb); -/***** DNS *******/ +/****************************************************************************** + * FunctionName : espconn_port + * Description : access port value for client so that we don't end up bouncing + * all connections at the same time . + * Parameters : none + * Returns : access port value +*******************************************************************************/ + +uint32 espconn_port(void); + +/****************************************************************************** + * FunctionName : espconn_set_opt + * Description : access port value for client so that we don't end up bouncing + * all connections at the same time . + * Parameters : none + * Returns : access port value +*******************************************************************************/ + +sint8 espconn_set_opt(struct espconn *espconn, uint8 opt); + +/****************************************************************************** + * FunctionName : espconn_clear_opt + * Description : clear the option for connections so that we don't end up bouncing + * all connections at the same time . + * Parameters : espconn -- the espconn used to set the connection + * opt -- the option for clear + * Returns : the result +*******************************************************************************/ + +sint8 espconn_clear_opt(struct espconn *espconn, uint8 opt); + +/****************************************************************************** + * FunctionName : espconn_set_keepalive + * Description : access level value for connection so that we set the value for + * keep alive + * Parameters : espconn -- the espconn used to set the connection + * level -- the connection's level + * value -- the value of time(s) + * Returns : access port value +*******************************************************************************/ + +sint8 espconn_set_keepalive(struct espconn *espconn, uint8 level, void* optarg); + +/****************************************************************************** + * FunctionName : espconn_get_keepalive + * Description : access level value for connection so that we get the value for + * keep alive + * Parameters : espconn -- the espconn used to get the connection + * level -- the connection's level + * Returns : access keep alive value +*******************************************************************************/ + +sint8 espconn_get_keepalive(struct espconn *espconn, uint8 level, void *optarg); /****************************************************************************** * TypedefName : dns_found_callback @@ -413,8 +405,6 @@ typedef void (*dns_found_callback)(const char *name, ip_addr_t *ipaddr, void *ca err_t espconn_gethostbyname(struct espconn *pespconn, const char *hostname, ip_addr_t *addr, dns_found_callback found); -/***** SSL *******/ - /****************************************************************************** * FunctionName : espconn_encry_connect * Description : The function given as connection @@ -437,7 +427,7 @@ sint8 espconn_secure_disconnect(struct espconn *espconn); * FunctionName : espconn_encry_sent * Description : sent data for client or server * Parameters : espconn -- espconn to set for client or server - * psent -- data to send + * psent -- data to send * length -- length of data to send * Returns : none *******************************************************************************/ @@ -448,8 +438,8 @@ sint8 espconn_secure_sent(struct espconn *espconn, uint8 *psent, uint16 length); * FunctionName : espconn_secure_set_size * Description : set the buffer size for client or server * Parameters : level -- set for client or server - * 1: client,2:server,3:client and server - * size -- buffer size + * 1: client,2:server,3:client and server + * size -- buffer size * Returns : true or false *******************************************************************************/ @@ -459,7 +449,7 @@ bool espconn_secure_set_size(uint8 level, uint16 size); * FunctionName : espconn_secure_get_size * Description : get buffer size for client or server * Parameters : level -- set for client or server - * 1: client,2:server,3:client and server + * 1: client,2:server,3:client and server * Returns : buffer size for client or server *******************************************************************************/ @@ -474,7 +464,23 @@ sint16 espconn_secure_get_size(uint8 level); sint8 espconn_secure_accept(struct espconn *espconn); -/***** TCP RX HOLD *******/ +/****************************************************************************** + * FunctionName : espconn_igmp_join + * Description : join a multicast group + * Parameters : host_ip -- the ip address of udp server + * multicast_ip -- multicast ip given by user + * Returns : none +*******************************************************************************/ +sint8 espconn_igmp_join(ip_addr_t *host_ip, ip_addr_t *multicast_ip); + +/****************************************************************************** + * FunctionName : espconn_igmp_leave + * Description : leave a multicast group + * Parameters : host_ip -- the ip address of udp server + * multicast_ip -- multicast ip given by user + * Returns : none +*******************************************************************************/ +sint8 espconn_igmp_leave(ip_addr_t *host_ip, ip_addr_t *multicast_ip); /****************************************************************************** * FunctionName : espconn_recv_hold @@ -492,33 +498,11 @@ sint8 espconn_recv_hold(struct espconn *pespconn); *******************************************************************************/ sint8 espconn_recv_unhold(struct espconn *pespconn); -/***** IGMP *******/ - -/****************************************************************************** - * FunctionName : espconn_igmp_join - * Description : join a multicast group - * Parameters : host_ip -- the ip address of udp server - * multicast_ip -- multicast ip given by user - * Returns : none -*******************************************************************************/ -sint8 espconn_igmp_join(ip_addr_t *host_ip, ip_addr_t *multicast_ip); - -/****************************************************************************** - * FunctionName : espconn_igmp_leave - * Description : leave a multicast group - * Parameters : host_ip -- the ip address of udp server - * multicast_ip -- multicast ip given by user - * Returns : none -*******************************************************************************/ -sint8 espconn_igmp_leave(ip_addr_t *host_ip, ip_addr_t *multicast_ip); - -/***** mDNS *******/ - /****************************************************************************** * FunctionName : espconn_mdns_init * Description : register a device with mdns * Parameters : ipAddr -- the ip address of device - * hostname -- the hostname of device + * hostname -- the hostname of device * Returns : none *******************************************************************************/ @@ -594,5 +578,15 @@ void espconn_mdns_disable(void); * Returns : none *******************************************************************************/ void espconn_mdns_enable(void); +/****************************************************************************** + * FunctionName : espconn_dns_setserver + * Description : Initialize one of the DNS servers. + * Parameters : numdns -- the index of the DNS server to set must + * be < DNS_MAX_SERVERS = 2 + * dnsserver -- IP address of the DNS server to set + * Returns : none +*******************************************************************************/ +void espconn_dns_setserver(char numdns, ip_addr_t *dnsserver); + #endif diff --git a/tools/sdk/include/osapi.h b/tools/sdk/include/osapi.h index 11e03803f..404efb855 100644 --- a/tools/sdk/include/osapi.h +++ b/tools/sdk/include/osapi.h @@ -54,5 +54,8 @@ extern int os_printf_plus(const char * format, ...) __attribute__ ((format (prin #define os_printf os_printf_plus #endif +unsigned long os_random(void); +int os_get_random(unsigned char *buf, size_t len); + #endif diff --git a/tools/sdk/include/smartconfig.h b/tools/sdk/include/smartconfig.h index 22b04ff1b..4035ad39d 100644 --- a/tools/sdk/include/smartconfig.h +++ b/tools/sdk/include/smartconfig.h @@ -6,13 +6,10 @@ #ifndef __SMARTCONFIG_H__ #define __SMARTCONFIG_H__ -typedef void (*sc_callback_t)(void *data); - typedef enum { SC_STATUS_WAIT = 0, SC_STATUS_FIND_CHANNEL, SC_STATUS_GETTING_SSID_PSWD, - SC_STATUS_GOT_SSID_PSWD, SC_STATUS_LINK, SC_STATUS_LINK_OVER, } sc_status; @@ -22,7 +19,8 @@ typedef enum { SC_TYPE_AIRKISS, } sc_type; -sc_status smartconfig_get_status(void); +typedef void (*sc_callback_t)(sc_status status, void *pdata); + const char *smartconfig_get_version(void); bool smartconfig_start(sc_type type, sc_callback_t cb, ...); bool smartconfig_stop(void); diff --git a/tools/sdk/include/sntp.h b/tools/sdk/include/sntp.h old mode 100755 new mode 100644 index 2d2749a34..6cdb337e3 --- a/tools/sdk/include/sntp.h +++ b/tools/sdk/include/sntp.h @@ -8,13 +8,17 @@ #include "ip_addr.h" #endif /** - * get the seconds since Jan 01, 1970, 00:00 (GMT) + * get the seconds since Jan 01, 1970, 00:00 (GMT + 8) */ uint32 sntp_get_current_timestamp(); /** * get real time (GTM + 8 time zone) */ char* sntp_get_real_time(long t); +/** + * SNTP set time_zone (default GMT + 8) + */ +bool sntp_set_timezone(sint8 timezone); /** * Initialize this module. * Send out request instantly or after SNTP_STARTUP_DELAY(_FUNC). diff --git a/tools/sdk/include/user_interface.h b/tools/sdk/include/user_interface.h index 1fa01edd9..7f593e0eb 100644 --- a/tools/sdk/include/user_interface.h +++ b/tools/sdk/include/user_interface.h @@ -25,11 +25,13 @@ enum rst_reason { DEFAULT_RST_FLAG = 0, WDT_RST_FLAG = 1, - EXP_RST_FLAG = 2 + EXCEPTION_RST_FLAG = 2, + SOFT_RST_FLAG = 3, + DEEP_SLEEP_AWAKE_FLAG = 4 }; struct rst_info{ - uint32 flag; + uint32 reason; uint32 exccause; uint32 epc1; uint32 epc2; @@ -87,6 +89,7 @@ bool system_rtc_mem_read(uint8 src_addr, void *des_addr, uint16 load_size); bool system_rtc_mem_write(uint8 des_addr, const void *src_addr, uint16 save_size); void system_uart_swap(void); +void system_uart_de_swap(void); uint16 system_adc_read(void); uint16 system_get_vdd33(void); @@ -110,6 +113,22 @@ bool system_restart_enhance(uint8 bin_type, uint32 bin_addr); bool system_update_cpu_freq(uint8 freq); uint8 system_get_cpu_freq(void); +enum flash_size_map { + FLASH_SIZE_4M_MAP_256_256 = 0, + FLASH_SIZE_2M, + FLASH_SIZE_8M_MAP_512_512, + FLASH_SIZE_16M_MAP_512_512, + FLASH_SIZE_32M_MAP_512_512, + FLASH_SIZE_16M_MAP_1024_1024, + FLASH_SIZE_32M_MAP_1024_1024 +}; + +enum flash_size_map system_get_flash_size_map(void); + +void system_phy_set_max_tpw(uint8 max_tpw); +void system_phy_set_tpw_via_vdd33(uint16 vdd33); +void system_phy_set_rfoption(uint8 option); + #define NULL_MODE 0x00 #define STATION_MODE 0x01 #define SOFTAP_MODE 0x02 @@ -169,6 +188,8 @@ bool wifi_station_set_config_current(struct station_config *config); bool wifi_station_connect(void); bool wifi_station_disconnect(void); +sint8 wifi_station_get_rssi(void); + struct scan_config { uint8 *ssid; // Note: ssid == NULL, don't filter ssid. uint8 *bssid; // Note: bssid == NULL, don't filter bssid. @@ -202,6 +223,7 @@ uint8 wifi_station_get_connect_status(void); uint8 wifi_station_get_current_ap_id(void); bool wifi_station_ap_change(uint8 current_ap_id); bool wifi_station_ap_number_set(uint8 ap_number); +uint8 wifi_station_get_ap_info(struct station_config config[]); bool wifi_station_dhcpc_start(void); bool wifi_station_dhcpc_stop(void); @@ -241,15 +263,15 @@ enum dhcps_offer_option{ OFFER_END }; +uint8 wifi_softap_get_station_num(void); struct station_info * wifi_softap_get_station_info(void); void wifi_softap_free_station_info(void); -uint8 wifi_station_get_ap_info(struct station_config config[]); bool wifi_softap_dhcps_start(void); bool wifi_softap_dhcps_stop(void); bool wifi_softap_set_dhcps_lease(struct dhcps_lease *please); enum dhcp_status wifi_softap_dhcps_status(void); -bool wifi_softap_dhcps_set_offer_option(uint8 level, void* optarg); +bool wifi_softap_set_dhcps_offer_option(uint8 level, void* optarg); #define STATION_IF 0x00 #define SOFTAP_IF 0x01 diff --git a/tools/sdk/lib/libjson.a b/tools/sdk/lib/libjson.a old mode 100755 new mode 100644 index cc7c69abd..5a889af73 Binary files a/tools/sdk/lib/libjson.a and b/tools/sdk/lib/libjson.a differ diff --git a/tools/sdk/lib/liblwip.a b/tools/sdk/lib/liblwip.a index d3c356dce..b4304413a 100644 Binary files a/tools/sdk/lib/liblwip.a and b/tools/sdk/lib/liblwip.a differ diff --git a/tools/sdk/lib/libmain.a b/tools/sdk/lib/libmain.a index 265466dc1..5f1e03f7d 100644 Binary files a/tools/sdk/lib/libmain.a and b/tools/sdk/lib/libmain.a differ diff --git a/tools/sdk/lib/libnet80211.a b/tools/sdk/lib/libnet80211.a index 2fa845c3b..0c634acfa 100644 Binary files a/tools/sdk/lib/libnet80211.a and b/tools/sdk/lib/libnet80211.a differ diff --git a/tools/sdk/lib/libphy.a b/tools/sdk/lib/libphy.a index cb026f941..5467d6d91 100644 Binary files a/tools/sdk/lib/libphy.a and b/tools/sdk/lib/libphy.a differ diff --git a/tools/sdk/lib/libpp.a b/tools/sdk/lib/libpp.a index d28457b1e..c2e844b54 100644 Binary files a/tools/sdk/lib/libpp.a and b/tools/sdk/lib/libpp.a differ diff --git a/tools/sdk/lib/libsmartconfig.a b/tools/sdk/lib/libsmartconfig.a index 39bfe39d2..fc2795df3 100644 Binary files a/tools/sdk/lib/libsmartconfig.a and b/tools/sdk/lib/libsmartconfig.a differ diff --git a/tools/sdk/lib/libssl.a b/tools/sdk/lib/libssl.a index 6c54acc2d..825f74db2 100644 Binary files a/tools/sdk/lib/libssl.a and b/tools/sdk/lib/libssl.a differ diff --git a/tools/sdk/lib/libupgrade.a b/tools/sdk/lib/libupgrade.a old mode 100755 new mode 100644 index 39eb41a54..6eaebbd30 Binary files a/tools/sdk/lib/libupgrade.a and b/tools/sdk/lib/libupgrade.a differ diff --git a/tools/sdk/lib/libwpa.a b/tools/sdk/lib/libwpa.a index c3d04200d..39de3f001 100644 Binary files a/tools/sdk/lib/libwpa.a and b/tools/sdk/lib/libwpa.a differ diff --git a/tools/sdk/version b/tools/sdk/version index fd9c79de5..9084fa2f7 100644 --- a/tools/sdk/version +++ b/tools/sdk/version @@ -1 +1 @@ -1.0.1_15_05_04_p1 \ No newline at end of file +1.1.0