1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-19 23:22:16 +03:00

Update SDK to 1.1.0 (#306)

This commit is contained in:
Ivan Grokhotkov 2015-05-23 12:48:56 +03:00
parent db1e033186
commit 01d0f61429
21 changed files with 250 additions and 123 deletions

View File

@ -15,6 +15,8 @@
### Tools
- SDK updated to 1.1.0 (#306)
## 1.6.4-673-g8cd3697
May 22, 2015

View File

@ -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));

View File

@ -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
}

View File

@ -1,3 +1,102 @@
esp_iot_sdk_v1.1.0_15_05_22 Release Note
----------------------------------------
Resolved IssuesBugs 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 disabledESP8266 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_rssiget 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 document“2C-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)]

View File

@ -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

View File

@ -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
@ -254,63 +240,6 @@ sint8 espconn_get_connection_info(struct espconn *pespconn, remot_info **pcon_in
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
@ -474,26 +464,6 @@ sint16 espconn_secure_get_size(uint8 level);
sint8 espconn_secure_accept(struct espconn *espconn);
/***** TCP RX HOLD *******/
/******************************************************************************
* FunctionName : espconn_recv_hold
* Description : hold tcp receive
* Parameters : espconn -- espconn to hold
* Returns : none
*******************************************************************************/
sint8 espconn_recv_hold(struct espconn *pespconn);
/******************************************************************************
* FunctionName : espconn_recv_unhold
* Description : unhold tcp receive
* Parameters : espconn -- espconn to unhold
* Returns : none
*******************************************************************************/
sint8 espconn_recv_unhold(struct espconn *pespconn);
/***** IGMP *******/
/******************************************************************************
* FunctionName : espconn_igmp_join
* Description : join a multicast group
@ -512,7 +482,21 @@ sint8 espconn_igmp_join(ip_addr_t *host_ip, ip_addr_t *multicast_ip);
*******************************************************************************/
sint8 espconn_igmp_leave(ip_addr_t *host_ip, ip_addr_t *multicast_ip);
/***** mDNS *******/
/******************************************************************************
* FunctionName : espconn_recv_hold
* Description : hold tcp receive
* Parameters : espconn -- espconn to hold
* Returns : none
*******************************************************************************/
sint8 espconn_recv_hold(struct espconn *pespconn);
/******************************************************************************
* FunctionName : espconn_recv_unhold
* Description : unhold tcp receive
* Parameters : espconn -- espconn to unhold
* Returns : none
*******************************************************************************/
sint8 espconn_recv_unhold(struct espconn *pespconn);
/******************************************************************************
* FunctionName : espconn_mdns_init
@ -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

View File

@ -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

View File

@ -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);

6
tools/sdk/include/sntp.h Executable file → Normal file
View File

@ -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).

View File

@ -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

BIN
tools/sdk/lib/libjson.a Executable file → Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
tools/sdk/lib/libupgrade.a Executable file → Normal file

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
1.0.1_15_05_04_p1
1.1.0