Просмотр исходного кода

Upgrade to SDK 1.5.0 + Espressif's Open LWIP 1.5.0.

Removed earlier TCP port randomisation fix - the new SDK has its own fix
even though Espressif told me they wouldn't fix it. Yay?
Johny Mattsson 8 лет назад
Родитель
Сommit
a6c0873a28
100 измененных файлов с 128 добавлено и 11930 удалено
  1. 1 0
      .gitignore
  2. 15 8
      Makefile
  3. 3 3
      README.md
  4. 2 0
      app/Makefile
  5. 1 1
      app/include/lwip/app/espconn.h
  6. 1 1
      app/include/lwip/app/espconn_tcp.h
  7. 3 3
      app/include/user_version.h
  8. 0 4
      app/lua/luaconf.h
  9. 36 3
      app/lwip/app/espconn.c
  10. 22 14
      app/lwip/app/espconn_tcp.c
  11. 1 1
      app/lwip/app/espconn_udp.c
  12. 24 13
      app/lwip/core/mdns.c
  13. 9 5
      app/lwip/core/tcp.c
  14. 1 1
      app/modules/file.c
  15. 2 6
      app/spiffs/spiffs_config.h
  16. 0 17
      app/user/user_main.c
  17. BIN
      cache/esp_iot_sdk_v1.5.0_15_11_27.zip
  18. 0 10
      ld/nodemcu.ld
  19. 7 2
      sdk-overrides/include/c_types.h
  20. 0 24
      sdk/License
  21. 0 378
      sdk/esp_iot_sdk_v1.4.0/Makefile
  22. 0 147
      sdk/esp_iot_sdk_v1.4.0/app/gen_misc.bat
  23. 0 150
      sdk/esp_iot_sdk_v1.4.0/app/gen_misc.sh
  24. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/at/1024+1024/user1.2048.new.5.bin
  25. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/at/1024+1024/user2.2048.new.5.bin
  26. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/at/512+512/user1.1024.new.2.bin
  27. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/at/512+512/user2.1024.new.2.bin
  28. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/at/noboot/eagle.flash.bin
  29. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/at/noboot/eagle.irom0text.bin
  30. 0 80
      sdk/esp_iot_sdk_v1.4.0/bin/at/readme.txt
  31. 0 0
      sdk/esp_iot_sdk_v1.4.0/bin/blank.bin
  32. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/boot_v1.2.bin
  33. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/boot_v1.4(b1).bin
  34. BIN
      sdk/esp_iot_sdk_v1.4.0/bin/esp_init_data_default.bin
  35. 0 11
      sdk/esp_iot_sdk_v1.4.0/document/readme.txt
  36. 0 125
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/Makefile
  37. 0 44
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/driver/Makefile
  38. 0 316
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/driver/i2c_master.c
  39. 0 162
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/driver/key.c
  40. 0 147
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/gen_misc.bat
  41. 0 150
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/gen_misc.sh
  42. 0 57
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/driver/i2c_master.h
  43. 0 27
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/driver/key.h
  44. 0 36
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/ssl/cert.h
  45. 0 30
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/ssl/private_key.h
  46. 0 64
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_config.h
  47. 0 6
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_devicefind.h
  48. 0 33
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_esp_platform.h
  49. 0 6
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_esp_platform_timer.h
  50. 0 43
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_iot_version.h
  51. 0 17
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_json.h
  52. 0 64
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_light.h
  53. 0 33
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_light_adj.h
  54. 0 43
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_plug.h
  55. 0 32
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_sensor.h
  56. 0 45
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_webserver.h
  57. 0 45
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/Makefile
  58. 0 120
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_devicefind.c
  59. 0 1383
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_esp_platform.c
  60. 0 344
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_esp_platform_timer.c
  61. 0 164
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_json.c
  62. 0 141
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_light.c
  63. 0 334
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_light_adj.c
  64. 0 59
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_main.c
  65. 0 159
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_plug.c
  66. 0 230
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_sensor.c
  67. 0 1790
      sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_webserver.c
  68. 0 42
      sdk/esp_iot_sdk_v1.4.0/examples/at/!!!readme!!!.txt
  69. 0 145
      sdk/esp_iot_sdk_v1.4.0/examples/at/Makefile
  70. 0 147
      sdk/esp_iot_sdk_v1.4.0/examples/at/gen_misc.bat
  71. 0 150
      sdk/esp_iot_sdk_v1.4.0/examples/at/gen_misc.sh
  72. 0 12
      sdk/esp_iot_sdk_v1.4.0/examples/at/include/user_config.h
  73. 0 45
      sdk/esp_iot_sdk_v1.4.0/examples/at/user/Makefile
  74. 0 290
      sdk/esp_iot_sdk_v1.4.0/examples/at/user/at_upgrade.c
  75. 0 119
      sdk/esp_iot_sdk_v1.4.0/examples/at/user/user_main.c
  76. 0 44
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/Makefile
  77. 0 42
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/gpio16.c
  78. 0 141
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/hw_timer.c
  79. 0 316
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/i2c_master.c
  80. 0 162
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/key.c
  81. 0 464
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/spi.c
  82. 0 398
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/spi_overlap.c
  83. 0 788
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/uart.c
  84. 0 9
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/gpio16.h
  85. 0 57
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/i2c_master.h
  86. 0 27
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/key.h
  87. 0 50
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/spi.h
  88. 0 61
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/spi_overlap.h
  89. 0 202
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/spi_register.h
  90. 0 221
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/uart.h
  91. 0 156
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/uart_register.h
  92. 0 12
      sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/readme.txt
  93. 0 40
      sdk/esp_iot_sdk_v1.4.0/examples/readme.txt
  94. 0 122
      sdk/esp_iot_sdk_v1.4.0/examples/smart_config/Makefile
  95. 0 147
      sdk/esp_iot_sdk_v1.4.0/examples/smart_config/gen_misc.bat
  96. 0 150
      sdk/esp_iot_sdk_v1.4.0/examples/smart_config/gen_misc.sh
  97. 0 5
      sdk/esp_iot_sdk_v1.4.0/examples/smart_config/include/user_config.h
  98. 0 45
      sdk/esp_iot_sdk_v1.4.0/examples/smart_config/user/Makefile
  99. 0 68
      sdk/esp_iot_sdk_v1.4.0/examples/smart_config/user/user_main.c
  100. 0 122
      sdk/esp_iot_sdk_v1.4.0/examples/wps/Makefile

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+sdk/

+ 15 - 8
Makefile

@@ -1,16 +1,13 @@
 #  copyright (c) 2010 Espressif System
 #
 .NOTPARALLEL:
-ifndef PDIR
-
-endif
 
 # SDK version NodeMCU is locked to
-SDK_VER:=1.4.0
+SDK_VER:=1.5.0
 # Ensure we search "our" SDK before the tool-chain's SDK (if any)
-TOP_DIR:=$(dir $(lastword $(MAKEFILE_LIST)))
-SDK_DIR:=$(TOP_DIR)sdk/esp_iot_sdk_v$(SDK_VER)
-CCFLAGS:= -I$(TOP_DIR)sdk-overrides/include -I$(SDK_DIR)/include
+TOP_DIR:=$(abspath $(dir $(lastword $(MAKEFILE_LIST))))
+SDK_DIR:=$(TOP_DIR)/sdk/esp_iot_sdk_v$(SDK_VER)
+CCFLAGS:= -I$(TOP_DIR)/sdk-overrides/include -I$(SDK_DIR)/include
 LDFLAGS:= -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld $(LDFLAGS)
 
 #############################################################
@@ -171,11 +168,21 @@ $(BINODIR)/%.bin: $(IMAGEODIR)/%.out
 # Should be done in top-level makefile only
 #
 
-all:	.subdirs $(OBJS) $(OLIBS) $(OIMAGES) $(OBINS) $(SPECIAL_MKTARGETS)
+all:	sdk_extracted .subdirs $(OBJS) $(OLIBS) $(OIMAGES) $(OBINS) $(SPECIAL_MKTARGETS)
+
+.PHONY: sdk_extracted
+sdk_extracted: $(TOP_DIR)/sdk/.extracted
+
+$(TOP_DIR)/sdk/.extracted:
+	mkdir -p "$(dir $@)"
+	(cd "$(dir $@)" && unzip $(TOP_DIR)/cache/esp_iot_sdk_v$(SDK_VER)*.zip esp_iot_sdk_v$(SDK_VER)/lib/* esp_iot_sdk_v$(SDK_VER)/ld/eagle.rom.addr.v6.ld esp_iot_sdk_v$(SDK_VER)/include/* )
+	rm -f $(SDK_DIR)/lib/liblwip.a
+	touch $@
 
 clean:
 	$(foreach d, $(SUBDIRS), $(MAKE) -C $(d) clean;)
 	$(RM) -r $(ODIR)/$(TARGET)/$(FLAVOR)
+	$(RM) -r "$(TOP_DIR)/sdk"
 
 clobber: $(SPECIAL_CLOBBER)
 	$(foreach d, $(SUBDIRS), $(MAKE) -C $(d) clobber;)

+ 3 - 3
README.md

@@ -1,10 +1,10 @@
-# **NodeMCU 1.4.0** #
+# **NodeMCU 1.5.0** #
 
 [![Join the chat at https://gitter.im/nodemcu/nodemcu-firmware](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/nodemcu/nodemcu-firmware?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
 [![Build Status](https://travis-ci.org/nodemcu/nodemcu-firmware.svg)](https://travis-ci.org/nodemcu/nodemcu-firmware)
 
 ###A lua based firmware for wifi-soc esp8266
-  - Build on [ESP8266 NONOS SDK 1.4.0](http://bbs.espressif.com/viewtopic.php?f=46&t=1124)
+  - Build on [ESP8266 NONOS SDK 1.5.0](http://bbs.espressif.com/viewtopic.php?f=46&t=1124)
   - Lua core based on [eLua project](http://www.eluaproject.net/)
   - cjson based on [lua-cjson](https://github.com/mpx/lua-cjson)
   - File system based on [spiffs](https://github.com/pellepl/spiffs)
@@ -298,7 +298,7 @@ Comment-out the #define statement for unused modules. Example:
 Identify your firmware builds by editing `app/include/user_version.h`
 
 ```c
-#define NODE_VERSION    "NodeMCU 1.4.0+myname"
+#define NODE_VERSION    "NodeMCU 1.5.0+myname"
 #ifndef BUILD_DATE
 #define BUILD_DATE        "YYYYMMDD"
 #endif

+ 2 - 0
app/Makefile

@@ -112,10 +112,12 @@ LINKFLAGS_eagle.app.v6 = 			\
 	-lpp 					\
 	-lnet80211 				\
 	-lwpa 					\
+	-lwpa2					\
 	-lmain 					\
 	-ljson 					\
 	-lsmartconfig 				\
 	-lssl 					\
+	-lcrypto				\
 	$(DEP_LIBS_eagle.app.v6) 		\
 	-Wl,--end-group 			\
 	-lm

+ 1 - 1
app/include/lwip/app/espconn.h

@@ -169,7 +169,7 @@ typedef struct _espconn_msg{
 	struct espconn *pespconn;
 	comon_pkt pcommon;
 	uint8 count_opt;
-	int16_t hs_status;	//the status of the handshake
+	sint16_t hs_status;	//the status of the handshake
 	void *preverse;
 	void *pssl;
 	struct _espconn_msg *pnext;

+ 1 - 1
app/include/lwip/app/espconn_tcp.h

@@ -29,7 +29,7 @@ extern void espconn_kill_oldest_pcb(void);
  * Returns      : none
 *******************************************************************************/
 
-extern void espconn_tcp_disconnect(espconn_msg *pdiscon);
+extern void espconn_tcp_disconnect(espconn_msg *pdiscon,u8 type);
 
 /******************************************************************************
  * FunctionName : espconn_tcp_client

+ 3 - 3
app/include/user_version.h

@@ -2,13 +2,13 @@
 #define __USER_VERSION_H__
 
 #define NODE_VERSION_MAJOR		1U
-#define NODE_VERSION_MINOR		4U
+#define NODE_VERSION_MINOR		5U
 #define NODE_VERSION_REVISION	0U
 #define NODE_VERSION_INTERNAL   0U
 
-#define NODE_VERSION	"NodeMCU 1.4.0"
+#define NODE_VERSION	"NodeMCU 1.5.0"
 #ifndef BUILD_DATE
-#define BUILD_DATE	  "20151006"
+#define BUILD_DATE	  "unspecified"
 #endif
 
 extern char SDK_VERSION[];

+ 0 - 4
app/lua/luaconf.h

@@ -880,10 +880,6 @@ union luai_Cast { double l_d; long l_l; };
 
 #define LUA_INTFRMLEN		"l"
 #define LUA_INTFRM_T		long
-#ifndef LUA_CROSS_COMPILER
-typedef short int16_t;
-typedef long int32_t;
-#endif
 #endif
 
 

+ 36 - 3
app/lwip/app/espconn.c

@@ -847,7 +847,7 @@ espconn_get_connection_info(struct espconn *pespconn, remot_info **pcon_info, ui
 			break;
 		case ESPCONN_UDP:
 			while(plist != NULL){
-				if (plist->pespconn && plist->pespconn->type == ESPCONN_UDP){
+				if (plist->pespconn == pespconn){
 					premot[pespconn->link_cnt].state = plist->pespconn->state;
 					premot[pespconn->link_cnt].remote_port = plist->pcommon.remote_port;
 					os_memcpy(premot[pespconn->link_cnt].remote_ip, plist->pcommon.remote_ip, 4);
@@ -860,6 +860,8 @@ espconn_get_connection_info(struct espconn *pespconn, remot_info **pcon_info, ui
 			break;
 	}
 	*pcon_info = premot;
+	if (pespconn->link_cnt == 0)
+		return ESPCONN_ARG;
 	return ESPCONN_OK;
 }
 
@@ -954,12 +956,43 @@ espconn_disconnect(struct espconn *espconn)
     	/*protect for redisconnection*/
     	if (espconn->state == ESPCONN_CLOSE)
     		return ESPCONN_INPROGRESS;
-    	espconn_tcp_disconnect(pnode);
+    	espconn_tcp_disconnect(pnode,0);	//1 force, 0 normal
+    	return ESPCONN_OK;
+    } else
+    	return ESPCONN_ARG;
+}
+
+/******************************************************************************
+ * FunctionName : espconn_abort
+ * Description  : Forcely abort with host
+ * Parameters   : espconn -- the espconn used to disconnect the connection
+ * Returns      : none
+*******************************************************************************/
+sint8 ICACHE_FLASH_ATTR
+espconn_abort(struct espconn *espconn)
+{
+	espconn_msg *pnode = NULL;
+	bool value = false;
+
+    if (espconn == NULL) {
+        return ESPCONN_ARG;;
+    } else if (espconn ->type != ESPCONN_TCP)
+    	return ESPCONN_ARG;
+
+    /*Find the node depend on the espconn message*/
+    value = espconn_find_connection(espconn, &pnode);
+
+    if (value){
+    	/*protect for redisconnection*/
+    	if (espconn->state == ESPCONN_CLOSE)
+    		return ESPCONN_INPROGRESS;
+    	espconn_tcp_disconnect(pnode,1);	//1 force, 0 normal
     	return ESPCONN_OK;
     } else
     	return ESPCONN_ARG;
 }
 
+
 /******************************************************************************
  * FunctionName : espconn_get_packet_info
  * Description  : get the packet info with host
@@ -1215,7 +1248,7 @@ espconn_port(void)
     static uint32 randnum = 0;
 
     do {
-        port = system_get_time();
+        port = os_random();
 
         if (port < 0) {
             port = os_random() - port;

+ 22 - 14
app/lwip/app/espconn_tcp.c

@@ -38,12 +38,12 @@ os_event_t espconn_TaskQueue[espconn_TaskQueueLen];
 static err_t
 espconn_client_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err);
 static void
-espconn_client_close(void *arg, struct tcp_pcb *pcb);
+espconn_client_close(void *arg, struct tcp_pcb *pcb,u8 type);
 
 static err_t
 espconn_server_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err);
 static void
-espconn_server_close(void *arg, struct tcp_pcb *pcb);
+espconn_server_close(void *arg, struct tcp_pcb *pcb,u8 type);
 
 ///////////////////////////////common function/////////////////////////////////
 /******************************************************************************
@@ -495,14 +495,14 @@ espconn_tcp_sent(void *arg, uint8 *psent, uint16 length)
  * Parameters   : arg -- Additional argument to pass to the callback function
  * Returns      : none
 *******************************************************************************/
-void ICACHE_FLASH_ATTR espconn_tcp_disconnect(espconn_msg *pdiscon)
+void ICACHE_FLASH_ATTR espconn_tcp_disconnect(espconn_msg *pdiscon,u8 type)
 {
 	if (pdiscon != NULL){
 		/*disconnect with the host by send the FIN frame*/
 		if (pdiscon->preverse != NULL)
-			espconn_server_close(pdiscon, pdiscon->pcommon.pcb);
+			espconn_server_close(pdiscon, pdiscon->pcommon.pcb,type);
 		else
-			espconn_client_close(pdiscon, pdiscon->pcommon.pcb);
+			espconn_client_close(pdiscon, pdiscon->pcommon.pcb,type);
 	} else{
 		espconn_printf("espconn_tcp_disconnect err.\n");
 	}
@@ -517,7 +517,7 @@ void ICACHE_FLASH_ATTR espconn_tcp_disconnect(espconn_msg *pdiscon)
  * Returns      : none
 *******************************************************************************/
 static void ICACHE_FLASH_ATTR
-espconn_client_close(void *arg, struct tcp_pcb *pcb)
+espconn_client_close(void *arg, struct tcp_pcb *pcb, u8 type)
 {
     err_t err;
     espconn_msg *pclose = arg;
@@ -525,7 +525,11 @@ espconn_client_close(void *arg, struct tcp_pcb *pcb)
 	pclose->pcommon.pcb = pcb;
 	/*avoid recalling the disconnect function*/
 	tcp_recv(pcb, NULL);
-	err = tcp_close(pcb);
+
+	if(type == 0)
+		err = tcp_close(pcb);
+	else
+		{tcp_abort(pcb); err = ERR_OK;}
 
 	if (err != ERR_OK) {
 		/* closing failed, try again later */
@@ -647,7 +651,7 @@ espconn_client_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
     }
 
     if (err == ERR_OK && p == NULL) {
-        espconn_client_close(precv_cb, pcb);
+        espconn_client_close(precv_cb, pcb,0);
     }
 
     return ERR_OK;
@@ -943,7 +947,7 @@ espconn_tcp_client(struct espconn *espconn)
  * Returns      : none
 *******************************************************************************/
 static void ICACHE_FLASH_ATTR
-espconn_server_close(void *arg, struct tcp_pcb *pcb)
+espconn_server_close(void *arg, struct tcp_pcb *pcb,u8 type)
 {
     err_t err;
     espconn_msg *psclose = arg;
@@ -951,7 +955,11 @@ espconn_server_close(void *arg, struct tcp_pcb *pcb)
 	psclose->pcommon.pcb = pcb;
 	/*avoid recalling the disconnect function*/
 	tcp_recv(pcb, NULL);
-	err = tcp_close(pcb);
+
+	if(type ==0)
+		err = tcp_close(pcb);
+	else
+		{tcp_abort(pcb); err = ERR_OK;}
 
     if (err != ERR_OK) {
         /* closing failed, try again later */
@@ -1024,7 +1032,7 @@ espconn_server_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err)
             pbuf_free(p);
         }
 
-        espconn_server_close(precv_cb, pcb);
+        espconn_server_close(precv_cb, pcb,0);
     }
 
     return ERR_OK;
@@ -1086,7 +1094,7 @@ espconn_server_poll(void *arg, struct tcp_pcb *pcb)
 		if (pspoll_cb->pcommon.timeout != 0){/*no data sent in one active connection's set timeout, close.*/
 			if (pspoll_cb->pcommon.recv_check >= pspoll_cb->pcommon.timeout) {
 				pspoll_cb->pcommon.recv_check = 0;
-				espconn_server_close(pspoll_cb, pcb);
+				espconn_server_close(pspoll_cb, pcb,0);
 			}
 		} else {
 			espconn_msg *ptime_msg = pserver_list;
@@ -1095,7 +1103,7 @@ espconn_server_poll(void *arg, struct tcp_pcb *pcb)
 					if (ptime_msg->pcommon.timeout != 0){/*no data sent in server's set timeout, close.*/
 						if (pspoll_cb->pcommon.recv_check >= ptime_msg->pcommon.timeout){
 							pspoll_cb->pcommon.recv_check = 0;
-							espconn_server_close(pspoll_cb, pcb);
+							espconn_server_close(pspoll_cb, pcb,0);
 						}
 					} else {/*don't close for ever*/
 						pspoll_cb->pcommon.recv_check = 0;
@@ -1106,7 +1114,7 @@ espconn_server_poll(void *arg, struct tcp_pcb *pcb)
 			}
 		}
     } else {
-        espconn_server_close(pspoll_cb, pcb);
+        espconn_server_close(pspoll_cb, pcb,0);
     }
 
     return ERR_OK;

+ 1 - 1
app/lwip/app/espconn_udp.c

@@ -301,7 +301,7 @@ espconn_udp_recv(void *arg, struct udp_pcb *upcb, struct pbuf *p,
 	if (wifi_get_opmode() != 1) {
 		wifi_get_ip_info(1, &ipconfig);
 
-		if (!ip_addr_netcmp((struct ip_addr *)precv->pespconn->proto.udp->remote_ip, &ipconfig.ip, &ipconfig.netmask)) {
+		if (!ip_addr_netcmp(addr, &ipconfig.ip, &ipconfig.netmask)) {
 			wifi_get_ip_info(0, &ipconfig);
 		}
 	} else {

+ 24 - 13
app/lwip/core/mdns.c

@@ -193,8 +193,8 @@ static char host_name[MDNS_NAME_LENGTH];
 static char service_name[MDNS_NAME_LENGTH];
 static char server_name[MDNS_NAME_LENGTH];
 //static char puck_datasheet[PUCK_DATASHEET_SIZE];
-static struct udp_pcb *mdns_pcb;
-
+static struct udp_pcb *mdns_pcb = NULL;
+static struct mdns_info * ms_info = NULL;
 static struct ip_addr multicast_addr;
 static struct ip_addr host_addr;
 static uint8 register_flag = 0;
@@ -887,7 +887,7 @@ mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr,
 	}
 	goto memerr2;
 	memerr2:
-	mem_free(mdns_payload);
+	os_memset(mdns_payload , 0 ,DNS_MSG_SIZE);
 	memerr1:
 	/* free pbuf */
 	pbuf_free(p);
@@ -900,8 +900,12 @@ mdns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, struct ip_addr *addr,
 void ICACHE_FLASH_ATTR
 mdns_close(void)
 {
-	if (mdns_pcb != NULL)
+	if (mdns_pcb != NULL && ms_info != NULL)
 		udp_remove(mdns_pcb);
+		os_free(ms_info);
+		mdns_pcb = NULL;
+		ms_info = NULL;
+
 }
 
 void ICACHE_FLASH_ATTR
@@ -1030,26 +1034,33 @@ mdns_init(struct mdns_info *info) {
 	multicast_addr.addr = DNS_MULTICAST_ADDRESS;
 	struct ip_addr ap_host_addr;
 	struct ip_info ipconfig;
-	if (info->ipAddr == 0) {
+	ms_info = (struct mdns_info *)os_zalloc(sizeof(struct mdns_info));
+	if (ms_info != NULL) {
+		os_memcpy(ms_info,info,sizeof(struct mdns_info));
+	} else {
+		os_printf("ms_info alloc failed\n");
+		return;
+	}
+	if (ms_info->ipAddr == 0) {
 		os_printf("mdns ip error!\n ");
 		return;
 	}
-	host_addr.addr = info->ipAddr ;
+	host_addr.addr = ms_info->ipAddr ;
 	LWIP_DEBUGF(DNS_DEBUG, ("dns_init: initializing\n"));
 	//get the datasheet from PUCK
-	mdns_set_hostname(info->host_name);
-	mdns_set_servername(info->server_name);
-	mdns_set_name(info->host_name);
+	mdns_set_hostname(ms_info->host_name);
+	mdns_set_servername(ms_info->server_name);
+	mdns_set_name(ms_info->host_name);
 
 	// get the host name as instrumentName_serialNumber for MDNS
 	// set the name of the service, the same as host name
 	os_printf("host_name = %s\n", host_name);
 	os_printf("server_name = %s\n", PUCK_SERVICE);
-	if (info->server_port == 0)
+	if (ms_info->server_port == 0)
 	{
 		PUCK_PORT = 80;
 	} else {
-		PUCK_PORT = info->server_port;
+		PUCK_PORT = ms_info->server_port;
 	}
 
 	/* initialize mDNS */
@@ -1080,14 +1091,14 @@ mdns_init(struct mdns_info *info) {
 
 		/*loopback function for the multicast(224.0.0.251) messages received at port 5353*/
 //		mdns_enable();
-		udp_recv(mdns_pcb, mdns_recv, info);
+		udp_recv(mdns_pcb, mdns_recv, ms_info);
 		mdns_flag = 1;
 		/*
 		 * Register the name of the instrument
 		 */
 
 		os_timer_disarm(&mdns_timer);
-		os_timer_setfn(&mdns_timer, (os_timer_func_t *)mdns_reg,info);
+		os_timer_setfn(&mdns_timer, (os_timer_func_t *)mdns_reg,ms_info);
 		os_timer_arm(&mdns_timer, 1000, 1);
 	}
 }

+ 9 - 5
app/lwip/core/tcp.c

@@ -632,15 +632,19 @@ tcp_new_port(void)
   int i;
   struct tcp_pcb *pcb;
 #ifndef TCP_LOCAL_PORT_RANGE_START
-#define TCP_LOCAL_PORT_RANGE_START 4096
+#define TCP_LOCAL_PORT_RANGE_START 1024
 #define TCP_LOCAL_PORT_RANGE_END   0x7fff
 #endif
-  static u16_t port __attribute__((section(".port"))) = TCP_LOCAL_PORT_RANGE_START;
+  static u16_t port = TCP_LOCAL_PORT_RANGE_START;
   
  again:
-  if (++port >= TCP_LOCAL_PORT_RANGE_END) {
-    port = TCP_LOCAL_PORT_RANGE_START;
-  }
+//  if (++port >= TCP_LOCAL_PORT_RANGE_END) {
+//    port = TCP_LOCAL_PORT_RANGE_START;
+//  }
+  port = os_random();
+  port %= TCP_LOCAL_PORT_RANGE_END;
+  if (port < TCP_LOCAL_PORT_RANGE_START)
+	  port += TCP_LOCAL_PORT_RANGE_START;
   /* Check all PCB lists. */
   for (i = 0; i < NUM_TCP_PCB_LISTS; i++) {  
     for(pcb = *tcp_pcb_lists[i]; pcb != NULL; pcb = pcb->next) {

+ 1 - 1
app/modules/file.c

@@ -175,7 +175,7 @@ static int file_rename( lua_State* L )
 // Lua: fsinfo()
 static int file_fsinfo( lua_State* L )
 {
-  uint32_t total, used;
+  u32_t total, used;
   SPIFFS_info(&fs, &total, &used);
   NODE_DBG("total: %d, used:%d\n", total, used);
   if(total>0x7FFFFFFF || used>0x7FFFFFFF || used > total)

+ 2 - 6
app/spiffs/spiffs_config.h

@@ -13,12 +13,8 @@
 #include "c_stdint.h"
 #include "c_string.h"
 
-typedef sint32_t s32_t;
-typedef uint32_t u32_t;
-typedef sint16_t s16_t;
-typedef uint16_t u16_t;
-typedef sint8_t s8_t;
-typedef uint8_t u8_t;
+// For u32_t etc
+#include "user_interface.h"
 
 // compile time switches
 

+ 0 - 17
app/user/user_main.c

@@ -82,21 +82,6 @@ void TEXT_SECTION_ATTR user_start_trampoline (void)
 }
 
 
-/* To avoid accidentally losing the fix for the TCP port randomization
- * during an LWIP upgrade, we've implemented most it outside the LWIP
- * source itself. This enables us to test for the presence of the fix
- * /at link time/ and error out if it's been lost.
- * The fix itself consists of putting the function-static 'port' variable
- * into its own section, and get the linker to provide an alias for it.
- * From there we can then manually randomize it at boot.
- */
-static inline void tcp_random_port_init (void)
-{
-  extern uint16_t _tcp_new_port_port; // provided by the linker script
-  _tcp_new_port_port += xthal_get_ccount () % 4096;
-}
-
-
 void task_lua(os_event_t *e){
     char* lua_argv[] = { (char *)"lua", (char *)"-i", NULL };
     NODE_DBG("Task task_lua started.\n");
@@ -194,8 +179,6 @@ void nodemcu_init(void)
     // lua_main( 3, lua_argv );
     // NODE_DBG("Flash sec num: 0x%x\n", flash_get_sec_num());
 
-    tcp_random_port_init ();
-
     task_init();
     system_os_post(LUA_TASK_PRIO,SIG_LUA,'s');
 }

BIN
cache/esp_iot_sdk_v1.5.0_15_11_27.zip


+ 0 - 10
ld/nodemcu.ld

@@ -123,16 +123,6 @@ SECTIONS
   {
     _data_start = ABSOLUTE(.);
     *(.data)
-
-    /* Hook for randomizing TCP start numbers */
-    . = ALIGN(2);
-    _tcp_new_port_port = ABSOLUTE(.);
-    */liblwip.a:tcp.o(.port)
-    /* Verify that the LWIP source has been patched as needed, or fail with
-     * a divide by zero error (../ld/nodemcu.ld:xxx / by zero) */
-    _tcp_new_port_port_size = ABSOLUTE(.) - _tcp_new_port_port;
-    _ensure_tcp_port_randomization_fix_presence = 1 / _tcp_new_port_port_size;
-
     *(.data.*)
     *(.gnu.linkonce.d.*)
     *(.data1)

+ 7 - 2
sdk-overrides/include/c_types.h

@@ -1,7 +1,12 @@
 #ifndef _OVERRIDE_C_TYPES_H_
 #define _OVERRIDE_C_TYPES_H_
 
-#include "../../sdk/esp_iot_sdk_v1.4.0/include/c_types.h"
-typedef sint64_t int64_t;
+#include_next "c_types.h"
+
+typedef long long int64_t;
+typedef int8_t  sint8_t;
+typedef int16_t sint16_t;
+typedef int32_t sint32_t;
+typedef int64_t sint64_t;
 
 #endif

+ 0 - 24
sdk/License

@@ -1,24 +0,0 @@
-ESPRSSIF MIT License
-
-Copyright (c) 2015 <ESPRESSIF SYSTEMS (SHANGHAI) PTE LTD>
-
-Permission is hereby granted for use on ESPRESSIF SYSTEMS ESP8266 only, in which case, it is free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-乐鑫 MIT 许可证
-
-版权 (c) 2015  <乐鑫信息科技(上海)有限公司>
-
-该许可证授权仅限于乐鑫信息科技 ESP8266 产品的应用开发。在此情况下,该许可证免费授权任何获得该软件及其相关文档(统称为“软件”)的人无限制地经营该软件,包括无限制的使用、复制、修改、合并、出版发行、散布、再授权、及贩售软件及软件副本的权利。被授权人在享受这些权利的同时,需服从下面的条件:
-
-在软件和软件的所有副本中都必须包含以上的版权声明和授权声明。
-
-该软件按本来的样子提供,没有任何明确或暗含的担保,包括但不仅限于关于试销性、适合某一特定用途和非侵权的保证。作者和版权持有人在任何情况下均不就由软件或软件使用引起的以合同形式、民事侵权或其它方式提出的任何索赔、损害或其它责任负责。
-
-
-
-

+ 0 - 378
sdk/esp_iot_sdk_v1.4.0/Makefile

@@ -1,378 +0,0 @@
-#  copyright (c) 2010 Espressif System
-#
-ifndef PDIR
-
-endif
-
-ifeq ($(COMPILE), gcc)
-	AR = xtensa-lx106-elf-ar
-	CC = xtensa-lx106-elf-gcc
-	NM = xtensa-lx106-elf-nm
-	CPP = xtensa-lx106-elf-cpp
-	OBJCOPY = xtensa-lx106-elf-objcopy
-	OBJDUMP = xtensa-lx106-elf-objdump
-else
-	AR = xt-ar
-	CC = xt-xcc
-	NM = xt-nm
-	CPP = xt-cpp
-	OBJCOPY = xt-objcopy
-	OBJDUMP = xt-objdump
-endif
-
-BOOT?=none
-APP?=0
-SPI_SPEED?=40
-SPI_MODE?=QIO
-SPI_SIZE_MAP?=0
-
-ifeq ($(BOOT), new)
-    boot = new
-else
-    ifeq ($(BOOT), old)
-        boot = old
-    else
-        boot = none
-    endif
-endif
-
-ifeq ($(APP), 1)
-    app = 1
-else
-    ifeq ($(APP), 2)
-        app = 2
-    else
-        app = 0
-    endif
-endif
-
-ifeq ($(SPI_SPEED), 26.7)
-    freqdiv = 1
-else
-    ifeq ($(SPI_SPEED), 20)
-        freqdiv = 2
-    else
-        ifeq ($(SPI_SPEED), 80)
-            freqdiv = 15
-        else
-            freqdiv = 0
-        endif
-    endif
-endif
-
-
-ifeq ($(SPI_MODE), QOUT)
-    mode = 1
-else
-    ifeq ($(SPI_MODE), DIO)
-        mode = 2
-    else
-        ifeq ($(SPI_MODE), DOUT)
-            mode = 3
-        else
-            mode = 0
-        endif
-    endif
-endif
-
-addr = 0x01000
-
-ifeq ($(SPI_SIZE_MAP), 1)
-  size_map = 1
-  flash = 256
-else
-  ifeq ($(SPI_SIZE_MAP), 2)
-    size_map = 2
-    flash = 1024
-    ifeq ($(app), 2)
-      addr = 0x81000
-    endif
-  else
-    ifeq ($(SPI_SIZE_MAP), 3)
-      size_map = 3
-      flash = 2048
-      ifeq ($(app), 2)
-        addr = 0x81000
-      endif
-    else
-      ifeq ($(SPI_SIZE_MAP), 4)
-        size_map = 4
-        flash = 4096
-        ifeq ($(app), 2)
-          addr = 0x81000
-        endif
-      else
-        ifeq ($(SPI_SIZE_MAP), 5)
-          size_map = 5
-          flash = 2048
-          ifeq ($(app), 2)
-            addr = 0x101000
-          endif
-        else
-          ifeq ($(SPI_SIZE_MAP), 6)
-            size_map = 6
-            flash = 4096
-            ifeq ($(app), 2)
-              addr = 0x101000
-            endif
-          else
-            size_map = 0
-            flash = 512
-            ifeq ($(app), 2)
-              addr = 0x41000
-            endif
-          endif
-        endif
-      endif
-    endif
-  endif
-endif
-
-LD_FILE = $(LDDIR)/eagle.app.v6.ld
-
-ifneq ($(boot), none)
-ifneq ($(app),0)
-    ifeq ($(size_map), 6)
-      LD_FILE = $(LDDIR)/eagle.app.v6.$(boot).2048.ld
-    else
-      ifeq ($(size_map), 5)
-        LD_FILE = $(LDDIR)/eagle.app.v6.$(boot).2048.ld
-      else
-        ifeq ($(size_map), 4)
-          LD_FILE = $(LDDIR)/eagle.app.v6.$(boot).1024.app$(app).ld
-        else
-          ifeq ($(size_map), 3)
-            LD_FILE = $(LDDIR)/eagle.app.v6.$(boot).1024.app$(app).ld
-          else
-            ifeq ($(size_map), 2)
-              LD_FILE = $(LDDIR)/eagle.app.v6.$(boot).1024.app$(app).ld
-            else
-              ifeq ($(size_map), 0)
-                LD_FILE = $(LDDIR)/eagle.app.v6.$(boot).512.app$(app).ld
-              endif
-            endif
-	      endif
-	    endif
-	  endif
-	endif
-	BIN_NAME = user$(app).$(flash).$(boot).$(size_map)
-endif
-else
-    app = 0
-endif
-
-CSRCS ?= $(wildcard *.c)
-ASRCs ?= $(wildcard *.s)
-ASRCS ?= $(wildcard *.S)
-SUBDIRS ?= $(patsubst %/,%,$(dir $(wildcard */Makefile)))
-
-ODIR := .output
-OBJODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/obj
-
-OBJS := $(CSRCS:%.c=$(OBJODIR)/%.o) \
-        $(ASRCs:%.s=$(OBJODIR)/%.o) \
-        $(ASRCS:%.S=$(OBJODIR)/%.o)
-
-DEPS := $(CSRCS:%.c=$(OBJODIR)/%.d) \
-        $(ASRCs:%.s=$(OBJODIR)/%.d) \
-        $(ASRCS:%.S=$(OBJODIR)/%.d)
-
-LIBODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/lib
-OLIBS := $(GEN_LIBS:%=$(LIBODIR)/%)
-
-IMAGEODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/image
-OIMAGES := $(GEN_IMAGES:%=$(IMAGEODIR)/%)
-
-BINODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/bin
-OBINS := $(GEN_BINS:%=$(BINODIR)/%)
-
-CCFLAGS += 			\
-	-g			\
-	-Wpointer-arith		\
-	-Wundef			\
-	-Werror			\
-	-Wl,-EL			\
-	-fno-inline-functions	\
-	-nostdlib       \
-	-mlongcalls	\
-	-mtext-section-literals \
-	-ffunction-sections \
-	-fdata-sections
-#	-Wall			
-
-CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(INCLUDES)
-DFLAGS = $(CCFLAGS) $(DDEFINES) $(EXTRA_CCFLAGS) $(INCLUDES)
-
-
-#############################################################
-# Functions
-#
-
-define ShortcutRule
-$(1): .subdirs $(2)/$(1)
-endef
-
-define MakeLibrary
-DEP_LIBS_$(1) = $$(foreach lib,$$(filter %.a,$$(COMPONENTS_$(1))),$$(dir $$(lib))$$(LIBODIR)/$$(notdir $$(lib)))
-DEP_OBJS_$(1) = $$(foreach obj,$$(filter %.o,$$(COMPONENTS_$(1))),$$(dir $$(obj))$$(OBJODIR)/$$(notdir $$(obj)))
-$$(LIBODIR)/$(1).a: $$(OBJS) $$(DEP_OBJS_$(1)) $$(DEP_LIBS_$(1)) $$(DEPENDS_$(1))
-	@mkdir -p $$(LIBODIR)
-	$$(if $$(filter %.a,$$?),mkdir -p $$(EXTRACT_DIR)_$(1))
-	$$(if $$(filter %.a,$$?),cd $$(EXTRACT_DIR)_$(1); $$(foreach lib,$$(filter %.a,$$?),$$(AR) xo $$(UP_EXTRACT_DIR)/$$(lib);))
-	$$(AR) ru $$@ $$(filter %.o,$$?) $$(if $$(filter %.a,$$?),$$(EXTRACT_DIR)_$(1)/*.o)
-	$$(if $$(filter %.a,$$?),$$(RM) -r $$(EXTRACT_DIR)_$(1))
-endef
-
-define MakeImage
-DEP_LIBS_$(1) = $$(foreach lib,$$(filter %.a,$$(COMPONENTS_$(1))),$$(dir $$(lib))$$(LIBODIR)/$$(notdir $$(lib)))
-DEP_OBJS_$(1) = $$(foreach obj,$$(filter %.o,$$(COMPONENTS_$(1))),$$(dir $$(obj))$$(OBJODIR)/$$(notdir $$(obj)))
-$$(IMAGEODIR)/$(1).out: $$(OBJS) $$(DEP_OBJS_$(1)) $$(DEP_LIBS_$(1)) $$(DEPENDS_$(1))
-	@mkdir -p $$(IMAGEODIR)
-	$$(CC) $$(LDFLAGS) $$(if $$(LINKFLAGS_$(1)),$$(LINKFLAGS_$(1)),$$(LINKFLAGS_DEFAULT) $$(OBJS) $$(DEP_OBJS_$(1)) $$(DEP_LIBS_$(1))) -o $$@ 
-endef
-
-$(BINODIR)/%.bin: $(IMAGEODIR)/%.out
-	@mkdir -p $(BINODIR)
-	
-ifeq ($(APP), 0)
-	@$(RM) -r ../bin/eagle.S ../bin/eagle.dump
-	@$(OBJDUMP) -x -s $< > ../bin/eagle.dump
-	@$(OBJDUMP) -S $< > ../bin/eagle.S
-else
-	@$(RM) -r ../bin/upgrade/$(BIN_NAME).S ../bin/upgrade/$(BIN_NAME).dump
-	@$(OBJDUMP) -x -s $< > ../bin/upgrade/$(BIN_NAME).dump
-	@$(OBJDUMP) -S $< > ../bin/upgrade/$(BIN_NAME).S
-endif
-
-	@$(OBJCOPY) --only-section .text -O binary $< eagle.app.v6.text.bin
-	@$(OBJCOPY) --only-section .data -O binary $< eagle.app.v6.data.bin
-	@$(OBJCOPY) --only-section .rodata -O binary $< eagle.app.v6.rodata.bin
-	@$(OBJCOPY) --only-section .irom0.text -O binary $< eagle.app.v6.irom0text.bin
-
-	@echo ""
-	@echo "!!!"
-	
-ifeq ($(app), 0)
-	@python ../tools/gen_appbin.py $< 0 $(mode) $(freqdiv) $(size_map)
-	@mv eagle.app.flash.bin ../bin/eagle.flash.bin
-	@mv eagle.app.v6.irom0text.bin ../bin/eagle.irom0text.bin
-	@rm eagle.app.v6.*
-	@echo "No boot needed."
-	@echo "Generate eagle.flash.bin and eagle.irom0text.bin successully in folder bin."
-	@echo "eagle.flash.bin-------->0x00000"
-	@echo "eagle.irom0text.bin---->0x40000"
-else
-    ifneq ($(boot), new)
-		@python ../tools/gen_appbin.py $< 1 $(mode) $(freqdiv) $(size_map)
-		@echo "Support boot_v1.1 and +"
-    else
-		@python ../tools/gen_appbin.py $< 2 $(mode) $(freqdiv) $(size_map)
-
-    	ifeq ($(size_map), 6)
-		@echo "Support boot_v1.4 and +"
-        else
-            ifeq ($(size_map), 5)
-		@echo "Support boot_v1.4 and +"
-            else
-		@echo "Support boot_v1.2 and +"
-            endif
-        endif
-    endif
-
-	@mv eagle.app.flash.bin ../bin/upgrade/$(BIN_NAME).bin
-	@rm eagle.app.v6.*
-	@echo "Generate $(BIN_NAME).bin successully in folder bin/upgrade."
-	@echo "boot.bin------------>0x00000"
-	@echo "$(BIN_NAME).bin--->$(addr)"
-endif
-
-	@echo "!!!"
-
-#############################################################
-# Rules base
-# Should be done in top-level makefile only
-#
-
-all:	.subdirs $(OBJS) $(OLIBS) $(OIMAGES) $(OBINS) $(SPECIAL_MKTARGETS)
-
-clean:
-	$(foreach d, $(SUBDIRS), $(MAKE) -C $(d) clean;)
-	$(RM) -r $(ODIR)/$(TARGET)/$(FLAVOR)
-
-clobber: $(SPECIAL_CLOBBER)
-	$(foreach d, $(SUBDIRS), $(MAKE) -C $(d) clobber;)
-	$(RM) -r $(ODIR)
-
-.subdirs:
-	@set -e; $(foreach d, $(SUBDIRS), $(MAKE) -C $(d);)
-
-#.subdirs:
-#	$(foreach d, $(SUBDIRS), $(MAKE) -C $(d))
-
-ifneq ($(MAKECMDGOALS),clean)
-ifneq ($(MAKECMDGOALS),clobber)
-ifdef DEPS
-sinclude $(DEPS)
-endif
-endif
-endif
-
-$(OBJODIR)/%.o: %.c
-	@mkdir -p $(OBJODIR);
-	$(CC) $(if $(findstring $<,$(DSRCS)),$(DFLAGS),$(CFLAGS)) $(COPTS_$(*F)) -o $@ -c $<
-
-$(OBJODIR)/%.d: %.c
-	@mkdir -p $(OBJODIR);
-	@echo DEPEND: $(CC) -M $(CFLAGS) $<
-	@set -e; rm -f $@; \
-	$(CC) -M $(CFLAGS) $< > $@.$$$$; \
-	sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \
-	rm -f $@.$$$$
-
-$(OBJODIR)/%.o: %.s
-	@mkdir -p $(OBJODIR);
-	$(CC) $(CFLAGS) -o $@ -c $<
-
-$(OBJODIR)/%.d: %.s
-	@mkdir -p $(OBJODIR); \
-	set -e; rm -f $@; \
-	$(CC) -M $(CFLAGS) $< > $@.$$$$; \
-	sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \
-	rm -f $@.$$$$
-
-$(OBJODIR)/%.o: %.S
-	@mkdir -p $(OBJODIR);
-	$(CC) $(CFLAGS) -D__ASSEMBLER__ -o $@ -c $<
-
-$(OBJODIR)/%.d: %.S
-	@mkdir -p $(OBJODIR); \
-	set -e; rm -f $@; \
-	$(CC) -M $(CFLAGS) $< > $@.$$$$; \
-	sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \
-	rm -f $@.$$$$
-
-$(foreach lib,$(GEN_LIBS),$(eval $(call ShortcutRule,$(lib),$(LIBODIR))))
-
-$(foreach image,$(GEN_IMAGES),$(eval $(call ShortcutRule,$(image),$(IMAGEODIR))))
-
-$(foreach bin,$(GEN_BINS),$(eval $(call ShortcutRule,$(bin),$(BINODIR))))
-
-$(foreach lib,$(GEN_LIBS),$(eval $(call MakeLibrary,$(basename $(lib)))))
-
-$(foreach image,$(GEN_IMAGES),$(eval $(call MakeImage,$(basename $(image)))))
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include -I $(PDIR)include/$(TARGET)
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile

+ 0 - 147
sdk/esp_iot_sdk_v1.4.0/app/gen_misc.bat

@@ -1,147 +0,0 @@
-@echo off
-
-echo gen_misc.bat version 20150511
-echo .
-
-echo Please follow below steps(1-5) to generate specific bin(s):
-echo STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)
-set input=default
-set /p input=enter(0/1/2, default 2):
-
-if %input% equ 0 (
-    set boot=old
-) else (
-if %input% equ 1 (
-    set boot=new
-) else (
-    set boot=none
-)
-)
-
-echo boot mode: %boot%
-echo.
-
-echo STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)
-set input=default
-set /p input=enter (0/1/2, default 0):
-
-if %input% equ 1 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=1
-        echo generate bin: user1.bin
-    )
-) else (
-if %input% equ 2 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=2
-        echo generate bin: user2.bin
-    )
-) else (
-    if %boot% neq none (
-        set boot=none
-        echo ignore boot
-    )
-    set app=0
-    echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-))
-
-echo.
-
-echo STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)
-set input=default
-set /p input=enter (0/1/2/3, default 2):
-
-if %input% equ 0 (
-    set spi_speed=20
-) else (
-if %input% equ 1 (
-    set spi_speed=26.7
-) else (
-if %input% equ 3 (
-    set spi_speed=80
-) else (
-    set spi_speed=40
-)))
-
-echo spi speed: %spi_speed% MHz
-echo.
-
-echo STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)
-set input=default
-set /p input=enter (0/1/2/3, default 0):
-
-if %input% equ 1 (
-    set spi_mode=QOUT
-) else (
-if %input% equ 2 (
-    set spi_mode=DIO
-) else (
-if %input% equ 3 (
-    set spi_mode=DOUT
-) else (
-    set spi_mode=QIO
-)))
-
-echo spi mode: %spi_mode%
-echo.
-
-echo STEP 5: choose flash size and map
-echo     0= 512KB( 256KB+ 256KB)
-echo     2=1024KB( 512KB+ 512KB)
-echo     3=2048KB( 512KB+ 512KB)
-echo     4=4096KB( 512KB+ 512KB)
-echo     5=2048KB(1024KB+1024KB)
-echo     6=4096KB(1024KB+1024KB)
-set input=default
-set /p input=enter (0/1/2/3/4/5/6, default 0):
-
-if %input% equ 2 (
-  set spi_size_map=2
-  echo spi size: 1024KB
-  echo spi ota map: 512KB + 512KB
-) else (
-  if %input% equ 3 (
-    set spi_size_map=3
-    echo spi size: 2048KB
-    echo spi ota map: 512KB + 512KB
-  ) else (
-    if %input% equ 4 (
-      set spi_size_map=4
-      echo spi size: 4096KB
-      echo spi ota map: 512KB + 512KB
-    ) else (
-      if %input% equ 5 (
-        set spi_size_map=5
-        echo spi size: 2048KB
-        echo spi ota map: 1024KB + 1024KB
-      ) else (
-        if %input% equ 6 (
-          set spi_size_map=6
-          echo spi size: 4096KB
-          echo spi ota map: 1024KB + 1024KB
-        ) else (
-          set spi_size_map=0
-          echo spi size: 512KB
-          echo spi ota map: 256KB + 256KB
-        )
-      )
-    )
-  )
-)
-
-touch user/user_main.c
-
-echo.
-echo start...
-echo.
-
-make BOOT=%boot% APP=%app% SPI_SPEED=%spi_speed% SPI_MODE=%spi_mode% SPI_SIZE=%spi_size_map%
-

+ 0 - 150
sdk/esp_iot_sdk_v1.4.0/app/gen_misc.sh

@@ -1,150 +0,0 @@
-#!/bin/bash
-
-echo "gen_misc.sh version 20150511"
-echo ""
-
-echo "Please follow below steps(1-5) to generate specific bin(s):"
-echo "STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)"
-echo "enter(0/1/2, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    boot=none
-elif [ $input == 0 ]; then
-	boot=old
-elif [ $input == 1 ]; then
-    boot=new
-else
-    boot=none
-fi
-
-echo "boot mode: $boot"
-echo ""
-
-echo "STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)"
-echo "enter (0/1/2, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-elif [ $input == 1 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-	app=1
-        echo "generate bin: user1.bin"
-    fi
-elif [ $input == 2 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-    	app=2
-    	echo "generate bin: user2.bin"
-    fi
-else
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-fi
-
-echo ""
-
-echo "STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)"
-echo "enter (0/1/2/3, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    spi_speed=40
-elif [ $input == 0 ]; then
-    spi_speed=20
-elif [ $input == 1 ]; then
-    spi_speed=26.7
-elif [ $input == 3 ]; then
-    spi_speed=80
-else
-    spi_speed=40
-fi
-
-echo "spi speed: $spi_speed MHz"
-echo ""
-
-echo "STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)"
-echo "enter (0/1/2/3, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_mode=QIO
-elif [ $input == 1 ]; then
-    spi_mode=QOUT
-elif [ $input == 2 ]; then
-    spi_mode=DIO
-elif [ $input == 3 ]; then
-    spi_mode=DOUT
-else
-    spi_mode=QIO
-fi
-
-echo "spi mode: $spi_mode"
-echo ""
-
-echo "STEP 5: choose spi size and map"
-echo "    0= 512KB( 256KB+ 256KB)"
-echo "    2=1024KB( 512KB+ 512KB)"
-echo "    3=2048KB( 512KB+ 512KB)"
-echo "    4=4096KB( 512KB+ 512KB)"
-echo "    5=2048KB(1024KB+1024KB)"
-echo "    6=4096KB(1024KB+1024KB)"
-echo "enter (0/2/3/4/5/6, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-elif [ $input == 2 ]; then
-    spi_size_map=2
-    echo "spi size: 1024KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 3 ]; then
-    spi_size_map=3
-    echo "spi size: 2048KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 4 ]; then
-    spi_size_map=4
-    echo "spi size: 4096KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 5 ]; then
-    spi_size_map=5
-    echo "spi size: 2048KB"
-    echo "spi ota map:  1024KB + 1024KB"
-elif [ $input == 6 ]; then
-    spi_size_map=6
-    echo "spi size: 4096KB"
-    echo "spi ota map:  1024KB + 1024KB"
-else
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-fi
-
-echo ""
-
-touch user/user_main.c
-
-echo ""
-echo "start..."
-echo ""
-
-make COMPILE=gcc BOOT=$boot APP=$app SPI_SPEED=$spi_speed SPI_MODE=$spi_mode SPI_SIZE_MAP=$spi_size_map

BIN
sdk/esp_iot_sdk_v1.4.0/bin/at/1024+1024/user1.2048.new.5.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/at/1024+1024/user2.2048.new.5.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/at/512+512/user1.1024.new.2.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/at/512+512/user2.1024.new.2.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/at/noboot/eagle.flash.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/at/noboot/eagle.irom0text.bin


+ 0 - 80
sdk/esp_iot_sdk_v1.4.0/bin/at/readme.txt

@@ -1,80 +0,0 @@
-***********************BOOT MODE***********************
-download:
-Flash size 8Mbit: 512KB+512KB
-boot_v1.2+.bin      	0x00000
-user1.1024.new.2.bin  	0x01000
-esp_init_data_default.bin	0xfc000	(optional)
-blank.bin           	0x7e000 & 0xfe000
-
-Flash size 16Mbit: 512KB+512KB
-boot_v1.2+.bin      	0x00000
-user1.1024.new.2.bin  	0x01000
-esp_init_data_default.bin	0x1fc000 (optional)
-blank.bin           	0x7e000 & 0x1fe000
-
-Flash size 16Mbit-C1: 1024KB+1024KB
-boot_v1.2+.bin      	0x00000
-user1.2048.new.5.bin  	0x01000
-esp_init_data_default.bin	0x1fc000 (optional)
-blank.bin           	0xfe000 & 0x1fe000
-
-Flash size 32Mbit: 512KB+512KB
-boot_v1.2+.bin      	0x00000
-user1.1024.new.2.bin  	0x01000
-esp_init_data_default.bin	0x3fc000 (optional)
-blank.bin           	0x7e000 & 0x3fe000
-
-Flash size 32Mbit-C1: 1024KB+1024KB
-boot_v1.2+.bin      	0x00000
-user1.2048.new.5.bin  	0x01000
-esp_init_data_default.bin	0x3fc000 (optional)
-blank.bin           	0xfe000 & 0x3fe000
-
-***********************NON-BOOT MODE***********************
-download
-eagle.flash.bin		0x00000
-eagle.irom0text.bin	0x40000
-blank.bin		
-	Flash size 4Mbit:	0x3e000	& 0x7e000
-	Flash size 8Mbit:	0x7e000 & 0xfe000
-	Flash size 16Mbit:      0x7e000 & 0x1fe000
-	Flash size 16Mbit-C1:   0xfe000 & 0x1fe000
-	Flash size 32Mbit:      0x7e000 & 0x3fe000
-	Flash size 32Mbit-C1:   0xfe000 & 0x3fe000
-esp_init_data_default.bin	 (optional)	
-	Flash size 4Mbit:	0x7c000
-      Flash size 8Mbit:	0xfc000
-	Flash size 16Mbit:      0x1fc000
-	Flash size 16Mbit-C1:   0x1fc000
-	Flash size 32Mbit:      0x3fc000
-	Flash size 32Mbit-C1:   0x3fc000
-
-*NOTICE*:
-UPDATE is not supported in non-boot mode
-
-***********************************************************
-
-Update steps
-1.Make sure TE(terminal equipment) is in sta or sta+ap mode
-ex. AT+CWMODE=3
-    OK
-    
-    AT+RST
-
-2.Make sure TE got ip address
-ex. AT+CWJAP="ssid","12345678"
-    OK
-
-    AT+CIFSR
-    192.168.1.134
-
-3.Let's update
-ex. AT+CIUPDATE
-    +CIPUPDATE:1    found server
-    +CIPUPDATE:2    connect server
-    +CIPUPDATE:3    got edition
-    +CIPUPDATE:4    start start
-
-    OK
-
-note. If there are mistakes in the updating, then break update and print ERROR.

Разница между файлами не показана из-за своего большого размера
+ 0 - 0
sdk/esp_iot_sdk_v1.4.0/bin/blank.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/boot_v1.2.bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/boot_v1.4(b1).bin


BIN
sdk/esp_iot_sdk_v1.4.0/bin/esp_init_data_default.bin


+ 0 - 11
sdk/esp_iot_sdk_v1.4.0/document/readme.txt

@@ -1,11 +0,0 @@
-English version:
-
-SDK Development Guide @ http://bbs.espressif.com/viewtopic.php?f=51&t=1024
-AT Commands User Guide @ http://bbs.espressif.com/viewtopic.php?f=51&t=1022
-All documentations @ http://bbs.espressif.com/viewforum.php?f=51
-
-中文文档:
-
-SDK 编程手册 @ http://bbs.espressif.com/viewtopic.php?f=51&t=1024
-AT 指令集 @ http://bbs.espressif.com/viewtopic.php?f=51&t=1022
-全部开发文档 @ http://bbs.espressif.com/viewforum.php?f=51

+ 0 - 125
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/Makefile

@@ -1,125 +0,0 @@
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of object file images to be generated ()
-#   GEN_BINS - list of binaries to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-TARGET = eagle
-#FLAVOR = release
-FLAVOR = debug
-
-#EXTRA_CCFLAGS += -u
-
-ifndef PDIR # {
-GEN_IMAGES= eagle.app.v6.out
-GEN_BINS= eagle.app.v6.bin
-SPECIAL_MKTARGETS=$(APP_MKTARGETS)
-SUBDIRS=    \
-	user    \
-	driver
-
-endif # } PDIR
-
-APPDIR = .
-LDDIR = ../ld
-
-CCFLAGS += -Os
-
-TARGET_LDFLAGS =		\
-	-nostdlib		\
-	-Wl,-EL \
-	--longcalls \
-	--text-section-literals
-
-ifeq ($(FLAVOR),debug)
-    TARGET_LDFLAGS += -g -O2
-endif
-
-ifeq ($(FLAVOR),release)
-    TARGET_LDFLAGS += -g -O0
-endif
-
-COMPONENTS_eagle.app.v6 = \
-	user/libuser.a  \
-	driver/libdriver.a
-
-LINKFLAGS_eagle.app.v6 = \
-	-L../lib        \
-	-nostdlib	\
-    -T$(LD_FILE)   \
-	-Wl,--no-check-sections	\
-    -u call_user_start	\
-	-Wl,-static						\
-	-Wl,--start-group					\
-	-lc					\
-	-lgcc					\
-	-lhal					\
-	-lphy	\
-	-lpp	\
-	-lnet80211	\
-	-llwip	\
-	-lwpa	\
-	-lmain	\
-	-ljson	\
-	-lupgrade\
-	-lssl	\
-	-lpwm	\
-	-lsmartconfig \
-	$(DEP_LIBS_eagle.app.v6)					\
-	-Wl,--end-group
-
-DEPENDS_eagle.app.v6 = \
-                $(LD_FILE) \
-                $(LDDIR)/eagle.rom.addr.v6.ld
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-
-#UNIVERSAL_TARGET_DEFINES =		\
-
-# Other potential configuration flags include:
-#	-DTXRX_TXBUF_DEBUG
-#	-DTXRX_RXBUF_DEBUG
-#	-DWLAN_CONFIG_CCX
-CONFIGURATION_DEFINES =	-DICACHE_FLASH
-
-DEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-DDEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-
-.PHONY: FORCE
-FORCE:
-

+ 0 - 44
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/driver/Makefile

@@ -1,44 +0,0 @@
-
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of images to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-ifndef PDIR
-GEN_LIBS = libdriver.a
-endif
-
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-#DEFINES += 
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-INCLUDES += -I ./
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-

+ 0 - 316
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/driver/i2c_master.c

@@ -1,316 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: i2c_master.c
- *
- * Description: i2c master API
- *
- * Modification history:
- *     2014/3/12, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-#include "gpio.h"
-
-#include "driver/i2c_master.h"
-
-LOCAL uint8 m_nLastSDA;
-LOCAL uint8 m_nLastSCL;
-
-/******************************************************************************
- * FunctionName : i2c_master_setDC
- * Description  : Internal used function -
- *                    set i2c SDA and SCL bit value for half clk cycle
- * Parameters   : uint8 SDA
- *                uint8 SCL
- * Returns      : NONE
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-i2c_master_setDC(uint8 SDA, uint8 SCL)
-{
-    SDA	&= 0x01;
-    SCL	&= 0x01;
-    m_nLastSDA = SDA;
-    m_nLastSCL = SCL;
-
-    if ((0 == SDA) && (0 == SCL)) {
-        I2C_MASTER_SDA_LOW_SCL_LOW();
-    } else if ((0 == SDA) && (1 == SCL)) {
-        I2C_MASTER_SDA_LOW_SCL_HIGH();
-    } else if ((1 == SDA) && (0 == SCL)) {
-        I2C_MASTER_SDA_HIGH_SCL_LOW();
-    } else {
-        I2C_MASTER_SDA_HIGH_SCL_HIGH();
-    }
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_getDC
- * Description  : Internal used function -
- *                    get i2c SDA bit value
- * Parameters   : NONE
- * Returns      : uint8 - SDA bit value
-*******************************************************************************/
-LOCAL uint8 ICACHE_FLASH_ATTR
-i2c_master_getDC(void)
-{
-    uint8 sda_out;
-    sda_out = GPIO_INPUT_GET(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO));
-    return sda_out;
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_init
- * Description  : initilize I2C bus to enable i2c operations
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_init(void)
-{
-    uint8 i;
-
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-
-    // when SCL = 0, toggle SDA to clear up
-    i2c_master_setDC(0, 0) ;
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 0) ;
-    i2c_master_wait(5);
-
-    // set data_cnt to max value
-    for (i = 0; i < 28; i++) {
-        i2c_master_setDC(1, 0);
-        i2c_master_wait(5);	// sda 1, scl 0
-        i2c_master_setDC(1, 1);
-        i2c_master_wait(5);	// sda 1, scl 1
-    }
-
-    // reset all
-    i2c_master_stop();
-    return;
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_gpio_init
- * Description  : config SDA and SCL gpio to open-drain output mode,
- *                mux and gpio num defined in i2c_master.h
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_gpio_init(void)
-{
-    ETS_GPIO_INTR_DISABLE() ;
-//    ETS_INTR_LOCK();
-
-    PIN_FUNC_SELECT(I2C_MASTER_SDA_MUX, I2C_MASTER_SDA_FUNC);
-    PIN_FUNC_SELECT(I2C_MASTER_SCL_MUX, I2C_MASTER_SCL_FUNC);
-
-    GPIO_REG_WRITE(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO)), GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO))) | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)); //open drain;
-    GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, GPIO_REG_READ(GPIO_ENABLE_ADDRESS) | (1 << I2C_MASTER_SDA_GPIO));
-    GPIO_REG_WRITE(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SCL_GPIO)), GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SCL_GPIO))) | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)); //open drain;
-    GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, GPIO_REG_READ(GPIO_ENABLE_ADDRESS) | (1 << I2C_MASTER_SCL_GPIO));
-
-    I2C_MASTER_SDA_HIGH_SCL_HIGH();
-
-    ETS_GPIO_INTR_ENABLE() ;
-//    ETS_INTR_UNLOCK();
-
-    i2c_master_init();
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_start
- * Description  : set i2c to send state
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_start(void)
-{
-    i2c_master_setDC(1, m_nLastSCL);
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 1);
-    i2c_master_wait(5);	// sda 1, scl 1
-    i2c_master_setDC(0, 1);
-    i2c_master_wait(5);	// sda 0, scl 1
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_stop
- * Description  : set i2c to stop sending state
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_stop(void)
-{
-    i2c_master_wait(5);
-
-    i2c_master_setDC(0, m_nLastSCL);
-    i2c_master_wait(5);	// sda 0
-    i2c_master_setDC(0, 1);
-    i2c_master_wait(5);	// sda 0, scl 1
-    i2c_master_setDC(1, 1);
-    i2c_master_wait(5);	// sda 1, scl 1
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_setAck
- * Description  : set ack to i2c bus as level value
- * Parameters   : uint8 level - 0 or 1
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_setAck(uint8 level)
-{
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);
-    i2c_master_setDC(level, 0);
-    i2c_master_wait(5);	// sda level, scl 0
-    i2c_master_setDC(level, 1);
-    i2c_master_wait(8);	// sda level, scl 1
-    i2c_master_setDC(level, 0);
-    i2c_master_wait(5);	// sda level, scl 0
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_getAck
- * Description  : confirm if peer send ack
- * Parameters   : NONE
- * Returns      : uint8 - ack value, 0 or 1
-*******************************************************************************/
-uint8 ICACHE_FLASH_ATTR
-i2c_master_getAck(void)
-{
-    uint8 retVal;
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 1);
-    i2c_master_wait(5);
-
-    retVal = i2c_master_getDC();
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-
-    return retVal;
-}
-
-/******************************************************************************
-* FunctionName : i2c_master_checkAck
-* Description  : get dev response
-* Parameters   : NONE
-* Returns      : true : get ack ; false : get nack
-*******************************************************************************/
-bool ICACHE_FLASH_ATTR
-i2c_master_checkAck(void)
-{
-    if(i2c_master_getAck()){
-        return FALSE;
-    }else{
-        return TRUE;
-    }
-}
-
-/******************************************************************************
-* FunctionName : i2c_master_send_ack
-* Description  : response ack
-* Parameters   : NONE
-* Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_send_ack(void)
-{
-    i2c_master_setAck(0x0);
-}
-/******************************************************************************
-* FunctionName : i2c_master_send_nack
-* Description  : response nack
-* Parameters   : NONE
-* Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_send_nack(void)
-{
-    i2c_master_setAck(0x1);
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_readByte
- * Description  : read Byte from i2c bus
- * Parameters   : NONE
- * Returns      : uint8 - readed value
-*******************************************************************************/
-uint8 ICACHE_FLASH_ATTR
-i2c_master_readByte(void)
-{
-    uint8 retVal = 0;
-    uint8 k, i;
-
-    i2c_master_wait(5);
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);	// sda 1, scl 0
-
-    for (i = 0; i < 8; i++) {
-        i2c_master_wait(5);
-        i2c_master_setDC(1, 0);
-        i2c_master_wait(5);	// sda 1, scl 0
-        i2c_master_setDC(1, 1);
-        i2c_master_wait(5);	// sda 1, scl 1
-
-        k = i2c_master_getDC();
-        i2c_master_wait(5);
-
-        if (i == 7) {
-            i2c_master_wait(3);   ////
-        }
-
-        k <<= (7 - i);
-        retVal |= k;
-    }
-
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);	// sda 1, scl 0
-
-    return retVal;
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_writeByte
- * Description  : write wrdata value(one byte) into i2c
- * Parameters   : uint8 wrdata - write value
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_writeByte(uint8 wrdata)
-{
-    uint8 dat;
-    sint8 i;
-
-    i2c_master_wait(5);
-
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);
-
-    for (i = 7; i >= 0; i--) {
-        dat = wrdata >> i;
-        i2c_master_setDC(dat, 0);
-        i2c_master_wait(5);
-        i2c_master_setDC(dat, 1);
-        i2c_master_wait(5);
-
-        if (i == 0) {
-            i2c_master_wait(3);   ////
-        }
-
-        i2c_master_setDC(dat, 0);
-        i2c_master_wait(5);
-    }
-}

+ 0 - 162
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/driver/key.c

@@ -1,162 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: key.c
- *
- * Description: key driver, now can use different gpio and install different function
- *
- * Modification history:
- *     2014/5/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "osapi.h"
-#include "mem.h"
-#include "gpio.h"
-#include "user_interface.h"
-
-#include "driver/key.h"
-
-LOCAL void key_intr_handler(struct keys_param *keys);
-
-/******************************************************************************
- * FunctionName : key_init_single
- * Description  : init single key's gpio and register function
- * Parameters   : uint8 gpio_id - which gpio to use
- *                uint32 gpio_name - gpio mux name
- *                uint32 gpio_func - gpio function
- *                key_function long_press - long press function, needed to install
- *                key_function short_press - short press function, needed to install
- * Returns      : single_key_param - single key parameter, needed by key init
-*******************************************************************************/
-struct single_key_param *ICACHE_FLASH_ATTR
-key_init_single(uint8 gpio_id, uint32 gpio_name, uint8 gpio_func, key_function long_press, key_function short_press)
-{
-    struct single_key_param *single_key = (struct single_key_param *)os_zalloc(sizeof(struct single_key_param));
-
-    single_key->gpio_id = gpio_id;
-    single_key->gpio_name = gpio_name;
-    single_key->gpio_func = gpio_func;
-    single_key->long_press = long_press;
-    single_key->short_press = short_press;
-
-    return single_key;
-}
-
-/******************************************************************************
- * FunctionName : key_init
- * Description  : init keys
- * Parameters   : key_param *keys - keys parameter, which inited by key_init_single
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-key_init(struct keys_param *keys)
-{
-    uint8 i;
-
-    ETS_GPIO_INTR_ATTACH(key_intr_handler, keys);
-
-    ETS_GPIO_INTR_DISABLE();
-
-    for (i = 0; i < keys->key_num; i++) {
-        keys->single_key[i]->key_level = 1;
-
-        PIN_FUNC_SELECT(keys->single_key[i]->gpio_name, keys->single_key[i]->gpio_func);
-
-        gpio_output_set(0, 0, 0, GPIO_ID_PIN(keys->single_key[i]->gpio_id));
-
-        gpio_register_set(GPIO_PIN_ADDR(keys->single_key[i]->gpio_id), GPIO_PIN_INT_TYPE_SET(GPIO_PIN_INTR_DISABLE)
-                          | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_DISABLE)
-                          | GPIO_PIN_SOURCE_SET(GPIO_AS_PIN_SOURCE));
-
-        //clear gpio14 status
-        GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, BIT(keys->single_key[i]->gpio_id));
-
-        //enable interrupt
-        gpio_pin_intr_state_set(GPIO_ID_PIN(keys->single_key[i]->gpio_id), GPIO_PIN_INTR_NEGEDGE);
-    }
-
-    ETS_GPIO_INTR_ENABLE();
-}
-
-/******************************************************************************
- * FunctionName : key_5s_cb
- * Description  : long press 5s timer callback
- * Parameters   : single_key_param *single_key - single key parameter
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-key_5s_cb(struct single_key_param *single_key)
-{
-    os_timer_disarm(&single_key->key_5s);
-
-    // low, then restart
-    if (0 == GPIO_INPUT_GET(GPIO_ID_PIN(single_key->gpio_id))) {
-        if (single_key->long_press) {
-            single_key->long_press();
-        }
-    }
-}
-
-/******************************************************************************
- * FunctionName : key_50ms_cb
- * Description  : 50ms timer callback to check it's a real key push
- * Parameters   : single_key_param *single_key - single key parameter
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-key_50ms_cb(struct single_key_param *single_key)
-{
-    os_timer_disarm(&single_key->key_50ms);
-
-    // high, then key is up
-    if (1 == GPIO_INPUT_GET(GPIO_ID_PIN(single_key->gpio_id))) {
-        os_timer_disarm(&single_key->key_5s);
-        single_key->key_level = 1;
-        gpio_pin_intr_state_set(GPIO_ID_PIN(single_key->gpio_id), GPIO_PIN_INTR_NEGEDGE);
-
-        if (single_key->short_press) {
-            single_key->short_press();
-        }
-    } else {
-        gpio_pin_intr_state_set(GPIO_ID_PIN(single_key->gpio_id), GPIO_PIN_INTR_POSEDGE);
-    }
-}
-
-/******************************************************************************
- * FunctionName : key_intr_handler
- * Description  : key interrupt handler
- * Parameters   : key_param *keys - keys parameter, which inited by key_init_single
- * Returns      : none
-*******************************************************************************/
-LOCAL void
-key_intr_handler(struct keys_param *keys)
-{
-    uint8 i;
-    uint32 gpio_status = GPIO_REG_READ(GPIO_STATUS_ADDRESS);
-
-    for (i = 0; i < keys->key_num; i++) {
-        if (gpio_status & BIT(keys->single_key[i]->gpio_id)) {
-            //disable interrupt
-            gpio_pin_intr_state_set(GPIO_ID_PIN(keys->single_key[i]->gpio_id), GPIO_PIN_INTR_DISABLE);
-
-            //clear interrupt status
-            GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, gpio_status & BIT(keys->single_key[i]->gpio_id));
-
-            if (keys->single_key[i]->key_level == 1) {
-                // 5s, restart & enter softap mode
-                os_timer_disarm(&keys->single_key[i]->key_5s);
-                os_timer_setfn(&keys->single_key[i]->key_5s, (os_timer_func_t *)key_5s_cb, keys->single_key[i]);
-                os_timer_arm(&keys->single_key[i]->key_5s, 5000, 0);
-                keys->single_key[i]->key_level = 0;
-                gpio_pin_intr_state_set(GPIO_ID_PIN(keys->single_key[i]->gpio_id), GPIO_PIN_INTR_POSEDGE);
-            } else {
-                // 50ms, check if this is a real key up
-                os_timer_disarm(&keys->single_key[i]->key_50ms);
-                os_timer_setfn(&keys->single_key[i]->key_50ms, (os_timer_func_t *)key_50ms_cb, keys->single_key[i]);
-                os_timer_arm(&keys->single_key[i]->key_50ms, 50, 0);
-            }
-        }
-    }
-}
-

+ 0 - 147
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/gen_misc.bat

@@ -1,147 +0,0 @@
-@echo off
-
-echo gen_misc.bat version 20150511
-echo .
-
-echo Please follow below steps(1-5) to generate specific bin(s):
-echo STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)
-set input=default
-set /p input=enter(0/1/2, default 2):
-
-if %input% equ 0 (
-    set boot=old
-) else (
-if %input% equ 1 (
-    set boot=new
-) else (
-    set boot=none
-)
-)
-
-echo boot mode: %boot%
-echo.
-
-echo STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)
-set input=default
-set /p input=enter (0/1/2, default 0):
-
-if %input% equ 1 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=1
-        echo generate bin: user1.bin
-    )
-) else (
-if %input% equ 2 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=2
-        echo generate bin: user2.bin
-    )
-) else (
-    if %boot% neq none (
-        set boot=none
-        echo ignore boot
-    )
-    set app=0
-    echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-))
-
-echo.
-
-echo STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)
-set input=default
-set /p input=enter (0/1/2/3, default 2):
-
-if %input% equ 0 (
-    set spi_speed=20
-) else (
-if %input% equ 1 (
-    set spi_speed=26.7
-) else (
-if %input% equ 3 (
-    set spi_speed=80
-) else (
-    set spi_speed=40
-)))
-
-echo spi speed: %spi_speed% MHz
-echo.
-
-echo STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)
-set input=default
-set /p input=enter (0/1/2/3, default 0):
-
-if %input% equ 1 (
-    set spi_mode=QOUT
-) else (
-if %input% equ 2 (
-    set spi_mode=DIO
-) else (
-if %input% equ 3 (
-    set spi_mode=DOUT
-) else (
-    set spi_mode=QIO
-)))
-
-echo spi mode: %spi_mode%
-echo.
-
-echo STEP 5: choose flash size and map
-echo     0= 512KB( 256KB+ 256KB)
-echo     2=1024KB( 512KB+ 512KB)
-echo     3=2048KB( 512KB+ 512KB)
-echo     4=4096KB( 512KB+ 512KB)
-echo     5=2048KB(1024KB+1024KB)
-echo     6=4096KB(1024KB+1024KB)
-set input=default
-set /p input=enter (0/1/2/3/4/5/6, default 0):
-
-if %input% equ 2 (
-  set spi_size_map=2
-  echo spi size: 1024KB
-  echo spi ota map: 512KB + 512KB
-) else (
-  if %input% equ 3 (
-    set spi_size_map=3
-    echo spi size: 2048KB
-    echo spi ota map: 512KB + 512KB
-  ) else (
-    if %input% equ 4 (
-      set spi_size_map=4
-      echo spi size: 4096KB
-      echo spi ota map: 512KB + 512KB
-    ) else (
-      if %input% equ 5 (
-        set spi_size_map=5
-        echo spi size: 2048KB
-        echo spi ota map: 1024KB + 1024KB
-      ) else (
-        if %input% equ 6 (
-          set spi_size_map=6
-          echo spi size: 4096KB
-          echo spi ota map: 1024KB + 1024KB
-        ) else (
-          set spi_size_map=0
-          echo spi size: 512KB
-          echo spi ota map: 256KB + 256KB
-        )
-      )
-    )
-  )
-)
-
-touch user/user_main.c
-
-echo.
-echo start...
-echo.
-
-make BOOT=%boot% APP=%app% SPI_SPEED=%spi_speed% SPI_MODE=%spi_mode% SPI_SIZE=%spi_size_map%
-

+ 0 - 150
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/gen_misc.sh

@@ -1,150 +0,0 @@
-#!/bin/bash
-
-echo "gen_misc.sh version 20150511"
-echo ""
-
-echo "Please follow below steps(1-5) to generate specific bin(s):"
-echo "STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)"
-echo "enter(0/1/2, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    boot=none
-elif [ $input == 0 ]; then
-	boot=old
-elif [ $input == 1 ]; then
-    boot=new
-else
-    boot=none
-fi
-
-echo "boot mode: $boot"
-echo ""
-
-echo "STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)"
-echo "enter (0/1/2, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-elif [ $input == 1 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-	app=1
-        echo "generate bin: user1.bin"
-    fi
-elif [ $input == 2 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-    	app=2
-    	echo "generate bin: user2.bin"
-    fi
-else
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-fi
-
-echo ""
-
-echo "STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)"
-echo "enter (0/1/2/3, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    spi_speed=40
-elif [ $input == 0 ]; then
-    spi_speed=20
-elif [ $input == 1 ]; then
-    spi_speed=26.7
-elif [ $input == 3 ]; then
-    spi_speed=80
-else
-    spi_speed=40
-fi
-
-echo "spi speed: $spi_speed MHz"
-echo ""
-
-echo "STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)"
-echo "enter (0/1/2/3, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_mode=QIO
-elif [ $input == 1 ]; then
-    spi_mode=QOUT
-elif [ $input == 2 ]; then
-    spi_mode=DIO
-elif [ $input == 3 ]; then
-    spi_mode=DOUT
-else
-    spi_mode=QIO
-fi
-
-echo "spi mode: $spi_mode"
-echo ""
-
-echo "STEP 5: choose spi size and map"
-echo "    0= 512KB( 256KB+ 256KB)"
-echo "    2=1024KB( 512KB+ 512KB)"
-echo "    3=2048KB( 512KB+ 512KB)"
-echo "    4=4096KB( 512KB+ 512KB)"
-echo "    5=2048KB(1024KB+1024KB)"
-echo "    6=4096KB(1024KB+1024KB)"
-echo "enter (0/2/3/4/5/6, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-elif [ $input == 2 ]; then
-    spi_size_map=2
-    echo "spi size: 1024KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 3 ]; then
-    spi_size_map=3
-    echo "spi size: 2048KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 4 ]; then
-    spi_size_map=4
-    echo "spi size: 4096KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 5 ]; then
-    spi_size_map=5
-    echo "spi size: 2048KB"
-    echo "spi ota map:  1024KB + 1024KB"
-elif [ $input == 6 ]; then
-    spi_size_map=6
-    echo "spi size: 4096KB"
-    echo "spi ota map:  1024KB + 1024KB"
-else
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-fi
-
-echo ""
-
-touch user/user_main.c
-
-echo ""
-echo "start..."
-echo ""
-
-make COMPILE=gcc BOOT=$boot APP=$app SPI_SPEED=$spi_speed SPI_MODE=$spi_mode SPI_SIZE_MAP=$spi_size_map

+ 0 - 57
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/driver/i2c_master.h

@@ -1,57 +0,0 @@
-#ifndef __I2C_MASTER_H__
-#define __I2C_MASTER_H__
-
-#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
-#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTMS_U
-#define I2C_MASTER_SDA_GPIO 2
-#define I2C_MASTER_SCL_GPIO 14
-#define I2C_MASTER_SDA_FUNC FUNC_GPIO2
-#define I2C_MASTER_SCL_FUNC FUNC_GPIO14
-
-//#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
-//#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_GPIO0_U
-//#define I2C_MASTER_SDA_GPIO 2
-//#define I2C_MASTER_SCL_GPIO 0
-//#define I2C_MASTER_SDA_FUNC FUNC_GPIO2
-//#define I2C_MASTER_SCL_FUNC FUNC_GPIO0
-
-#if 0
-#define I2C_MASTER_GPIO_SET(pin)  \
-    gpio_output_set(1<<pin,0,1<<pin,0)
-
-#define I2C_MASTER_GPIO_CLR(pin) \
-    gpio_output_set(0,1<<pin,1<<pin,0)
-
-#define I2C_MASTER_GPIO_OUT(pin,val) \
-    if(val) I2C_MASTER_GPIO_SET(pin);\
-    else I2C_MASTER_GPIO_CLR(pin)
-#endif
-
-#define I2C_MASTER_SDA_HIGH_SCL_HIGH()  \
-    gpio_output_set(1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-#define I2C_MASTER_SDA_HIGH_SCL_LOW()  \
-    gpio_output_set(1<<I2C_MASTER_SDA_GPIO, 1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-#define I2C_MASTER_SDA_LOW_SCL_HIGH()  \
-    gpio_output_set(1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-#define I2C_MASTER_SDA_LOW_SCL_LOW()  \
-    gpio_output_set(0, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-void i2c_master_gpio_init(void);
-void i2c_master_init(void);
-
-#define i2c_master_wait    os_delay_us
-void i2c_master_stop(void);
-void i2c_master_start(void);
-void i2c_master_setAck(uint8 level);
-uint8 i2c_master_getAck(void);
-uint8 i2c_master_readByte(void);
-void i2c_master_writeByte(uint8 wrdata);
-
-bool i2c_master_checkAck(void);
-void i2c_master_send_ack(void);
-void i2c_master_send_nack(void);
-
-#endif

+ 0 - 27
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/driver/key.h

@@ -1,27 +0,0 @@
-#ifndef __KEY_H__
-#define __KEY_H__
-
-#include "gpio.h"
-
-typedef void (* key_function)(void);
-
-struct single_key_param {
-    uint8 key_level;
-    uint8 gpio_id;
-    uint8 gpio_func;
-    uint32 gpio_name;
-    os_timer_t key_5s;
-    os_timer_t key_50ms;
-    key_function short_press;
-    key_function long_press;
-};
-
-struct keys_param {
-    uint8 key_num;
-    struct single_key_param **single_key;
-};
-
-struct single_key_param *key_init_single(uint8 gpio_id, uint32 gpio_name, uint8 gpio_func, key_function long_press, key_function short_press);
-void key_init(struct keys_param *key);
-
-#endif

+ 0 - 36
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/ssl/cert.h

@@ -1,36 +0,0 @@
-unsigned char default_certificate[] = {
-  0x30, 0x82, 0x01, 0x82, 0x30, 0x81, 0xec, 0x02, 0x09, 0x00, 0x88, 0xf2,
-  0x5f, 0x46, 0x12, 0x2e, 0x3d, 0x3a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86,
-  0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x1c, 0x31,
-  0x1a, 0x30, 0x18, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x11, 0x77, 0x77,
-  0x77, 0x2e, 0x65, 0x73, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x66, 0x2e,
-  0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x36, 0x32,
-  0x34, 0x31, 0x30, 0x32, 0x32, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x38,
-  0x30, 0x33, 0x30, 0x32, 0x31, 0x30, 0x32, 0x32, 0x33, 0x33, 0x5a, 0x30,
-  0x34, 0x31, 0x12, 0x30, 0x10, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x09,
-  0x65, 0x73, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x66, 0x31, 0x1e, 0x30,
-  0x1c, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x15, 0x65, 0x73, 0x70, 0x72,
-  0x65, 0x73, 0x73, 0x69, 0x66, 0x20, 0x49, 0x6f, 0x54, 0x20, 0x70, 0x72,
-  0x6f, 0x6a, 0x65, 0x63, 0x74, 0x30, 0x5c, 0x30, 0x0d, 0x06, 0x09, 0x2a,
-  0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x4b,
-  0x00, 0x30, 0x48, 0x02, 0x41, 0x00, 0xb9, 0x83, 0x30, 0xca, 0xfb, 0xec,
-  0x11, 0x9e, 0x94, 0xb7, 0x89, 0xf2, 0x84, 0x2c, 0xda, 0xe1, 0x9a, 0x53,
-  0x3a, 0x1b, 0x6e, 0xc9, 0x85, 0x81, 0xf9, 0xa3, 0x41, 0xdb, 0xe2, 0x82,
-  0x3b, 0xfa, 0x80, 0x22, 0x3b, 0x81, 0x6d, 0x25, 0x73, 0x7e, 0xf6, 0x49,
-  0xcc, 0x69, 0x3c, 0x6c, 0xd8, 0x05, 0xfb, 0x92, 0x02, 0xcf, 0x19, 0x2a,
-  0x10, 0x7d, 0x69, 0x7a, 0xd8, 0x9d, 0xd3, 0xcf, 0x6c, 0xef, 0x02, 0x03,
-  0x01, 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7,
-  0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x81, 0x81, 0x00, 0x2d, 0x63,
-  0x58, 0x21, 0xe3, 0x8b, 0x37, 0x0d, 0x28, 0x68, 0x11, 0x0e, 0x4d, 0xdd,
-  0xf3, 0xea, 0xdb, 0xec, 0xd7, 0x09, 0x47, 0x2c, 0xa1, 0xd8, 0xd1, 0x71,
-  0x83, 0x11, 0xb4, 0x17, 0xbc, 0x83, 0xea, 0x5a, 0xd6, 0x73, 0x02, 0x25,
-  0x87, 0x01, 0x76, 0xfc, 0x59, 0x1a, 0xcf, 0xd9, 0x49, 0xc9, 0xf9, 0x1f,
-  0x5c, 0x3b, 0x24, 0x6a, 0x5c, 0xa5, 0xca, 0xe6, 0x5d, 0x34, 0x5b, 0x5f,
-  0xcf, 0x56, 0x9c, 0x71, 0xd2, 0x6b, 0xdd, 0x1f, 0x15, 0xae, 0x4d, 0xf1,
-  0xca, 0x35, 0xc8, 0xdd, 0x93, 0x1b, 0x58, 0x1e, 0x94, 0x08, 0xcf, 0xa0,
-  0x20, 0xb9, 0x75, 0xa5, 0x4c, 0x77, 0xf5, 0x7f, 0xed, 0xd5, 0xcd, 0x53,
-  0xaa, 0x87, 0xa6, 0x3c, 0xf5, 0x72, 0xd8, 0xd2, 0xb0, 0xf7, 0x11, 0xb0,
-  0x0e, 0xe9, 0x41, 0xd6, 0x8e, 0xd9, 0x07, 0xf8, 0xed, 0xf8, 0x67, 0x7f,
-  0x28, 0x18, 0xf0, 0x1b, 0x29, 0x11
-};
-unsigned int default_certificate_len = 390;

+ 0 - 30
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/ssl/private_key.h

@@ -1,30 +0,0 @@
-unsigned char default_private_key[] = {
-  0x30, 0x82, 0x01, 0x3a, 0x02, 0x01, 0x00, 0x02, 0x41, 0x00, 0xb9, 0x83,
-  0x30, 0xca, 0xfb, 0xec, 0x11, 0x9e, 0x94, 0xb7, 0x89, 0xf2, 0x84, 0x2c,
-  0xda, 0xe1, 0x9a, 0x53, 0x3a, 0x1b, 0x6e, 0xc9, 0x85, 0x81, 0xf9, 0xa3,
-  0x41, 0xdb, 0xe2, 0x82, 0x3b, 0xfa, 0x80, 0x22, 0x3b, 0x81, 0x6d, 0x25,
-  0x73, 0x7e, 0xf6, 0x49, 0xcc, 0x69, 0x3c, 0x6c, 0xd8, 0x05, 0xfb, 0x92,
-  0x02, 0xcf, 0x19, 0x2a, 0x10, 0x7d, 0x69, 0x7a, 0xd8, 0x9d, 0xd3, 0xcf,
-  0x6c, 0xef, 0x02, 0x03, 0x01, 0x00, 0x01, 0x02, 0x40, 0x1d, 0x13, 0x92,
-  0xf2, 0x3d, 0xca, 0x22, 0x78, 0xd8, 0x96, 0x6b, 0xe8, 0xb7, 0x0e, 0xd0,
-  0xbf, 0xcb, 0x90, 0x7f, 0xeb, 0x0c, 0xd2, 0x49, 0x3a, 0xb6, 0x06, 0x00,
-  0xac, 0x96, 0x34, 0x13, 0x72, 0x4b, 0x8c, 0xd2, 0xb9, 0x35, 0xf5, 0x64,
-  0x18, 0xb2, 0x47, 0x5b, 0x9f, 0xbb, 0xf2, 0x5b, 0x2f, 0x66, 0x78, 0x2d,
-  0x0a, 0x76, 0x44, 0xc5, 0x4f, 0xdb, 0x7d, 0x13, 0xcf, 0xa5, 0x08, 0xdc,
-  0x01, 0x02, 0x21, 0x00, 0xdf, 0x9a, 0x89, 0xd0, 0xef, 0x23, 0xcf, 0x12,
-  0xac, 0x8a, 0x63, 0x1a, 0x8c, 0xc0, 0x3f, 0xf4, 0x38, 0x52, 0x3c, 0x9f,
-  0x19, 0x0a, 0x37, 0xd2, 0xcb, 0x5d, 0xeb, 0xb6, 0x2a, 0x33, 0xb0, 0x91,
-  0x02, 0x21, 0x00, 0xd4, 0x63, 0xd9, 0x6a, 0x18, 0x5b, 0xe8, 0xa8, 0x57,
-  0x4d, 0xd1, 0x9a, 0xa8, 0xd7, 0xe1, 0x65, 0x75, 0xb3, 0xb9, 0x5c, 0x94,
-  0x14, 0xca, 0x98, 0x41, 0x47, 0x9c, 0x0a, 0x22, 0x38, 0x05, 0x7f, 0x02,
-  0x20, 0x6a, 0xce, 0xfd, 0xef, 0xe0, 0x9b, 0x61, 0x49, 0x91, 0x43, 0x95,
-  0x6d, 0x54, 0x38, 0x6d, 0x14, 0x32, 0x67, 0x0d, 0xf0, 0x0d, 0x5c, 0xf5,
-  0x27, 0x6a, 0xdf, 0x55, 0x3d, 0xb1, 0xd0, 0xf9, 0x11, 0x02, 0x21, 0x00,
-  0xba, 0x94, 0xa0, 0xf9, 0xb0, 0x3e, 0x85, 0x8b, 0xe5, 0x6e, 0x4a, 0x95,
-  0x88, 0x80, 0x65, 0xd5, 0x00, 0xea, 0x8b, 0x0b, 0x46, 0x57, 0x61, 0x87,
-  0x11, 0xc9, 0xfb, 0xcd, 0x77, 0x34, 0x29, 0xb7, 0x02, 0x20, 0x06, 0x8d,
-  0x41, 0x11, 0x47, 0x93, 0xcb, 0xad, 0xda, 0x5d, 0xe1, 0x9d, 0x49, 0x8d,
-  0xe0, 0xab, 0x48, 0xe6, 0x18, 0x28, 0x4a, 0x94, 0xae, 0xf9, 0xad, 0xc5,
-  0x5b, 0x0b, 0x15, 0xc6, 0x73, 0x17
-};
-unsigned int default_private_key_len = 318;

+ 0 - 64
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_config.h

@@ -1,64 +0,0 @@
-#ifndef __USER_CONFIG_H__
-#define __USER_CONFIG_H__
-
-#define ESP_PLATFORM        1
-#define LEWEI_PLATFORM      0
-
-#define USE_OPTIMIZE_PRINTF
-
-#if ESP_PLATFORM
-#define PLUG_DEVICE             0
-#define LIGHT_DEVICE            1
-#define SENSOR_DEVICE			0
-
-#if SENSOR_DEVICE
-#define HUMITURE_SUB_DEVICE         1
-#define FLAMMABLE_GAS_SUB_DEVICE    0
-#endif
-
-//#define SERVER_SSL_ENABLE
-//#define CLIENT_SSL_ENABLE
-//#define UPGRADE_SSL_ENABLE
-
-#define USE_DNS
-
-#ifdef USE_DNS
-#define ESP_DOMAIN      "iot.espressif.cn"
-#endif
-
-//#define SOFTAP_ENCRYPT
-
-#ifdef SOFTAP_ENCRYPT
-#define PASSWORD	"v*%W>L<@i&Nxe!"
-#endif
-
-#if SENSOR_DEVICE
-#define SENSOR_DEEP_SLEEP
-
-#if HUMITURE_SUB_DEVICE
-#define SENSOR_DEEP_SLEEP_TIME    30000000
-#elif FLAMMABLE_GAS_SUB_DEVICE
-#define SENSOR_DEEP_SLEEP_TIME    60000000
-#endif
-#endif
-
-#if LIGHT_DEVICE
-#define USE_US_TIMER
-#endif
-
-#if PLUG_DEVICE || LIGHT_DEVICE
-#define BEACON_TIMEOUT  150000000
-#define BEACON_TIME     50000
-#endif
-
-#define AP_CACHE           1
-
-#if AP_CACHE
-#define AP_CACHE_NUMBER    5
-#endif
-
-#elif LEWEI_PLATFORM
-#endif
-
-#endif
-

+ 0 - 6
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_devicefind.h

@@ -1,6 +0,0 @@
-#ifndef __USER_DEVICEFIND_H__
-#define __USER_DEVICEFIND_H__
-
-void user_devicefind_init(void);
-
-#endif

+ 0 - 33
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_esp_platform.h

@@ -1,33 +0,0 @@
-#ifndef __USER_DEVICE_H__
-#define __USER_DEVICE_H__
-
-/* NOTICE---this is for 512KB spi flash.
- * you can change to other sector if you use other size spi flash. */
-#define ESP_PARAM_START_SEC		0x3D
-
-#define packet_size   (2 * 1024)
-
-#define token_size 41
-
-struct esp_platform_saved_param {
-    uint8 devkey[40];
-    uint8 token[40];
-    uint8 activeflag;
-    uint8 pad[3];
-};
-
-enum {
-    DEVICE_CONNECTING = 40,
-    DEVICE_ACTIVE_DONE,
-    DEVICE_ACTIVE_FAIL,
-    DEVICE_CONNECT_SERVER_FAIL
-};
-
-struct dhcp_client_info {
-	ip_addr_t ip_addr;
-	ip_addr_t netmask;
-	ip_addr_t gw;
-	uint8 flag;
-	uint8 pad[3];
-};
-#endif

+ 0 - 6
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_esp_platform_timer.h

@@ -1,6 +0,0 @@
-#ifndef __USER_DEVICEFIND_H__
-#define __USER_DEVICEFIND_H__
-
-void user_platform_timer_start(char* pbuffer, struct espconn *pespconn);
-
-#endif

+ 0 - 43
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_iot_version.h

@@ -1,43 +0,0 @@
-#ifndef __USER_IOT_VERSION_H__
-#define __USER_IOT_VERSION_H__
-
-#include "user_config.h"
-
-#define IOT_VERSION_MAJOR		1U
-#define IOT_VERSION_MINOR		0U
-#define IOT_VERSION_REVISION	5U
-
-#define VERSION_NUM   (IOT_VERSION_MAJOR * 1000 + IOT_VERSION_MINOR * 100 + IOT_VERSION_REVISION)
-
-//#define VERSION_TYPE      "b"
-#define VERSION_TYPE   	  "v"
-
-#if LIGHT_DEVICE
-#define device_type       45772
-#elif PLUG_DEVICE
-#define device_type       23701
-#elif SENSOR_DEVICE
-#define device_type       12335
-#endif
-
-
-#define ONLINE_UPGRADE    0
-#define LOCAL_UPGRADE     0
-#define ALL_UPGRADE       1
-#define NONE_UPGRADE      0
-
-#if	ONLINE_UPGRADE
-#define UPGRADE_FALG	"O"
-#elif  LOCAL_UPGRADE
-#define UPGRADE_FALG	"l"
-#elif  ALL_UPGRADE
-#define UPGRADE_FALG	"a"
-#elif NONE_UPGRADE
-#define UPGRADE_FALG	"n"
-#endif
-
-#define IOT_VERSION
-
-
-#endif
-

+ 0 - 17
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_json.h

@@ -1,17 +0,0 @@
-#ifndef __USER_JSON_H__
-#define __USER_JSON_H__
-
-#include "json/jsonparse.h"
-#include "json/jsontree.h"
-
-#define jsonSize   2*1024
-
-void json_parse(struct jsontree_context *json, char *ptrJSONMessage);
-
-void json_ws_send(struct jsontree_value *tree, const char *path, char *pbuf);
-
-int json_putchar(int c);
-
-struct jsontree_value *find_json_path(struct jsontree_context *json, const char *path);
-
-#endif

+ 0 - 64
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_light.h

@@ -1,64 +0,0 @@
-#ifndef __USER_LIGHT_H__
-#define __USER_LIGHT_H__
-/*pwm.h: function and macro definition of PWM API , driver level */
-/*user_light.h: user interface for light API, user level*/
-/*user_light_adj: API for color changing and lighting effects, user level*/
-
-
-#include "pwm.h"
-
-
-/* NOTICE !!! ---this is for 512KB spi flash.*/
-/* You can change to other sector if you use other size spi flash. */
-/* Refer to the documentation about OTA support and flash mapping*/
-#define PRIV_PARAM_START_SEC		0x3C
-#define PRIV_PARAM_SAVE     0
-
-
-
-/*Define the channel number of PWM*/
-/*In this demo, we can set 3 for 3 PWM channels: RED, GREEN, BLUE*/
-/*Or , we can choose 5 channels : RED,GREEN,BLUE,COLD-WHITE,WARM-WHITE*/
-#define PWM_CHANNEL	5  //  5:5channel ; 3:3channel
-
-#define LIGHT_RED       0
-#define LIGHT_GREEN     1
-#define LIGHT_BLUE      2
-#define LIGHT_COLD_WHITE      3
-#define LIGHT_WARM_WHITE      4
-
-
-/*Definition of GPIO PIN params, for GPIO initialization*/
-#define PWM_0_OUT_IO_MUX PERIPHS_IO_MUX_MTDI_U
-#define PWM_0_OUT_IO_NUM 12
-#define PWM_0_OUT_IO_FUNC  FUNC_GPIO12
-
-#define PWM_1_OUT_IO_MUX PERIPHS_IO_MUX_MTDO_U
-#define PWM_1_OUT_IO_NUM 15
-#define PWM_1_OUT_IO_FUNC  FUNC_GPIO15
-
-#define PWM_2_OUT_IO_MUX PERIPHS_IO_MUX_MTCK_U
-#define PWM_2_OUT_IO_NUM 13
-#define PWM_2_OUT_IO_FUNC  FUNC_GPIO13
-
-#define PWM_3_OUT_IO_MUX PERIPHS_IO_MUX_MTMS_U
-#define PWM_3_OUT_IO_NUM 14
-#define PWM_3_OUT_IO_FUNC  FUNC_GPIO14
-
-#define PWM_4_OUT_IO_MUX PERIPHS_IO_MUX_GPIO5_U
-#define PWM_4_OUT_IO_NUM 5
-#define PWM_4_OUT_IO_FUNC  FUNC_GPIO5
-
-struct light_saved_param {
-    uint32  pwm_period;
-    uint32  pwm_duty[PWM_CHANNEL];
-};
-
-void user_light_init(void);
-uint32 user_light_get_duty(uint8 channel);
-void user_light_set_duty(uint32 duty, uint8 channel);
-uint32 user_light_get_period(void);
-void user_light_set_period(uint32 period);
-
-#endif
-

+ 0 - 33
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_light_adj.h

@@ -1,33 +0,0 @@
-#ifndef __USER_LIGHT_ADJ_H__
-#define __USER_LIGHT_ADJ_H__
-/*pwm.h: function and macro definition of PWM API , driver level */
-/*user_light.h: user interface for light setting, user level*/
-/*user_light_adj: API for color changing and lighting effects, user level*/
-
-
-
-
-/*save RGB params to flash when calling light_set_aim*/
-#define SAVE_LIGHT_PARAM  0  //set to 0: do not save color params
-
-/*check current consumption and limit the total current for LED driver IC*/
-/*NOTE: YOU SHOULD REPLACE WIHT THE LIMIT CURRENT OF YOUR OWN APPLICATION*/
-#define LIGHT_CURRENT_LIMIT  0 //set to 0: do not limit total current
-#if LIGHT_CURRENT_LIMIT
-#define LIGHT_TOTAL_CURRENT_MAX  (450*1000) //450000/1000 MA AT MOST
-#define LIGHT_CURRENT_MARGIN  (80*1000) //80000/1000 MA CURRENT RAISES WHILE TEMPERATURE INCREASING
-#define LIGHT_CURRENT_MARGIN_L2  (110*1000) //110000/1000 MA 
-#define LIGHT_CURRENT_MARGIN_L3  (140*1000) //140000/1000 MA 
-#endif
-
-
-/*set target duty for PWM channels, change each channel duty gradually */
-void  light_set_aim(uint32 r,uint32 g,uint32 b,uint32 cw,uint32 ww,uint32 period);//'white' channel is not used in default demo
-void light_set_aim_r(uint32 r);
-void light_set_aim_g(uint32 g);
-void light_set_aim_b(uint32 b);
-void light_set_aim_cw(uint32 cw);
-void light_set_aim_ww(uint32 ww);
-
-#endif
-

+ 0 - 43
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_plug.h

@@ -1,43 +0,0 @@
-#ifndef __USER_ESPSWITCH_H__
-#define __USER_ESPSWITCH_H__
-
-#include "driver/key.h"
-
-/* NOTICE---this is for 512KB spi flash.
- * you can change to other sector if you use other size spi flash. */
-#define PRIV_PARAM_START_SEC		0x3C
-
-#define PRIV_PARAM_SAVE     0
-
-#define PLUG_KEY_NUM            1
-
-#define PLUG_KEY_0_IO_MUX     PERIPHS_IO_MUX_MTCK_U
-#define PLUG_KEY_0_IO_NUM     13
-#define PLUG_KEY_0_IO_FUNC    FUNC_GPIO13
-
-#define PLUG_WIFI_LED_IO_MUX     PERIPHS_IO_MUX_GPIO0_U
-#define PLUG_WIFI_LED_IO_NUM     0
-#define PLUG_WIFI_LED_IO_FUNC    FUNC_GPIO0
-
-#define PLUG_LINK_LED_IO_MUX     PERIPHS_IO_MUX_MTDI_U
-#define PLUG_LINK_LED_IO_NUM     12
-#define PLUG_LINK_LED_IO_FUNC    FUNC_GPIO12
-
-#define PLUG_RELAY_LED_IO_MUX     PERIPHS_IO_MUX_MTDO_U
-#define PLUG_RELAY_LED_IO_NUM     15
-#define PLUG_RELAY_LED_IO_FUNC    FUNC_GPIO15
-
-#define PLUG_STATUS_OUTPUT(pin, on)     GPIO_OUTPUT_SET(pin, on)
-
-struct plug_saved_param {
-    uint8_t status;
-    uint8_t pad[3];
-};
-
-void user_plug_init(void);
-uint8 user_plug_get_status(void);
-void user_plug_set_status(bool status);
-
-
-#endif
-

+ 0 - 32
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_sensor.h

@@ -1,32 +0,0 @@
-#ifndef __USER_SENSOR_H__
-#define __USER_SENSOR_H__
-
-#include "user_config.h"
-#include "driver/key.h"
-
-#define SENSOR_KEY_NUM    1
-
-#define SENSOR_KEY_IO_MUX     PERIPHS_IO_MUX_MTCK_U
-#define SENSOR_KEY_IO_NUM     13
-#define SENSOR_KEY_IO_FUNC    FUNC_GPIO13
-
-#define SENSOR_WIFI_LED_IO_MUX     PERIPHS_IO_MUX_GPIO0_U
-#define SENSOR_WIFI_LED_IO_NUM     0
-#define SENSOR_WIFI_LED_IO_FUNC    FUNC_GPIO0
-
-#define SENSOR_LINK_LED_IO_MUX     PERIPHS_IO_MUX_MTDI_U
-#define SENSOR_LINK_LED_IO_NUM     12
-#define SENSOR_LINK_LED_IO_FUNC    FUNC_GPIO12
-
-#define SENSOR_UNUSED_LED_IO_MUX     PERIPHS_IO_MUX_MTDO_U
-#define SENSOR_UNUSED_LED_IO_NUM     15
-#define SENSOR_UNUSED_LED_IO_FUNC    FUNC_GPIO15
-
-#if HUMITURE_SUB_DEVICE
-bool user_mvh3004_read_th(uint8 *data);
-void user_mvh3004_init(void);
-#endif
-
-void user_sensor_init(uint8 active);
-
-#endif

+ 0 - 45
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/include/user_webserver.h

@@ -1,45 +0,0 @@
-#ifndef __USER_WEBSERVER_H__
-#define __USER_WEBSERVER_H__
-
-#define SERVER_PORT 80
-#define SERVER_SSL_PORT 443
-
-#define URLSize 10
-
-typedef enum Result_Resp {
-    RespFail = 0,
-    RespSuc,
-} Result_Resp;
-
-typedef enum ProtocolType {
-    GET = 0,
-    POST,
-} ProtocolType;
-
-typedef enum _ParmType {
-    SWITCH_STATUS = 0,
-    INFOMATION,
-    WIFI,
-    SCAN,
-	REBOOT,
-    DEEP_SLEEP,
-    LIGHT_STATUS,
-    CONNECT_STATUS,
-    USER_BIN
-} ParmType;
-
-typedef struct URL_Frame {
-    enum ProtocolType Type;
-    char pSelect[URLSize];
-    char pCommand[URLSize];
-    char pFilename[URLSize];
-} URL_Frame;
-
-typedef struct _rst_parm {
-    ParmType parmtype;
-    struct espconn *pespconn;
-} rst_parm;
-
-void user_webserver_init(uint32 port);
-
-#endif

+ 0 - 45
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/Makefile

@@ -1,45 +0,0 @@
-
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of images to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-ifndef PDIR
-GEN_LIBS = libuser.a
-endif
-
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-#DEFINES += 
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-INCLUDES += -I ./
-INCLUDES += -I ../../include/ets
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-

+ 0 - 120
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_devicefind.c

@@ -1,120 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_devicefind.c
- *
- * Description: Find your hardware's information while working any mode.
- *
- * Modification history:
- *     2014/3/12, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "osapi.h"
-#include "mem.h"
-#include "user_interface.h"
-
-#include "espconn.h"
-#include "user_json.h"
-#include "user_devicefind.h"
-
-const char *device_find_request = "Are You Espressif IOT Smart Device?";
-#if PLUG_DEVICE
-const char *device_find_response_ok = "I'm Plug.";
-#elif LIGHT_DEVICE
-const char *device_find_response_ok = "I'm Light.";
-#elif SENSOR_DEVICE
-#if HUMITURE_SUB_DEVICE
-const char *device_find_response_ok = "I'm Humiture.";
-#elif FLAMMABLE_GAS_SUB_DEVICE
-const char *device_find_response_ok = "I'm Flammable Gas.";
-#endif
-#endif
-
-/*---------------------------------------------------------------------------*/
-LOCAL struct espconn ptrespconn;
-
-/******************************************************************************
- * FunctionName : user_devicefind_recv
- * Description  : Processing the received data from the host
- * Parameters   : arg -- Additional argument to pass to the callback function
- *                pusrdata -- The received data (or NULL when the connection has been closed!)
- *                length -- The length of received data
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_devicefind_recv(void *arg, char *pusrdata, unsigned short length)
-{
-    char DeviceBuffer[40] = {0};
-    char Device_mac_buffer[60] = {0};
-    char hwaddr[6];
-    remot_info *premot = NULL;
-    struct ip_info ipconfig;
-
-    if (wifi_get_opmode() != STATION_MODE) {
-        wifi_get_ip_info(SOFTAP_IF, &ipconfig);
-        wifi_get_macaddr(SOFTAP_IF, hwaddr);
-
-        if (!ip_addr_netcmp((struct ip_addr *)ptrespconn.proto.udp->remote_ip, &ipconfig.ip, &ipconfig.netmask)) {
-            wifi_get_ip_info(STATION_IF, &ipconfig);
-            wifi_get_macaddr(STATION_IF, hwaddr);
-        }
-    } else {
-        wifi_get_ip_info(STATION_IF, &ipconfig);
-        wifi_get_macaddr(STATION_IF, hwaddr);
-    }
-
-    if (pusrdata == NULL) {
-        return;
-    }
-
-    if (length == os_strlen(device_find_request) &&
-            os_strncmp(pusrdata, device_find_request, os_strlen(device_find_request)) == 0) {
-        os_sprintf(DeviceBuffer, "%s" MACSTR " " IPSTR, device_find_response_ok,
-                   MAC2STR(hwaddr), IP2STR(&ipconfig.ip));
-
-        os_printf("%s\n", DeviceBuffer);
-        length = os_strlen(DeviceBuffer);
-        if (espconn_get_connection_info(&ptrespconn, &premot, 0) != ESPCONN_OK)
-        	return;
-        os_memcpy(ptrespconn.proto.udp->remote_ip, premot->remote_ip, 4);
-        ptrespconn.proto.udp->remote_port = premot->remote_port;
-        espconn_sent(&ptrespconn, DeviceBuffer, length);
-    } else if (length == (os_strlen(device_find_request) + 18)) {
-        os_sprintf(Device_mac_buffer, "%s " MACSTR , device_find_request, MAC2STR(hwaddr));
-        os_printf("%s", Device_mac_buffer);
-
-        if (os_strncmp(Device_mac_buffer, pusrdata, os_strlen(device_find_request) + 18) == 0) {
-            //os_printf("%s\n", Device_mac_buffer);
-            length = os_strlen(DeviceBuffer);
-            os_sprintf(DeviceBuffer, "%s" MACSTR " " IPSTR, device_find_response_ok,
-                       MAC2STR(hwaddr), IP2STR(&ipconfig.ip));
-
-            os_printf("%s\n", DeviceBuffer);
-            length = os_strlen(DeviceBuffer);
-			if (espconn_get_connection_info(&ptrespconn, &premot, 0) != ESPCONN_OK)
-				return;
-			os_memcpy(ptrespconn.proto.udp->remote_ip, premot->remote_ip, 4);
-			ptrespconn.proto.udp->remote_port = premot->remote_port;
-            espconn_sent(&ptrespconn, DeviceBuffer, length);
-        } else {
-            return;
-        }
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_devicefind_init
- * Description  : the espconn struct parame init
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_devicefind_init(void)
-{
-    ptrespconn.type = ESPCONN_UDP;
-    ptrespconn.proto.udp = (esp_udp *)os_zalloc(sizeof(esp_udp));
-    ptrespconn.proto.udp->local_port = 1025;
-    espconn_regist_recvcb(&ptrespconn, user_devicefind_recv);
-    espconn_create(&ptrespconn);
-}

+ 0 - 1383
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_esp_platform.c

@@ -1,1383 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_esp_platform.c
- *
- * Description: The client mode configration.
- *              Check your hardware connection with the host while use this mode.
- *
- * Modification history:
- *     2014/5/09, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "mem.h"
-#include "osapi.h"
-#include "user_interface.h"
-
-#include "espconn.h"
-#include "user_esp_platform.h"
-#include "user_iot_version.h"
-#include "upgrade.h"
-
-#if ESP_PLATFORM
-
-#define ESP_DEBUG
-
-#ifdef ESP_DEBUG
-#define ESP_DBG os_printf
-#else
-#define ESP_DBG
-#endif
-
-#define ACTIVE_FRAME    "{\"nonce\": %d,\"path\": \"/v1/device/activate/\", \"method\": \"POST\", \"body\": {\"encrypt_method\": \"PLAIN\", \"token\": \"%s\", \"bssid\": \""MACSTR"\",\"rom_version\":\"%s\"}, \"meta\": {\"Authorization\": \"token %s\"}}\n"
-
-#if PLUG_DEVICE
-#include "user_plug.h"
-
-#define RESPONSE_FRAME  "{\"status\": 200, \"datapoint\": {\"x\": %d}, \"nonce\": %d, \"deliver_to_device\": true}\n"
-#define FIRST_FRAME     "{\"nonce\": %d, \"path\": \"/v1/device/identify\", \"method\": \"GET\",\"meta\": {\"Authorization\": \"token %s\"}}\n"
-
-#elif LIGHT_DEVICE
-#include "user_light.h"
-
-#define RESPONSE_FRAME  "{\"status\": 200,\"nonce\": %d, \"datapoint\": {\"x\": %d,\"y\": %d,\"z\": %d,\"k\": %d,\"l\": %d},\"deliver_to_device\":true}\n"
-#define FIRST_FRAME     "{\"nonce\": %d, \"path\": \"/v1/device/identify\", \"method\": \"GET\",\"meta\": {\"Authorization\": \"token %s\"}}\n"
-
-#elif SENSOR_DEVICE
-#include "user_sensor.h"
-
-#if HUMITURE_SUB_DEVICE
-#define UPLOAD_FRAME  "{\"nonce\": %d, \"path\": \"/v1/datastreams/tem_hum/datapoint/\", \"method\": \"POST\", \
-\"body\": {\"datapoint\": {\"x\": %s%d.%02d,\"y\": %d.%02d}}, \"meta\": {\"Authorization\": \"token %s\"}}\n"
-#elif FLAMMABLE_GAS_SUB_DEVICE
-#define UPLOAD_FRAME  "{\"nonce\": %d, \"path\": \"/v1/datastreams/flammable_gas/datapoint/\", \"method\": \"POST\", \
-\"body\": {\"datapoint\": {\"x\": %d.%03d}}, \"meta\": {\"Authorization\": \"token %s\"}}\n"
-#endif
-
-LOCAL uint32 count = 0;
-#endif
-
-#define UPGRADE_FRAME  "{\"path\": \"/v1/messages/\", \"method\": \"POST\", \"meta\": {\"Authorization\": \"token %s\"},\
-\"get\":{\"action\":\"%s\"},\"body\":{\"pre_rom_version\":\"%s\",\"rom_version\":\"%s\"}}\n"
-
-#if PLUG_DEVICE || LIGHT_DEVICE
-#define BEACON_FRAME    "{\"path\": \"/v1/ping/\", \"method\": \"POST\",\"meta\": {\"Authorization\": \"token %s\"}}\n"
-#define RPC_RESPONSE_FRAME  "{\"status\": 200, \"nonce\": %d, \"deliver_to_device\": true}\n"
-#define TIMER_FRAME     "{\"body\": {}, \"get\":{\"is_humanize_format_simple\":\"true\"},\"meta\": {\"Authorization\": \"Token %s\"},\"path\": \"/v1/device/timers/\",\"post\":{},\"method\": \"GET\"}\n"
-#define pheadbuffer "Connection: keep-alive\r\n\
-Cache-Control: no-cache\r\n\
-User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 \r\n\
-Accept: */*\r\n\
-Authorization: token %s\r\n\
-Accept-Encoding: gzip,deflate,sdch\r\n\
-Accept-Language: zh-CN,zh;q=0.8\r\n\r\n"
-
-LOCAL uint8 ping_status;
-LOCAL os_timer_t beacon_timer;
-#endif
-
-#ifdef USE_DNS
-ip_addr_t esp_server_ip;
-#endif
-
-LOCAL struct espconn user_conn;
-LOCAL struct _esp_tcp user_tcp;
-LOCAL os_timer_t client_timer;
- struct esp_platform_saved_param esp_param;
-LOCAL uint8 device_status;
-LOCAL uint8 device_recon_count = 0;
-LOCAL uint32 active_nonce = 0;
-LOCAL uint8 iot_version[20] = {0};
-struct rst_info rtc_info;
-void user_esp_platform_check_ip(uint8 reset_flag);
-
-/******************************************************************************
- * FunctionName : user_esp_platform_get_token
- * Description  : get the espressif's device token
- * Parameters   : token -- the parame point which write the flash
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_get_token(uint8_t *token)
-{
-    if (token == NULL) {
-        return;
-    }
-
-    os_memcpy(token, esp_param.token, sizeof(esp_param.token));
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_set_token
- * Description  : save the token for the espressif's device
- * Parameters   : token -- the parame point which write the flash
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_set_token(uint8_t *token)
-{
-    if (token == NULL) {
-        return;
-    }
-
-    esp_param.activeflag = 0;
-    os_memcpy(esp_param.token, token, os_strlen(token));
-
-    system_param_save_with_protect(ESP_PARAM_START_SEC, &esp_param, sizeof(esp_param));
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_set_active
- * Description  : set active flag
- * Parameters   : activeflag -- 0 or 1
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_set_active(uint8 activeflag)
-{
-    esp_param.activeflag = activeflag;
-
-    system_param_save_with_protect(ESP_PARAM_START_SEC, &esp_param, sizeof(esp_param));
-}
-
-void ICACHE_FLASH_ATTR
-user_esp_platform_set_connect_status(uint8 status)
-{
-    device_status = status;
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_get_connect_status
- * Description  : get each connection step's status
- * Parameters   : none
- * Returns      : status
-*******************************************************************************/
-uint8 ICACHE_FLASH_ATTR
-user_esp_platform_get_connect_status(void)
-{
-    uint8 status = wifi_station_get_connect_status();
-
-    if (status == STATION_GOT_IP) {
-        status = (device_status == 0) ? DEVICE_CONNECTING : device_status;
-    }
-
-    ESP_DBG("status %d\n", status);
-    return status;
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_parse_nonce
- * Description  : parse the device nonce
- * Parameters   : pbuffer -- the recivce data point
- * Returns      : the nonce
-*******************************************************************************/
-int ICACHE_FLASH_ATTR
-user_esp_platform_parse_nonce(char *pbuffer)
-{
-    char *pstr = NULL;
-    char *pparse = NULL;
-    char noncestr[11] = {0};
-    int nonce = 0;
-    pstr = (char *)os_strstr(pbuffer, "\"nonce\": ");
-
-    if (pstr != NULL) {
-        pstr += 9;
-        pparse = (char *)os_strstr(pstr, ",");
-
-        if (pparse != NULL) {
-            os_memcpy(noncestr, pstr, pparse - pstr);
-        } else {
-            pparse = (char *)os_strstr(pstr, "}");
-
-            if (pparse != NULL) {
-                os_memcpy(noncestr, pstr, pparse - pstr);
-            } else {
-                pparse = (char *)os_strstr(pstr, "]");
-
-                if (pparse != NULL) {
-                    os_memcpy(noncestr, pstr, pparse - pstr);
-                } else {
-                    return 0;
-                }
-            }
-        }
-
-        nonce = atoi(noncestr);
-    }
-
-    return nonce;
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_get_info
- * Description  : get and update the espressif's device status
- * Parameters   : pespconn -- the espconn used to connect with host
- *                pbuffer -- prossing the data point
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_get_info(struct espconn *pconn, uint8 *pbuffer)
-{
-    char *pbuf = NULL;
-    int nonce = 0;
-
-    pbuf = (char *)os_zalloc(packet_size);
-
-    nonce = user_esp_platform_parse_nonce(pbuffer);
-
-    if (pbuf != NULL) {
-#if PLUG_DEVICE
-        os_sprintf(pbuf, RESPONSE_FRAME, user_plug_get_status(), nonce);
-#elif LIGHT_DEVICE
-        uint32 white_val;
-        white_val = (PWM_CHANNEL>LIGHT_COLD_WHITE?user_light_get_duty(LIGHT_COLD_WHITE):0);
-        os_sprintf(pbuf, RESPONSE_FRAME, nonce, user_light_get_period(),
-                   user_light_get_duty(LIGHT_RED), user_light_get_duty(LIGHT_GREEN),
-                   user_light_get_duty(LIGHT_BLUE),white_val );//50);
-#endif
-
-        ESP_DBG("%s\n", pbuf);
-#ifdef CLIENT_SSL_ENABLE
-        espconn_secure_sent(pconn, pbuf, os_strlen(pbuf));
-#else
-        espconn_sent(pconn, pbuf, os_strlen(pbuf));
-#endif
-        os_free(pbuf);
-        pbuf = NULL;
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_set_info
- * Description  : prossing the data and controling the espressif's device
- * Parameters   : pespconn -- the espconn used to connect with host
- *                pbuffer -- prossing the data point
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_set_info(struct espconn *pconn, uint8 *pbuffer)
-{
-#if PLUG_DEVICE
-    char *pstr = NULL;
-    pstr = (char *)os_strstr(pbuffer, "plug-status");
-
-    if (pstr != NULL) {
-        pstr = (char *)os_strstr(pbuffer, "body");
-
-        if (pstr != NULL) {
-
-            if (os_strncmp(pstr + 27, "1", 1) == 0) {
-                user_plug_set_status(0x01);
-            } else if (os_strncmp(pstr + 27, "0", 1) == 0) {
-                user_plug_set_status(0x00);
-            }
-        }
-    }
-
-#elif LIGHT_DEVICE
-    char *pstr = NULL;
-    char *pdata = NULL;
-    char *pbuf = NULL;
-    char recvbuf[10];
-    uint16 length = 0;
-    uint32 data = 0;
-    static uint32 rr,gg,bb,cw,ww,period;
-    ww=0;
-    cw=0;
-    extern uint8 light_sleep_flg;
-    pstr = (char *)os_strstr(pbuffer, "\"path\": \"/v1/datastreams/light/datapoint/\"");
-
-    if (pstr != NULL) {
-        pstr = (char *)os_strstr(pbuffer, "{\"datapoint\": ");
-
-        if (pstr != NULL) {
-            pbuf = (char *)os_strstr(pbuffer, "}}");
-            length = pbuf - pstr;
-            length += 2;
-            pdata = (char *)os_zalloc(length + 1);
-            os_memcpy(pdata, pstr, length);
-
-            pstr = (char *)os_strchr(pdata, 'x');
-
-            if (pstr != NULL) {
-                pstr += 4;
-                pbuf = (char *)os_strchr(pstr, ',');
-
-                if (pbuf != NULL) {
-                    length = pbuf - pstr;
-                    os_memset(recvbuf, 0, 10);
-                    os_memcpy(recvbuf, pstr, length);
-                    data = atoi(recvbuf);
-                    period = data;
-                    //user_light_set_period(data);
-                }
-            }
-
-            pstr = (char *)os_strchr(pdata, 'y');
-
-            if (pstr != NULL) {
-                pstr += 4;
-                pbuf = (char *)os_strchr(pstr, ',');
-
-                if (pbuf != NULL) {
-                    length = pbuf - pstr;
-                    os_memset(recvbuf, 0, 10);
-                    os_memcpy(recvbuf, pstr, length);
-                    data = atoi(recvbuf);
-                    rr=data;
-                    os_printf("r: %d\r\n",rr);
-                    //user_light_set_duty(data, 0);
-                }
-            }
-
-            pstr = (char *)os_strchr(pdata, 'z');
-
-            if (pstr != NULL) {
-                pstr += 4;
-                pbuf = (char *)os_strchr(pstr, ',');
-
-                if (pbuf != NULL) {
-                    length = pbuf - pstr;
-                    os_memset(recvbuf, 0, 10);
-                    os_memcpy(recvbuf, pstr, length);
-                    data = atoi(recvbuf);
-                    gg=data;
-                    os_printf("g: %d\r\n",gg);
-                    //user_light_set_duty(data, 1);
-                }
-            }
-
-            pstr = (char *)os_strchr(pdata, 'k');
-
-            if (pstr != NULL) {
-                pstr += 4;;
-                pbuf = (char *)os_strchr(pstr, ',');
-
-                if (pbuf != NULL) {
-                    length = pbuf - pstr;
-                    os_memset(recvbuf, 0, 10);
-                    os_memcpy(recvbuf, pstr, length);
-                    data = atoi(recvbuf);
-                    bb=data;
-                    os_printf("b: %d\r\n",bb);
-                    //user_light_set_duty(data, 2);
-                }
-            }
-
-            pstr = (char *)os_strchr(pdata, 'l');
-
-            if (pstr != NULL) {
-                pstr += 4;;
-                pbuf = (char *)os_strchr(pstr, ',');
-
-                if (pbuf != NULL) {
-                    length = pbuf - pstr;
-                    os_memset(recvbuf, 0, 10);
-                    os_memcpy(recvbuf, pstr, length);
-                    data = atoi(recvbuf);
-                    cw=data;
-		      ww=data;
-                    os_printf("cw: %d\r\n",cw);
-		      os_printf("ww:%d\r\n",ww);   //chg
-                    //user_light_set_duty(data, 2);
-                }
-            }
-
-            os_free(pdata);
-        }
-    }
-    
-    if((rr|gg|bb|cw|ww) == 0){
-        if(light_sleep_flg==0){
-
-        }
-        
-    }else{
-        if(light_sleep_flg==1){
-            os_printf("modem sleep en\r\n");
-            wifi_set_sleep_type(MODEM_SLEEP_T);
-            light_sleep_flg =0;
-        }
-    }
-
-    light_set_aim(rr,gg,bb,cw,ww,period);
-    //user_light_restart();
-
-#endif
-
-    user_esp_platform_get_info(pconn, pbuffer);
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_reconnect
- * Description  : reconnect with host after get ip
- * Parameters   : pespconn -- the espconn used to reconnect with host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_reconnect(struct espconn *pespconn)
-{
-    ESP_DBG("user_esp_platform_reconnect\n");
-
-    user_esp_platform_check_ip(0);
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_discon_cb
- * Description  : disconnect successfully with the host
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_discon_cb(void *arg)
-{
-    struct espconn *pespconn = arg;
-    struct ip_info ipconfig;
-	struct dhcp_client_info dhcp_info;
-    ESP_DBG("user_esp_platform_discon_cb\n");
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-    os_timer_disarm(&beacon_timer);
-#endif
-
-    if (pespconn == NULL) {
-        return;
-    }
-
-    pespconn->proto.tcp->local_port = espconn_port();
-
-#if (PLUG_DEVICE || SENSOR_DEVICE)
-    user_link_led_output(1);
-#endif
-
-#if SENSOR_DEVICE
-#ifdef SENSOR_DEEP_SLEEP
-
-    if (wifi_get_opmode() == STATION_MODE) {
-    	/***add by tzx for saving ip_info to avoid dhcp_client start****/
-    	wifi_get_ip_info(STATION_IF, &ipconfig);
-
-    	dhcp_info.ip_addr = ipconfig.ip;
-    	dhcp_info.netmask = ipconfig.netmask;
-    	dhcp_info.gw = ipconfig.gw ;
-    	dhcp_info.flag = 0x01;
-    	os_printf("dhcp_info.ip_addr = %d\n",dhcp_info.ip_addr);
-    	system_rtc_mem_write(64,&dhcp_info,sizeof(struct dhcp_client_info));
-        user_sensor_deep_sleep_enter();
-    } else {
-        os_timer_disarm(&client_timer);
-        os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_reconnect, pespconn);
-        os_timer_arm(&client_timer, SENSOR_DEEP_SLEEP_TIME / 1000, 0);
-    }
-
-#else
-    os_timer_disarm(&client_timer);
-    os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_reconnect, pespconn);
-    os_timer_arm(&client_timer, 1000, 0);
-#endif
-#else
-    user_esp_platform_reconnect(pespconn);
-#endif
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_discon
- * Description  : A new incoming connection has been disconnected.
- * Parameters   : espconn -- the espconn used to disconnect with host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_discon(struct espconn *pespconn)
-{
-    ESP_DBG("user_esp_platform_discon\n");
-
-#if (PLUG_DEVICE || SENSOR_DEVICE)
-    user_link_led_output(1);
-#endif
-
-#ifdef CLIENT_SSL_ENABLE
-    espconn_secure_disconnect(pespconn);
-#else
-    espconn_disconnect(pespconn);
-#endif
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_sent_cb
- * Description  : Data has been sent successfully and acknowledged by the remote host.
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_sent_cb(void *arg)
-{
-    struct espconn *pespconn = arg;
-
-    ESP_DBG("user_esp_platform_sent_cb\n");
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_sent
- * Description  : Processing the application data and sending it to the host
- * Parameters   : pespconn -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_sent(struct espconn *pespconn)
-{
-    uint8 devkey[token_size] = {0};
-    uint32 nonce;
-    char *pbuf = (char *)os_zalloc(packet_size);
-
-    os_memcpy(devkey, esp_param.devkey, 40);
-
-    if (esp_param.activeflag == 0xFF) {
-        esp_param.activeflag = 0;
-    }
-
-    if (pbuf != NULL) {
-        if (esp_param.activeflag == 0) {
-            uint8 token[token_size] = {0};
-            uint8 bssid[6];
-            active_nonce = os_random() & 0x7FFFFFFF;
-
-            os_memcpy(token, esp_param.token, 40);
-
-            wifi_get_macaddr(STATION_IF, bssid);
-
-            os_sprintf(pbuf, ACTIVE_FRAME, active_nonce, token, MAC2STR(bssid),iot_version, devkey);
-        }
-
-#if SENSOR_DEVICE
-#if HUMITURE_SUB_DEVICE
-        else {
-#if 0
-            uint16 tp, rh;
-            uint8 data[4];
-
-            if (user_mvh3004_read_th(data)) {
-                rh = data[0] << 8 | data[1];
-                tp = data[2] << 8 | data[3];
-            }
-
-#else
-            uint16 tp, rh;
-            uint8 *data;
-            uint32 tp_t, rh_t;
-            data = (uint8 *)user_mvh3004_get_poweron_th();
-
-            rh = data[0] << 8 | data[1];
-            tp = data[2] << 8 | data[3];
-#endif
-            tp_t = (tp >> 2) * 165 * 100 / (16384 - 1);
-            rh_t = (rh & 0x3fff) * 100 * 100 / (16384 - 1);
-
-            if (tp_t >= 4000) {
-                os_sprintf(pbuf, UPLOAD_FRAME, count, "", tp_t / 100 - 40, tp_t % 100, rh_t / 100, rh_t % 100, devkey);
-            } else {
-                tp_t = 4000 - tp_t;
-                os_sprintf(pbuf, UPLOAD_FRAME, count, "-", tp_t / 100, tp_t % 100, rh_t / 100, rh_t % 100, devkey);
-            }
-        }
-
-#elif FLAMMABLE_GAS_SUB_DEVICE
-        else {
-            uint32 adc_value = system_adc_read();
-
-            os_sprintf(pbuf, UPLOAD_FRAME, count, adc_value / 1024, adc_value * 1000 / 1024, devkey);
-        }
-
-#endif
-#else
-        else {
-            nonce = os_random() & 0x7FFFFFFF;
-            os_sprintf(pbuf, FIRST_FRAME, nonce , devkey);
-        }
-
-#endif
-        ESP_DBG("%s\n", pbuf);
-
-#ifdef CLIENT_SSL_ENABLE
-        espconn_secure_sent(pespconn, pbuf, os_strlen(pbuf));
-#else
-        espconn_sent(pespconn, pbuf, os_strlen(pbuf));
-#endif
-
-        os_free(pbuf);
-    }
-}
-
-#if PLUG_DEVICE || LIGHT_DEVICE
-/******************************************************************************
- * FunctionName : user_esp_platform_sent_beacon
- * Description  : sent beacon frame for connection with the host is activate
- * Parameters   : pespconn -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_sent_beacon(struct espconn *pespconn)
-{
-    if (pespconn == NULL) {
-        return;
-    }
-
-    if (pespconn->state == ESPCONN_CONNECT) {
-        if (esp_param.activeflag == 0) {
-            ESP_DBG("please check device is activated.\n");
-            user_esp_platform_sent(pespconn);
-        } else {
-            uint8 devkey[token_size] = {0};
-            os_memcpy(devkey, esp_param.devkey, 40);
-
-            ESP_DBG("user_esp_platform_sent_beacon %u\n", system_get_time());
-
-            if (ping_status == 0) {
-                ESP_DBG("user_esp_platform_sent_beacon sent fail!\n");
-                user_esp_platform_discon(pespconn);
-            } else {
-                char *pbuf = (char *)os_zalloc(packet_size);
-
-                if (pbuf != NULL) {
-                    os_sprintf(pbuf, BEACON_FRAME, devkey);
-
-#ifdef CLIENT_SSL_ENABLE
-                    espconn_secure_sent(pespconn, pbuf, os_strlen(pbuf));
-#else
-                    espconn_sent(pespconn, pbuf, os_strlen(pbuf));
-#endif
-
-                    ping_status = 0;
-                    os_timer_arm(&beacon_timer, BEACON_TIME, 0);
-                    os_free(pbuf);
-                }
-            }
-        }
-    } else {
-        ESP_DBG("user_esp_platform_sent_beacon sent fail!\n");
-        user_esp_platform_discon(pespconn);
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_platform_rpc_set_rsp
- * Description  : response the message to server to show setting info is received
- * Parameters   : pespconn -- the espconn used to connetion with the host
- *                nonce -- mark the message received from server
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_platform_rpc_set_rsp(struct espconn *pespconn, int nonce)
-{
-    char *pbuf = (char *)os_zalloc(packet_size);
-
-    if (pespconn == NULL) {
-        return;
-    }
-
-    os_sprintf(pbuf, RPC_RESPONSE_FRAME, nonce);
-    ESP_DBG("%s\n", pbuf);
-#ifdef CLIENT_SSL_ENABLE
-    espconn_secure_sent(pespconn, pbuf, os_strlen(pbuf));
-#else
-    espconn_sent(pespconn, pbuf, os_strlen(pbuf));
-#endif
-    os_free(pbuf);
-}
-
-/******************************************************************************
- * FunctionName : user_platform_timer_get
- * Description  : get the timers from server
- * Parameters   : pespconn -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_platform_timer_get(struct espconn *pespconn)
-{
-    uint8 devkey[token_size] = {0};
-    char *pbuf = (char *)os_zalloc(packet_size);
-    os_memcpy(devkey, esp_param.devkey, 40);
-
-    if (pespconn == NULL) {
-        return;
-    }
-
-    os_sprintf(pbuf, TIMER_FRAME, devkey);
-    ESP_DBG("%s\n", pbuf);
-#ifdef CLIENT_SSL_ENABLE
-    espconn_secure_sent(pespconn, pbuf, os_strlen(pbuf));
-#else
-    espconn_sent(pespconn, pbuf, os_strlen(pbuf));
-#endif
-    os_free(pbuf);
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_upgrade_cb
- * Description  : Processing the downloaded data from the server
- * Parameters   : pespconn -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_upgrade_rsp(void *arg)
-{
-    struct upgrade_server_info *server = arg;
-    struct espconn *pespconn = server->pespconn;
-    uint8 devkey[41] = {0};
-    uint8 *pbuf = NULL;
-    char *action = NULL;
-
-    os_memcpy(devkey, esp_param.devkey, 40);
-    pbuf = (char *)os_zalloc(packet_size);
-
-    if (server->upgrade_flag == true) {
-        ESP_DBG("user_esp_platform_upgarde_successfully\n");
-        action = "device_upgrade_success";
-        os_sprintf(pbuf, UPGRADE_FRAME, devkey, action, server->pre_version, server->upgrade_version);
-        ESP_DBG("%s\n",pbuf);
-
-#ifdef CLIENT_SSL_ENABLE
-        espconn_secure_sent(pespconn, pbuf, os_strlen(pbuf));
-#else
-        espconn_sent(pespconn, pbuf, os_strlen(pbuf));
-#endif
-
-        if (pbuf != NULL) {
-            os_free(pbuf);
-            pbuf = NULL;
-        }
-    } else {
-        ESP_DBG("user_esp_platform_upgrade_failed\n");
-        action = "device_upgrade_failed";
-        os_sprintf(pbuf, UPGRADE_FRAME, devkey, action,server->pre_version, server->upgrade_version);
-        ESP_DBG("%s\n",pbuf);
-
-#ifdef CLIENT_SSL_ENABLE
-        espconn_secure_sent(pespconn, pbuf, os_strlen(pbuf));
-#else
-        espconn_sent(pespconn, pbuf, os_strlen(pbuf));
-#endif
-
-        if (pbuf != NULL) {
-            os_free(pbuf);
-            pbuf = NULL;
-        }
-    }
-
-    os_free(server->url);
-    server->url = NULL;
-    os_free(server);
-    server = NULL;
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_upgrade_begin
- * Description  : Processing the received data from the server
- * Parameters   : pespconn -- the espconn used to connetion with the host
- *                server -- upgrade param
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_upgrade_begin(struct espconn *pespconn, struct upgrade_server_info *server)
-{
-    uint8 user_bin[9] = {0};
-    uint8 devkey[41] = {0};
-
-    server->pespconn = pespconn;
-
-    os_memcpy(devkey, esp_param.devkey, 40);
-    os_memcpy(server->ip, pespconn->proto.tcp->remote_ip, 4);
-
-#ifdef UPGRADE_SSL_ENABLE
-    server->port = 443;
-#else
-    server->port = 80;
-#endif
-
-    server->check_cb = user_esp_platform_upgrade_rsp;
-    server->check_times = 120000;
-
-    if (server->url == NULL) {
-        server->url = (uint8 *)os_zalloc(512);
-    }
-
-    if (system_upgrade_userbin_check() == UPGRADE_FW_BIN1) {
-        os_memcpy(user_bin, "user2.bin", 10);
-    } else if (system_upgrade_userbin_check() == UPGRADE_FW_BIN2) {
-        os_memcpy(user_bin, "user1.bin", 10);
-    }
-
-    os_sprintf(server->url, "GET /v1/device/rom/?action=download_rom&version=%s&filename=%s HTTP/1.0\r\nHost: "IPSTR":%d\r\n"pheadbuffer"",
-               server->upgrade_version, user_bin, IP2STR(server->ip),
-               server->port, devkey);
-    ESP_DBG("%s\n",server->url);
-
-#ifdef UPGRADE_SSL_ENABLE
-
-    if (system_upgrade_start_ssl(server) == false) {
-#else
-
-    if (system_upgrade_start(server) == false) {
-#endif
-        ESP_DBG("upgrade is already started\n");
-    }
-}
-#endif
-
-/******************************************************************************
- * FunctionName : user_esp_platform_recv_cb
- * Description  : Processing the received data from the server
- * Parameters   : arg -- Additional argument to pass to the callback function
- *                pusrdata -- The received data (or NULL when the connection has been closed!)
- *                length -- The length of received data
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_recv_cb(void *arg, char *pusrdata, unsigned short length)
-{
-    char *pstr = NULL;
-    LOCAL char pbuffer[1024 * 2] = {0};
-    struct espconn *pespconn = arg;
-
-    ESP_DBG("user_esp_platform_recv_cb %s\n", pusrdata);
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-    os_timer_disarm(&beacon_timer);
-#endif
-
-    if (length == 1460) {
-        os_memcpy(pbuffer, pusrdata, length);
-    } else {
-        struct espconn *pespconn = (struct espconn *)arg;
-
-        os_memcpy(pbuffer + os_strlen(pbuffer), pusrdata, length);
-
-        if ((pstr = (char *)os_strstr(pbuffer, "\"activate_status\": ")) != NULL &&
-                user_esp_platform_parse_nonce(pbuffer) == active_nonce) {
-            if (os_strncmp(pstr + 19, "1", 1) == 0) {
-                ESP_DBG("device activates successful.\n");
-
-                device_status = DEVICE_ACTIVE_DONE;
-                esp_param.activeflag = 1;
-                system_param_save_with_protect(ESP_PARAM_START_SEC, &esp_param, sizeof(esp_param));
-                user_esp_platform_sent(pespconn);
-		  if(LIGHT_DEVICE){
-                    system_restart();
-                }
-            } else {
-                ESP_DBG("device activates failed.\n");
-                device_status = DEVICE_ACTIVE_FAIL;
-            }
-        }
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-        else if ((pstr = (char *)os_strstr(pbuffer, "\"action\": \"sys_upgrade\"")) != NULL) {
-            if ((pstr = (char *)os_strstr(pbuffer, "\"version\":")) != NULL) {
-                struct upgrade_server_info *server = NULL;
-                int nonce = user_esp_platform_parse_nonce(pbuffer);
-                user_platform_rpc_set_rsp(pespconn, nonce);
-
-                server = (struct upgrade_server_info *)os_zalloc(sizeof(struct upgrade_server_info));
-                os_memcpy(server->upgrade_version, pstr + 12, 16);
-                server->upgrade_version[15] = '\0';
-                os_sprintf(server->pre_version,"%s%d.%d.%dt%d(%s)",VERSION_TYPE,IOT_VERSION_MAJOR,\
-                    	IOT_VERSION_MINOR,IOT_VERSION_REVISION,device_type,UPGRADE_FALG);
-                user_esp_platform_upgrade_begin(pespconn, server);
-            }
-        } else if ((pstr = (char *)os_strstr(pbuffer, "\"action\": \"sys_reboot\"")) != NULL) {
-            os_timer_disarm(&client_timer);
-            os_timer_setfn(&client_timer, (os_timer_func_t *)system_upgrade_reboot, NULL);
-            os_timer_arm(&client_timer, 1000, 0);
-        } else if ((pstr = (char *)os_strstr(pbuffer, "/v1/device/timers/")) != NULL) {
-            int nonce = user_esp_platform_parse_nonce(pbuffer);
-            user_platform_rpc_set_rsp(pespconn, nonce);
-            os_timer_disarm(&client_timer);
-            os_timer_setfn(&client_timer, (os_timer_func_t *)user_platform_timer_get, pespconn);
-            os_timer_arm(&client_timer, 2000, 0);
-        } else if ((pstr = (char *)os_strstr(pbuffer, "\"method\": ")) != NULL) {
-            if (os_strncmp(pstr + 11, "GET", 3) == 0) {
-                user_esp_platform_get_info(pespconn, pbuffer);
-            } else if (os_strncmp(pstr + 11, "POST", 4) == 0) {
-                user_esp_platform_set_info(pespconn, pbuffer);
-            }
-        } else if ((pstr = (char *)os_strstr(pbuffer, "ping success")) != NULL) {
-            ESP_DBG("ping success\n");
-            ping_status = 1;
-        } else if ((pstr = (char *)os_strstr(pbuffer, "send message success")) != NULL) {
-        } else if ((pstr = (char *)os_strstr(pbuffer, "timers")) != NULL) {
-            user_platform_timer_start(pusrdata , pespconn);
-        }
-
-#elif SENSOR_DEVICE
-        else if ((pstr = (char *)os_strstr(pbuffer, "\"status\":")) != NULL) {
-            if (os_strncmp(pstr + 10, "200", 3) != 0) {
-                ESP_DBG("message upload failed.\n");
-            } else {
-                count++;
-                ESP_DBG("message upload sucessful.\n");
-            }
-
-            os_timer_disarm(&client_timer);
-            os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_discon, pespconn);
-            os_timer_arm(&client_timer, 10, 0);
-        }
-
-#endif
-        else if ((pstr = (char *)os_strstr(pbuffer, "device")) != NULL) {
-#if PLUG_DEVICE || LIGHT_DEVICE
-            user_platform_timer_get(pespconn);
-#elif SENSOR_DEVICE
-
-#endif
-        }
-
-        os_memset(pbuffer, 0, sizeof(pbuffer));
-    }
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-    os_timer_arm(&beacon_timer, BEACON_TIME, 0);
-#endif
-}
-
-#if AP_CACHE
-/******************************************************************************
- * FunctionName : user_esp_platform_ap_change
- * Description  : add the user interface for changing to next ap ID.
- * Parameters   :
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_ap_change(void)
-{
-    uint8 current_id;
-    uint8 i = 0;
-    ESP_DBG("user_esp_platform_ap_is_changing\n");
-
-    current_id = wifi_station_get_current_ap_id();
-    ESP_DBG("current ap id =%d\n", current_id);
-
-    if (current_id == AP_CACHE_NUMBER - 1) {
-       i = 0;
-    } else {
-       i = current_id + 1;
-    }
-    while (wifi_station_ap_change(i) != true) {
-       i++;
-       if (i == AP_CACHE_NUMBER - 1) {
-    	   i = 0;
-       }
-    }
-
-    /* just need to re-check ip while change AP */
-    device_recon_count = 0;
-    os_timer_disarm(&client_timer);
-    os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_check_ip, NULL);
-    os_timer_arm(&client_timer, 100, 0);
-}
-#endif
-
-LOCAL bool ICACHE_FLASH_ATTR
-user_esp_platform_reset_mode(void)
-{
-    if (wifi_get_opmode() == STATION_MODE) {
-        wifi_set_opmode(STATIONAP_MODE);
-    }
-
-#if AP_CACHE
-    /* delay 5s to change AP */
-    os_timer_disarm(&client_timer);
-    os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_ap_change, NULL);
-    os_timer_arm(&client_timer, 5000, 0);
-
-    return true;
-#endif
-
-    return false;
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_recon_cb
- * Description  : The connection had an error and is already deallocated.
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_recon_cb(void *arg, sint8 err)
-{
-    struct espconn *pespconn = (struct espconn *)arg;
-
-    ESP_DBG("user_esp_platform_recon_cb\n");
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-    os_timer_disarm(&beacon_timer);
-#endif
-
-#if (PLUG_DEVICE || SENSOR_DEVICE)
-    user_link_led_output(1);
-#endif
-
-    if (++device_recon_count == 5) {
-        device_status = DEVICE_CONNECT_SERVER_FAIL;
-
-        if (user_esp_platform_reset_mode()) {
-            return;
-        }
-    }
-
-#if SENSOR_DEVICE
-#ifdef SENSOR_DEEP_SLEEP
-
-    if (wifi_get_opmode() == STATION_MODE) {
-        user_esp_platform_reset_mode();
-
-        //user_sensor_deep_sleep_enter();
-    } else {
-        os_timer_disarm(&client_timer);
-        os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_reconnect, pespconn);
-        os_timer_arm(&client_timer, 1000, 0);
-    }
-
-#else
-    os_timer_disarm(&client_timer);
-    os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_reconnect, pespconn);
-    os_timer_arm(&client_timer, 1000, 0);
-#endif
-#else
-    os_timer_disarm(&client_timer);
-    os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_reconnect, pespconn);
-    os_timer_arm(&client_timer, 1000, 0);
-#endif
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_connect_cb
- * Description  : A new incoming connection has been connected.
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_connect_cb(void *arg)
-{
-    struct espconn *pespconn = arg;
-
-    ESP_DBG("user_esp_platform_connect_cb\n");
-    if (wifi_get_opmode() ==  STATIONAP_MODE ) {
-        wifi_set_opmode(STATION_MODE);
-    }
-
-#if (PLUG_DEVICE || SENSOR_DEVICE)
-    user_link_led_timer_done();
-#endif
-    device_recon_count = 0;
-    espconn_regist_recvcb(pespconn, user_esp_platform_recv_cb);
-    espconn_regist_sentcb(pespconn, user_esp_platform_sent_cb);
-    user_esp_platform_sent(pespconn);
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_connect
- * Description  : The function given as the connect with the host
- * Parameters   : espconn -- the espconn used to connect the connection
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_connect(struct espconn *pespconn)
-{
-    ESP_DBG("user_esp_platform_connect\n");
-
-#ifdef CLIENT_SSL_ENABLE
-    espconn_secure_connect(pespconn);
-#else
-    espconn_connect(pespconn);
-#endif
-}
-
-#ifdef USE_DNS
-/******************************************************************************
- * FunctionName : user_esp_platform_dns_found
- * Description  : dns found callback
- * Parameters   : name -- pointer to the name that was looked up.
- *                ipaddr -- pointer to an ip_addr_t containing the IP address of
- *                the hostname, or NULL if the name could not be found (or on any
- *                other error).
- *                callback_arg -- a user-specified callback argument passed to
- *                dns_gethostbyname
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_dns_found(const char *name, ip_addr_t *ipaddr, void *arg)
-{
-    struct espconn *pespconn = (struct espconn *)arg;
-
-    if (ipaddr == NULL) {
-        ESP_DBG("user_esp_platform_dns_found NULL\n");
-
-        if (++device_recon_count == 5) {
-            device_status = DEVICE_CONNECT_SERVER_FAIL;
-
-            user_esp_platform_reset_mode();
-        }
-
-        return;
-    }
-
-    ESP_DBG("user_esp_platform_dns_found %d.%d.%d.%d\n",
-            *((uint8 *)&ipaddr->addr), *((uint8 *)&ipaddr->addr + 1),
-            *((uint8 *)&ipaddr->addr + 2), *((uint8 *)&ipaddr->addr + 3));
-
-    if (esp_server_ip.addr == 0 && ipaddr->addr != 0) {
-        os_timer_disarm(&client_timer);
-        esp_server_ip.addr = ipaddr->addr;
-        os_memcpy(pespconn->proto.tcp->remote_ip, &ipaddr->addr, 4);
-
-        pespconn->proto.tcp->local_port = espconn_port();
-
-#ifdef CLIENT_SSL_ENABLE
-        pespconn->proto.tcp->remote_port = 8443;
-#else
-        pespconn->proto.tcp->remote_port = 8000;
-#endif
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-        ping_status = 1;
-#endif
-
-        espconn_regist_connectcb(pespconn, user_esp_platform_connect_cb);
-        espconn_regist_disconcb(pespconn, user_esp_platform_discon_cb);
-        espconn_regist_reconcb(pespconn, user_esp_platform_recon_cb);
-        user_esp_platform_connect(pespconn);
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_dns_check_cb
- * Description  : 1s time callback to check dns found
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_dns_check_cb(void *arg)
-{
-    struct espconn *pespconn = arg;
-
-    ESP_DBG("user_esp_platform_dns_check_cb\n");
-
-    espconn_gethostbyname(pespconn, ESP_DOMAIN, &esp_server_ip, user_esp_platform_dns_found);
-
-    os_timer_arm(&client_timer, 1000, 0);
-}
-
-LOCAL void ICACHE_FLASH_ATTR
-user_esp_platform_start_dns(struct espconn *pespconn)
-{
-    esp_server_ip.addr = 0;
-    espconn_gethostbyname(pespconn, ESP_DOMAIN, &esp_server_ip, user_esp_platform_dns_found);
-
-    os_timer_disarm(&client_timer);
-    os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_dns_check_cb, pespconn);
-    os_timer_arm(&client_timer, 1000, 0);
-}
-#endif
-
-
-#if LIGHT_DEVICE
-void user_mdns_conf()
-{
-
-struct ip_info ipconfig;
-wifi_get_ip_info(STATION_IF, &ipconfig);
-
-struct mdns_info *info = (struct mdns_info *)os_zalloc(sizeof(struct mdns_info));
-info->host_name = "espressif_light_demo";
-info->ipAddr= ipconfig.ip.addr; //sation ip
-info->server_name = "espLight";
-info->server_port = 80;
-info->txt_data[0] = "version = 1.0.1";
-espconn_mdns_init(info);
-
-
-}
-#endif
-
-/******************************************************************************
- * FunctionName : user_esp_platform_check_ip
- * Description  : espconn struct parame init when get ip addr
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_check_ip(uint8 reset_flag)
-{
-    struct ip_info ipconfig;
-
-    os_timer_disarm(&client_timer);
-
-    wifi_get_ip_info(STATION_IF, &ipconfig);
-
-    if (wifi_station_get_connect_status() == STATION_GOT_IP && ipconfig.ip.addr != 0) {
-#if (PLUG_DEVICE || SENSOR_DEVICE)
-        user_link_led_timer_init();
-#endif
-
-//***************************
-#if LIGHT_DEVICE
-	user_mdns_conf();
-#endif
-//***************************
-        user_conn.proto.tcp = &user_tcp;
-        user_conn.type = ESPCONN_TCP;
-        user_conn.state = ESPCONN_NONE;
-
-        device_status = DEVICE_CONNECTING;
-
-        if (reset_flag) {
-            device_recon_count = 0;
-        }
-
-#if (PLUG_DEVICE || LIGHT_DEVICE)
-        os_timer_disarm(&beacon_timer);
-        os_timer_setfn(&beacon_timer, (os_timer_func_t *)user_esp_platform_sent_beacon, &user_conn);
-#endif
-
-#ifdef USE_DNS
-        user_esp_platform_start_dns(&user_conn);
-#else
-        const char esp_server_ip[4] = {114, 215, 177, 97};
-
-        os_memcpy(user_conn.proto.tcp->remote_ip, esp_server_ip, 4);
-        user_conn.proto.tcp->local_port = espconn_port();
-
-#ifdef CLIENT_SSL_ENABLE
-        user_conn.proto.tcp->remote_port = 8443;
-#else
-        user_conn.proto.tcp->remote_port = 8000;
-#endif
-
-        espconn_regist_connectcb(&user_conn, user_esp_platform_connect_cb);
-        espconn_regist_reconcb(&user_conn, user_esp_platform_recon_cb);
-        user_esp_platform_connect(&user_conn);
-#endif
-    } else {
-        /* if there are wrong while connecting to some AP, then reset mode */
-        if ((wifi_station_get_connect_status() == STATION_WRONG_PASSWORD ||
-                wifi_station_get_connect_status() == STATION_NO_AP_FOUND ||
-                wifi_station_get_connect_status() == STATION_CONNECT_FAIL)) {
-            user_esp_platform_reset_mode();
-        } else {
-            os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_check_ip, NULL);
-            os_timer_arm(&client_timer, 100, 0);
-        }
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_init
- * Description  : device parame init based on espressif platform
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_init(void)
-{
-
-	os_sprintf(iot_version,"%s%d.%d.%dt%d(%s)",VERSION_TYPE,IOT_VERSION_MAJOR,\
-	IOT_VERSION_MINOR,IOT_VERSION_REVISION,device_type,UPGRADE_FALG);
-	os_printf("IOT VERSION = %s\n",iot_version);
-
-	system_param_load(ESP_PARAM_START_SEC, 0, &esp_param, sizeof(esp_param));
-
-	struct rst_info *rtc_info = system_get_rst_info();
-
-	os_printf("reset reason: %x\n", rtc_info->reason);
-
-	if (rtc_info->reason == REASON_WDT_RST ||
-		rtc_info->reason == REASON_EXCEPTION_RST ||
-		rtc_info->reason == REASON_SOFT_WDT_RST) {
-		if (rtc_info->reason == REASON_EXCEPTION_RST) {
-			os_printf("Fatal exception (%d):\n", rtc_info->exccause);
-		}
-		os_printf("epc1=0x%08x, epc2=0x%08x, epc3=0x%08x, excvaddr=0x%08x, depc=0x%08x\n",
-				rtc_info->epc1, rtc_info->epc2, rtc_info->epc3, rtc_info->excvaddr, rtc_info->depc);
-	}
-
-	/***add by tzx for saving ip_info to avoid dhcp_client start****/
-    struct dhcp_client_info dhcp_info;
-    struct ip_info sta_info;
-    system_rtc_mem_read(64,&dhcp_info,sizeof(struct dhcp_client_info));
-	if(dhcp_info.flag == 0x01 ) {
-		if (true == wifi_station_dhcpc_status())
-		{
-			wifi_station_dhcpc_stop();
-		}
-		sta_info.ip = dhcp_info.ip_addr;
-		sta_info.gw = dhcp_info.gw;
-		sta_info.netmask = dhcp_info.netmask;
-		if ( true != wifi_set_ip_info(STATION_IF,&sta_info)) {
-			os_printf("set default ip wrong\n");
-		}
-	}
-    os_memset(&dhcp_info,0,sizeof(struct dhcp_client_info));
-    system_rtc_mem_write(64,&dhcp_info,sizeof(struct rst_info));
-
-
-#if AP_CACHE
-    wifi_station_ap_number_set(AP_CACHE_NUMBER);
-#endif
-
-#if 0
-    {
-        char sofap_mac[6] = {0x16, 0x34, 0x56, 0x78, 0x90, 0xab};
-        char sta_mac[6] = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab};
-        struct ip_info info;
-
-        wifi_set_macaddr(SOFTAP_IF, sofap_mac);
-        wifi_set_macaddr(STATION_IF, sta_mac);
-
-        IP4_ADDR(&info.ip, 192, 168, 3, 200);
-        IP4_ADDR(&info.gw, 192, 168, 3, 1);
-        IP4_ADDR(&info.netmask, 255, 255, 255, 0);
-        wifi_set_ip_info(STATION_IF, &info);
-
-        IP4_ADDR(&info.ip, 10, 10, 10, 1);
-        IP4_ADDR(&info.gw, 10, 10, 10, 1);
-        IP4_ADDR(&info.netmask, 255, 255, 255, 0);
-        wifi_set_ip_info(SOFTAP_IF, &info);
-    }
-#endif
-
-    if (esp_param.activeflag != 1) {
-#ifdef SOFTAP_ENCRYPT
-        struct softap_config config;
-        char password[33];
-        char macaddr[6];
-
-        wifi_softap_get_config(&config);
-        wifi_get_macaddr(SOFTAP_IF, macaddr);
-
-        os_memset(config.password, 0, sizeof(config.password));
-        os_sprintf(password, MACSTR "_%s", MAC2STR(macaddr), PASSWORD);
-        os_memcpy(config.password, password, os_strlen(password));
-        config.authmode = AUTH_WPA_WPA2_PSK;
-
-        wifi_softap_set_config(&config);
-#endif
-
-        wifi_set_opmode(STATIONAP_MODE);
-    }
-
-#if PLUG_DEVICE
-    user_plug_init();
-#elif LIGHT_DEVICE
-    user_light_init();
-#elif SENSOR_DEVICE
-    user_sensor_init(esp_param.activeflag);
-#endif
-
-    if (wifi_get_opmode() != SOFTAP_MODE) {
-        os_timer_disarm(&client_timer);
-        os_timer_setfn(&client_timer, (os_timer_func_t *)user_esp_platform_check_ip, 1);
-        os_timer_arm(&client_timer, 100, 0);
-    }
-}
-
-#endif

+ 0 - 344
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_esp_platform_timer.c

@@ -1,344 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: esp_platform_user_timer.c
- *
- * Description:
- *
- * Modification history:
- *     2014/5/09, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "mem.h"
-#include "osapi.h"
-#include "user_interface.h"
-
-#include "espconn.h"
-#include "user_esp_platform.h"
-
-#define ESP_DEBUG
-
-#ifdef ESP_DEBUG
-#define ESP_DBG os_printf
-#else
-#define ESP_DBG
-#endif
-
-LOCAL os_timer_t device_timer;
-uint32 min_wait_second;
-char timestamp_str[11];
-int timestamp = 0;
-char *timer_splits[20] = {NULL};
-
-struct esp_platform_wait_timer_param {
-    uint8 wait_time_param[11];
-    uint8 wait_action[15];
-    int wait_time_second;
-};
-
-struct wait_param {
-    uint8 action[20][15];
-    uint16 action_number;
-    uint16 count;
-    uint32 min_time_backup;
-};
-
-void esp_platform_timer_action(struct esp_platform_wait_timer_param   *timer_wait_param, uint16 count);
-
-/******************************************************************************
- * FunctionName : split
- * Description  : split string p1 according to sting p2 and save the splits
- * Parameters   : p1 , p2 ,splits[]
- * Returns      : the number of splits
-*******************************************************************************/
-uint16 ICACHE_FLASH_ATTR
-split(char *p1, char *p2, char *splits[])
-{
-    int i = 0;
-    int j = 0;
-
-    while (i != -1) {
-        int start = i;
-        int end = indexof(p1, p2, start);
-
-        if (end == -1) {
-            end = os_strlen(p1);
-        }
-
-        char *p = (char *) os_zalloc(100);
-        os_memcpy(p, p1 + start, end - start);
-        p[end - start] = '\0';
-        splits[j] = p;
-        j++;
-        i = end + 1;
-
-        if (i > os_strlen(p1)) {
-            break;
-        }
-    }
-
-    return j;
-}
-
-/******************************************************************************
- * FunctionName : indexof
- * Description  : calculate the offset of p2 relate to start of p1
- * Parameters   : p1,p1,start
- * Returns      : the offset of p2 relate to the start
-*******************************************************************************/
-int ICACHE_FLASH_ATTR
-indexof(char *p1, char *p2, int start)
-{
-    char *find = (char *)os_strstr(p1 + start, p2);
-
-    if (find != NULL) {
-        return (find - p1);
-    }
-
-    return -1;
-}
-
-/******************************************************************************
- * FunctionName : esp_platform_find_min_time
- * Description  : find the minimum wait second in timer list
- * Parameters   : timer_wait_param -- param of timer action and wait time param
- *                count -- The number of timers given by server
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-esp_platform_find_min_time(struct esp_platform_wait_timer_param *timer_wait_param , uint16 count)
-{
-    uint16 i = 0;
-    min_wait_second = 0xFFFFFFF;
-
-    for (i = 0; i < count ; i++) {
-        if (timer_wait_param[i].wait_time_second < min_wait_second && timer_wait_param[i].wait_time_second >= 0) {
-            min_wait_second = timer_wait_param[i].wait_time_second;
-        }
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_platform_timer_first_start
- * Description  : calculate the wait time of each timer
- * Parameters   : count -- The number of timers given by server
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_platform_timer_first_start(uint16 count)
-{
-    int i = 0;
-    struct esp_platform_wait_timer_param timer_wait_param[100] = {0};
-
-    ESP_DBG("current timestamp= %ds\n", timestamp);
-
-    timestamp = timestamp + min_wait_second;
-
-    for (i = 0 ; i < count ; i++) {
-        char *str = timer_splits[i];
-
-        if (indexof(str, "f", 0) == 0) {
-            char *fixed_wait[2];
-
-            ESP_DBG("timer is fixed mode\n");
-
-            split(str, "=", fixed_wait);
-            os_memcpy(timer_wait_param[i].wait_time_param, fixed_wait[0] + 1, os_strlen(fixed_wait[0]) - 1);
-            os_memcpy(timer_wait_param[i].wait_action, fixed_wait[1], os_strlen(fixed_wait[1]));
-            timer_wait_param[i].wait_time_second = atoi(timer_wait_param[i].wait_time_param) - timestamp;
-            os_free(fixed_wait[0]);
-            os_free(fixed_wait[1]);
-        }
-
-        else if (indexof(str, "l", 0) == 0) {
-            char *loop_wait[2];
-
-            ESP_DBG("timer is loop mode\n");
-
-            split(str, "=", loop_wait);
-            os_memcpy(timer_wait_param[i].wait_time_param, loop_wait[0] + 1, os_strlen(loop_wait[0]) - 1);
-            os_memcpy(timer_wait_param[i].wait_action, loop_wait[1], os_strlen(loop_wait[1]));
-            timer_wait_param[i].wait_time_second = atoi(timer_wait_param[i].wait_time_param) - (timestamp % atoi(timer_wait_param[i].wait_time_param));
-            os_free(loop_wait[0]);
-            os_free(loop_wait[1]);
-        } else if (indexof(str, "w", 0) == 0) {
-            char *week_wait[2];
-            int monday_wait_time = 0;
-
-            ESP_DBG("timer is weekend mode\n");
-
-            split(str, "=", week_wait);
-            os_memcpy(timer_wait_param[i].wait_time_param, week_wait[0] + 1, os_strlen(week_wait[0]) - 1);
-            os_memcpy(timer_wait_param[i].wait_action, week_wait[1], os_strlen(week_wait[1]));
-            monday_wait_time = (timestamp - 1388937600) % (7 * 24 * 3600);
-
-            ESP_DBG("monday_wait_time == %d", monday_wait_time);
-
-            if (atoi(timer_wait_param[i].wait_time_param) > monday_wait_time) {
-                timer_wait_param[i].wait_time_second = atoi(timer_wait_param[i].wait_time_param) - monday_wait_time;
-            } else {
-                timer_wait_param[i].wait_time_second = 7 * 24 * 3600 - monday_wait_time + atoi(timer_wait_param[i].wait_time_param);
-            }
-
-            os_free(week_wait[0]);
-            os_free(week_wait[1]);
-        }
-    }
-
-    esp_platform_find_min_time(timer_wait_param, count);
-    if(min_wait_second == 0) {
-    	return;
-    }
-
-    esp_platform_timer_action(timer_wait_param, count);
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_device_action
- * Description  : Execute the actions of minimum wait time
- * Parameters   : pwait_action -- point the list of actions which need execute
- *
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_device_action(struct wait_param *pwait_action)
-{
-    uint8 i = 0;
-    uint16 count = pwait_action->count;
-    uint16 action_number = pwait_action->action_number;
-
-    ESP_DBG("there is %d action at the same time\n", pwait_action->action_number);
-
-#if PLUG_DEVICE
-    for (i = 0; i < action_number && pwait_action->action[i][0] != '0'; i++) {
-        ESP_DBG("%s\n",pwait_action->action[i]);
-
-        if (os_strcmp(pwait_action->action[i], "on_switch", 9) == 0) {
-            user_plug_set_status(0x01);
-        } else if (os_strcmp(pwait_action->action[i], "off_switch", 10) == 0) {
-            user_plug_set_status(0x00);
-        } else if (os_strcmp(pwait_action->action[i], "on_off_switch", 13) == 0) {
-            if (user_plug_get_status() == 0) {
-                user_plug_set_status(0x01);
-            } else {
-                user_plug_set_status(0x00);
-            }
-        } else {
-            return;
-        }
-    }
-    user_platform_timer_first_start(count);
-#endif
-}
-
-/******************************************************************************
- * FunctionName : user_platform_timer_start
- * Description  : Processing the message about timer from the server
- * Parameters   : timer_wait_param -- The received data from the server
- *                count -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_esp_platform_wait_time_overflow_check(struct wait_param *pwait_action)
-{
-    ESP_DBG("min_wait_second = %d", min_wait_second);
-
-    if (pwait_action->min_time_backup >= 3600) {
-        os_timer_disarm(&device_timer);
-        os_timer_setfn(&device_timer, (os_timer_func_t *)user_esp_platform_wait_time_overflow_check, pwait_action);
-        os_timer_arm(&device_timer, 3600000, 0);
-        ESP_DBG("min_wait_second is extended\n");
-    } else {
-        os_timer_disarm(&device_timer);
-        os_timer_setfn(&device_timer, (os_timer_func_t *)user_esp_platform_device_action, pwait_action);
-        os_timer_arm(&device_timer, pwait_action->min_time_backup * 1000, 0);
-        ESP_DBG("min_wait_second is = %dms\n", pwait_action->min_time_backup * 1000);
-    }
-
-    pwait_action->min_time_backup -= 3600;
-}
-
-/******************************************************************************
- * FunctionName : user_platform_timer_start
- * Description  : Processing the message about timer from the server
- * Parameters   : timer_wait_param -- The received data from the server
- *                count -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-esp_platform_timer_action(struct esp_platform_wait_timer_param *timer_wait_param, uint16 count)
-{
-    uint16 i = 0;
-    uint16 action_number;
-    struct wait_param pwait_action = {0};
-
-    pwait_action.count = count;
-    action_number = 0;
-
-    for (i = 0; i < count ; i++) {
-        if (timer_wait_param[i].wait_time_second == min_wait_second) {
-            os_memcpy(pwait_action.action[action_number], timer_wait_param[i].wait_action, os_strlen(timer_wait_param[i].wait_action));
-            ESP_DBG("*****%s*****\n", timer_wait_param[i].wait_action);
-            action_number++;
-        }
-    }
-
-    pwait_action.action_number = action_number;
-    pwait_action.min_time_backup = min_wait_second;
-    user_esp_platform_wait_time_overflow_check(&pwait_action);
-}
-
-/******************************************************************************
- * FunctionName : user_platform_timer_start
- * Description  : Processing the message about timer from the server
- * Parameters   : pbuffer -- The received data from the server
-
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_platform_timer_start(char *pbuffer)
-{
-    int str_begin = 0;
-    int str_end = 0;
-    uint8 i = 0;
-    char *pstr_start = NULL;
-    char *pstr_end = NULL;
-    struct esp_platform_wait_timer_param timer_wait_param[20];
-    char *pstr = NULL;
-
-    min_wait_second  = 0;
-
-    if ((pstr = (char *)os_strstr(pbuffer, "\"timestamp\":")) != NULL) {
-        pstr_start = pstr + 13;
-        pstr_end = (char *)os_strstr(pstr_start, ",");
-
-        if (pstr != NULL) {
-            os_memcpy(timestamp_str, pstr_start, pstr_end - pstr_start);
-            timestamp = atoi(timestamp_str);
-        }
-    }
-
-    for (i = 0 ; i < 20 ; i++) {
-        if (timer_splits[i] != NULL) {
-            os_free(timer_splits[i]);
-            timer_splits[i] = NULL;
-        }
-    }
-
-    if ((pstr_start = (char *)os_strstr(pbuffer, "\"timers\": \"")) != NULL) {
-        str_begin = 11;
-        str_end = indexof(pstr_start, "\"", str_begin);
-
-        if (str_begin == str_end) {
-        	os_timer_disarm(&device_timer);
-            return;
-        }
-
-        char *split_buffer = (char *)os_zalloc(str_end - str_begin + 1);
-        os_memcpy(split_buffer, pstr_start + str_begin, str_end - str_begin);
-        uint16 count = split(split_buffer , ";" , timer_splits);
-        os_free(split_buffer);
-        user_platform_timer_first_start(count);
-    }
-}

+ 0 - 164
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_json.c

@@ -1,164 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_json.c
- *
- * Description: JSON format set up and parse.
- *              Check your hardware transmation while use this data format.
- *
- * Modification history:
- *     2014/5/09, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-#include "os_type.h"
-#include "mem.h"
-
-#include "user_json.h"
-
-LOCAL char *json_buf;
-LOCAL int pos;
-LOCAL int size;
-
-/******************************************************************************
- * FunctionName : find_json_path
- * Description  : find the JSON format tree's path
- * Parameters   : json -- A pointer to a JSON set up
- *                path -- A pointer to the JSON format tree's path
- * Returns      : A pointer to the JSON format tree
-*******************************************************************************/
-struct jsontree_value *ICACHE_FLASH_ATTR
-find_json_path(struct jsontree_context *json, const char *path)
-{
-    struct jsontree_value *v;
-    const char *start;
-    const char *end;
-    int len;
-
-    v = json->values[0];
-    start = path;
-
-    do {
-        end = (const char *)os_strstr(start, "/");
-
-        if (end == start) {
-            break;
-        }
-
-        if (end != NULL) {
-            len = end - start;
-            end++;
-        } else {
-            len = os_strlen(start);
-        }
-
-        if (v->type != JSON_TYPE_OBJECT) {
-            v = NULL;
-        } else {
-            struct jsontree_object *o;
-            int i;
-
-            o = (struct jsontree_object *)v;
-            v = NULL;
-
-            for (i = 0; i < o->count; i++) {
-                if (os_strncmp(start, o->pairs[i].name, len) == 0) {
-                    v = o->pairs[i].value;
-                    json->index[json->depth] = i;
-                    json->depth++;
-                    json->values[json->depth] = v;
-                    json->index[json->depth] = 0;
-                    break;
-                }
-            }
-        }
-
-        start = end;
-    } while (end != NULL && *end != '\0' && v != NULL);
-
-    json->callback_state = 0;
-    return v;
-}
-
-/******************************************************************************
- * FunctionName : json_putchar
- * Description  : write the value to the JSON  format tree
- * Parameters   : c -- the value which write the JSON format tree
- * Returns      : result
-*******************************************************************************/
-int ICACHE_FLASH_ATTR
-json_putchar(int c)
-{
-    if (json_buf != NULL && pos <= size) {
-        json_buf[pos++] = c;
-        return c;
-    }
-
-    return 0;
-}
-
-/******************************************************************************
- * FunctionName : json_ws_send
- * Description  : set up the JSON format tree for string
- * Parameters   : tree -- A pointer to the JSON format tree
- *                path -- A pointer to the JSON format tree's path
- *                pbuf -- A pointer for the data sent
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-json_ws_send(struct jsontree_value *tree, const char *path, char *pbuf)
-{
-    struct jsontree_context json;
-    /* maxsize = 128 bytes */
-    json_buf = (char *)os_malloc(jsonSize);
-
-    /* reset state and set max-size */
-    /* NOTE: packet will be truncated at 512 bytes */
-    pos = 0;
-    size = jsonSize;
-
-    json.values[0] = (struct jsontree_value *)tree;
-    jsontree_reset(&json);
-    find_json_path(&json, path);
-    json.path = json.depth;
-    json.putchar = json_putchar;
-
-    while (jsontree_print_next(&json) && json.path <= json.depth);
-
-    json_buf[pos] = 0;
-    os_memcpy(pbuf, json_buf, pos);
-    os_free(json_buf);
-}
-
-/******************************************************************************
- * FunctionName : json_parse
- * Description  : parse the data as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- *                ptrJSONMessage -- A pointer to the data
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-json_parse(struct jsontree_context *json, char *ptrJSONMessage)
-{
-    /* Set value */
-    struct jsontree_value *v;
-    struct jsontree_callback *c;
-    struct jsontree_callback *c_bak = NULL;
-
-    while ((v = jsontree_find_next(json, JSON_TYPE_CALLBACK)) != NULL) {
-        c = (struct jsontree_callback *)v;
-
-        if (c == c_bak) {
-            continue;
-        }
-
-        c_bak = c;
-
-        if (c->set != NULL) {
-            struct jsonparse_state js;
-
-            jsonparse_setup(&js, ptrJSONMessage, os_strlen(ptrJSONMessage));
-            c->set(json, &js);
-        }
-    }
-}

+ 0 - 141
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_light.c

@@ -1,141 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_light.c
- *
- * Description: light demo's function realization
- *
- * Modification history:
- *     2014/5/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-#include "os_type.h"
-#include "mem.h"
-#include "user_interface.h"
-
-#include "user_light.h"
-#include "pwm.h"
-
-#if LIGHT_DEVICE
-
-struct light_saved_param light_param;
-
-/******************************************************************************
- * FunctionName : user_light_get_duty
- * Description  : get duty of each channel
- * Parameters   : uint8 channel : LIGHT_RED/LIGHT_GREEN/LIGHT_BLUE
- * Returns      : NONE
-*******************************************************************************/
-uint32 ICACHE_FLASH_ATTR
-user_light_get_duty(uint8 channel)
-{
-    return light_param.pwm_duty[channel];
-}
-
-/******************************************************************************
- * FunctionName : user_light_set_duty
- * Description  : set each channel's duty params
- * Parameters   : uint8 duty    : 0 ~ PWM_DEPTH
- *                uint8 channel : LIGHT_RED/LIGHT_GREEN/LIGHT_BLUE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_light_set_duty(uint32 duty, uint8 channel)
-{
-    if (duty != light_param.pwm_duty[channel]) {
-        pwm_set_duty(duty, channel);
-
-        light_param.pwm_duty[channel] = pwm_get_duty(channel);
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_light_get_period
- * Description  : get pwm period
- * Parameters   : NONE
- * Returns      : uint32 : pwm period
-*******************************************************************************/
-uint32 ICACHE_FLASH_ATTR
-user_light_get_period(void)
-{
-    return light_param.pwm_period;
-}
-
-/******************************************************************************
- * FunctionName : user_light_set_duty
- * Description  : set pwm frequency
- * Parameters   : uint16 freq : 100hz typically
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_light_set_period(uint32 period)
-{
-    if (period != light_param.pwm_period) {
-        pwm_set_period(period);
-
-        light_param.pwm_period = pwm_get_period();
-    }
-}
-
-void ICACHE_FLASH_ATTR
-user_light_restart(void)
-{
-	spi_flash_erase_sector(PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE);
-	spi_flash_write((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE,
-	    		(uint32 *)&light_param, sizeof(struct light_saved_param));
-
-	pwm_start();
-}
-
-/******************************************************************************
- * FunctionName : user_light_init
- * Description  : light demo init, mainy init pwm
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_light_init(void)
-{
-    spi_flash_read((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE,
-                               (uint32 *)&light_param, sizeof(struct light_saved_param));
-    if(light_param.pwm_period>10000 || light_param.pwm_period <1000){
-            light_param.pwm_period = 1000;
-    }
-
-	uint32 io_info[][3] = {   {PWM_0_OUT_IO_MUX,PWM_0_OUT_IO_FUNC,PWM_0_OUT_IO_NUM},
-		                      {PWM_1_OUT_IO_MUX,PWM_1_OUT_IO_FUNC,PWM_1_OUT_IO_NUM},
-		                      {PWM_2_OUT_IO_MUX,PWM_2_OUT_IO_FUNC,PWM_2_OUT_IO_NUM},
-		                      {PWM_3_OUT_IO_MUX,PWM_3_OUT_IO_FUNC,PWM_3_OUT_IO_NUM},
-		                      {PWM_4_OUT_IO_MUX,PWM_4_OUT_IO_FUNC,PWM_4_OUT_IO_NUM},
-		                      };
-	
-    uint32 pwm_duty_init[PWM_CHANNEL] = {0};
-	
-    /*PIN FUNCTION INIT FOR PWM OUTPUT*/
-    pwm_init(light_param.pwm_period,  pwm_duty_init ,PWM_CHANNEL,io_info);
-    
-    os_printf("LIGHT PARAM: R: %d \r\n",light_param.pwm_duty[LIGHT_RED]);
-    os_printf("LIGHT PARAM: G: %d \r\n",light_param.pwm_duty[LIGHT_GREEN]);
-    os_printf("LIGHT PARAM: B: %d \r\n",light_param.pwm_duty[LIGHT_BLUE]);
-    if(PWM_CHANNEL>LIGHT_COLD_WHITE){
-        os_printf("LIGHT PARAM: CW: %d \r\n",light_param.pwm_duty[LIGHT_COLD_WHITE]);
-        os_printf("LIGHT PARAM: WW: %d \r\n",light_param.pwm_duty[LIGHT_WARM_WHITE]);
-    }
-    os_printf("LIGHT PARAM: P: %d \r\n",light_param.pwm_period);
-
-    uint32 light_init_target[8]={0};
-    os_memcpy(light_init_target,light_param.pwm_duty,sizeof(light_param.pwm_duty));
-
-    light_set_aim(      
-		         light_init_target[LIGHT_RED],
-    	                light_init_target[LIGHT_GREEN],
-    	                light_init_target[LIGHT_BLUE], 
-    	                light_init_target[LIGHT_COLD_WHITE],
-    	                light_init_target[LIGHT_WARM_WHITE],
-    	                light_param.pwm_period);
-    set_pwm_debug_en(0);//disable debug print in pwm driver
-    os_printf("PWM version : %08x \r\n",get_pwm_version());
-}
-#endif
-

+ 0 - 334
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_light_adj.c

@@ -1,334 +0,0 @@
-
-#include "ets_sys.h"
-#include "osapi.h"
-#include "os_type.h"
-#include "mem.h"
-#include "user_interface.h"
-
-#include "user_light.h"
-#include "user_light_adj.h"
-#include "pwm.h"
-
-#define ABS_MINUS(x,y) (x<y?(y-x):(x-y))
-uint8 light_sleep_flg = 0;
-
-uint16  min_ms = 15;
-uint32  current_duty[PWM_CHANNEL] = {0};
-
-bool change_finish=true;
-os_timer_t timer_pwm_adj;
-
-static u32 duty_now[PWM_CHANNEL] = {0};
-
-
-
-
-//-----------------------------------Light para storage---------------------------
-#define LIGHT_EVT_QNUM (40) 
-
-static struct pwm_param LightEvtArr[LIGHT_EVT_QNUM];
-
-static u8 CurFreeLightEvtIdx = 0;
-static u8 TotalUsedLightEvtNum = 0;
-static u8  CurEvtIdxToBeUse = 0;
-
-static struct pwm_param *LightEvtMalloc(void)
-{
-    struct pwm_param *tmp = NULL;
-    TotalUsedLightEvtNum++;
-    if(TotalUsedLightEvtNum > LIGHT_EVT_QNUM ){
-        TotalUsedLightEvtNum--;
-    }
-    else{
-        tmp = &(LightEvtArr[CurFreeLightEvtIdx]);
-        CurFreeLightEvtIdx++;
-        if( CurFreeLightEvtIdx > (LIGHT_EVT_QNUM-1) )
-        CurFreeLightEvtIdx = 0;
-    }
-    os_printf("malloc:%u\n",TotalUsedLightEvtNum);
-    return tmp;
-}
-
-static void ICACHE_FLASH_ATTR LightEvtFree(void)
-{
-    TotalUsedLightEvtNum--;
-os_printf("free:%u\n",TotalUsedLightEvtNum);
-}
-//------------------------------------------------------------------------------------
-
-static void ICACHE_FLASH_ATTR light_pwm_smooth_adj_proc(void);
-
-
-void ICACHE_FLASH_ATTR
-	light_save_target_duty()
-{
-	extern struct light_saved_param light_param;
-
-	os_memcpy(light_param.pwm_duty,current_duty,sizeof(light_param.pwm_duty));
-	light_param.pwm_period =  pwm_get_period();
-
-#if SAVE_LIGHT_PARAM
-	spi_flash_erase_sector(PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE);
-	spi_flash_write((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE,
-	    		(uint32 *)&light_param, sizeof(struct light_saved_param));
-#endif
-
-}
-
-
-void ICACHE_FLASH_ATTR
-light_set_aim_r(uint32 r)
-{
-    current_duty[LIGHT_RED]=r;
-    light_pwm_smooth_adj_proc();
-}
-
-void ICACHE_FLASH_ATTR
-light_set_aim_g(uint32 g)
-{
-    current_duty[LIGHT_GREEN]=g;
-    light_pwm_smooth_adj_proc();
-}
-
-void ICACHE_FLASH_ATTR
-light_set_aim_b(uint32 b)
-{
-    current_duty[LIGHT_BLUE]=b;
-    light_pwm_smooth_adj_proc();
-}
-
-void ICACHE_FLASH_ATTR
-light_set_aim_cw(uint32 cw)
-{
-    current_duty[LIGHT_COLD_WHITE]=cw;
-    light_pwm_smooth_adj_proc();
-}
-
-void ICACHE_FLASH_ATTR
-light_set_aim_ww(uint32 ww)
-{
-    current_duty[LIGHT_WARM_WHITE]=ww;
-    light_pwm_smooth_adj_proc();
-}
-
-LOCAL bool ICACHE_FLASH_ATTR
-	check_pwm_current_duty_diff()
-{
-	int i;
-	
-	for(i=0;i<PWM_CHANNEL;i++){
-		if(pwm_get_duty(i) != current_duty[i]){
-			return true;
-		}
-	}
-	return false;
-
-}
-
-
-void light_dh_pwm_adj_proc(void *Targ)
-{
-    uint8 i;
-    for(i=0;i<PWM_CHANNEL;i++){	
-          duty_now[i] = (duty_now[i]*15 + current_duty[i])>>4;
-          if( ABS_MINUS(duty_now[i],current_duty[i])<20 )
-            duty_now[i] = current_duty[i];
-          user_light_set_duty(duty_now[i],i);
-    }
-    
-    //os_printf("duty:%u,%u,%u\r\n", pwm.duty[0],pwm.duty[1],pwm.duty[2] );
-    pwm_start();	
-
-    if(check_pwm_current_duty_diff()){
-        change_finish = 0;		
-        os_timer_disarm(&timer_pwm_adj);
-        os_timer_setfn(&timer_pwm_adj, (os_timer_func_t *)light_dh_pwm_adj_proc, NULL);
-        os_timer_arm(&timer_pwm_adj, min_ms, 0);	
-    }
-    else{
-	os_printf("finish\n");
-        change_finish = 1;	
-	 //light_save_target_duty();
-        os_timer_disarm(&timer_pwm_adj);
-	 light_pwm_smooth_adj_proc();
-    }
-
-}
-
-LOCAL bool ICACHE_FLASH_ATTR
-	check_pwm_duty_zero()
-{
-    int i;
-	for(i=0;i<PWM_CHANNEL;i++){
-        if(pwm_get_duty(i) != 0){
-            return false;
-     	}
-    }
-	return true;
-}
-
-
-static void ICACHE_FLASH_ATTR light_pwm_smooth_adj_proc(void)
-{
-    if( TotalUsedLightEvtNum>0 ){
-        user_light_set_period( LightEvtArr[CurEvtIdxToBeUse].period );
-
-        os_memcpy(current_duty,LightEvtArr[CurEvtIdxToBeUse].duty,sizeof(current_duty));
-        CurEvtIdxToBeUse++;
-        if(CurEvtIdxToBeUse > (LIGHT_EVT_QNUM-1) ){
-            CurEvtIdxToBeUse = 0;
-        }
-        LightEvtFree();
- 
-        if(change_finish){
-            light_dh_pwm_adj_proc(NULL);
-        }
-    }
-
-    if(change_finish){
-           light_save_target_duty();
-	    if(check_pwm_duty_zero()){
-            if(light_sleep_flg==0){
-                os_printf("light sleep en\r\n");
-                wifi_set_sleep_type(LIGHT_SLEEP_T);
-                light_sleep_flg = 1;
-            }
-        }
-    }
-}
-
-
-
-#if LIGHT_CURRENT_LIMIT
-uint32 light_get_cur(uint32 duty , uint8 channel, uint32 period)
-{
-    uint32 duty_max_limit = (period*1000/45);
-    uint32 duty_mapped = duty*22727/duty_max_limit;
-    switch(channel){
-
-    case LIGHT_RED : 
-        if(duty_mapped>=0 && duty_mapped<23000){
-            return (duty_mapped*151000/22727);
-        }
-    
-        break;
-
-    case LIGHT_GREEN:
-        if(duty_mapped>=0 && duty_mapped<23000){
-            return (duty_mapped*82000/22727);
-        }
-        break;
-    
-    case LIGHT_BLUE:
-        if(duty_mapped>=0 && duty_mapped<23000){
-            return (duty_mapped*70000/22727);
-        }
-        break;
-    
-    case LIGHT_COLD_WHITE:
-    case LIGHT_WARM_WHITE:
-        if(duty_mapped>=0 && duty_mapped<23000){
-            return (duty_mapped*115000/22727);
-        }
-        break;
-		
-    default:
-       os_printf("CHANNEL ERROR IN GET_CUR\r\n");
-       break;
-
-
-
-    }
-
-}
-
-#endif
-
-
-
-void ICACHE_FLASH_ATTR
-light_set_aim(uint32 r,uint32 g,uint32 b,uint32 cw,uint32 ww,uint32 period)
-{
-    struct pwm_param *tmp = LightEvtMalloc();    
-    if(tmp != NULL){
-        tmp->period = (period<10000?period:10000);
-	uint32 duty_max_limit = (period*1000/45);
-		
-        tmp->duty[LIGHT_RED] = (r<duty_max_limit?r:duty_max_limit);
-        tmp->duty[LIGHT_GREEN] = (g<duty_max_limit?g:duty_max_limit);
-        tmp->duty[LIGHT_BLUE] = (b<duty_max_limit?b:duty_max_limit);
-        tmp->duty[LIGHT_COLD_WHITE] = (cw<duty_max_limit?cw:duty_max_limit);
-        tmp->duty[LIGHT_WARM_WHITE] = (ww<duty_max_limit?ww:duty_max_limit);//chg
-
-#if LIGHT_CURRENT_LIMIT
-        uint32 cur_r,cur_g,cur_b,cur_rgb;
-        
-        //if(cw>0 || ww>0){
-        cur_r = light_get_cur(tmp->duty[LIGHT_RED] , LIGHT_RED, tmp->period);
-		
-        cur_g =  light_get_cur(tmp->duty[LIGHT_GREEN] , LIGHT_GREEN, tmp->period);
-        cur_b =  light_get_cur(tmp->duty[LIGHT_BLUE] , LIGHT_BLUE, tmp->period);
-        cur_rgb = (cur_r+cur_g+cur_b);
-        //}
-        uint32 cur_cw = light_get_cur( tmp->duty[LIGHT_COLD_WHITE],LIGHT_COLD_WHITE, tmp->period);
-        uint32 cur_ww = light_get_cur( tmp->duty[LIGHT_WARM_WHITE],LIGHT_WARM_WHITE, tmp->period);
-	 uint32 cur_remain,cur_mar;
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN);
-		cur_mar = LIGHT_CURRENT_MARGIN;
-
-/*
-	 if((cur_cw < 50000) || (cur_ww < 50000)){
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN);
-		cur_mar = LIGHT_CURRENT_MARGIN;
- 	}else if((cur_cw < 99000) || (cur_ww < 99000)){
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN_L2);
-		cur_mar = LIGHT_CURRENT_MARGIN_L2;
-	}else{
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN_L3);
-		cur_mar = LIGHT_CURRENT_MARGIN_L2;
-	}
-
-	*/
-	 
-	 /*
-	 if((LIGHT_TOTAL_CURRENT_MAX-cur_rgb)>120){
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN);
-		cur_mar = LIGHT_CURRENT_MARGIN;
- 	}else if((LIGHT_TOTAL_CURRENT_MAX-cur_rgb)>100){
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN_L2);
-		cur_mar = LIGHT_CURRENT_MARGIN_L2;
-	}else{
-	        cur_remain = (LIGHT_TOTAL_CURRENT_MAX - cur_rgb -LIGHT_CURRENT_MARGIN_L3);
-		cur_mar = LIGHT_CURRENT_MARGIN_L2;
-	}
-	*/
-
-
-		
-        os_printf("cur_remain: %d \r\n",cur_remain);
-        while((cur_cw+cur_ww) > cur_remain){
-            tmp->duty[LIGHT_COLD_WHITE] =  tmp->duty[LIGHT_COLD_WHITE] * 9 / 10;
-            tmp->duty[LIGHT_WARM_WHITE] =  tmp->duty[LIGHT_WARM_WHITE] * 9 / 10;
-            cur_cw = light_get_cur( tmp->duty[LIGHT_COLD_WHITE],LIGHT_COLD_WHITE, tmp->period);
-            cur_ww = light_get_cur( tmp->duty[LIGHT_WARM_WHITE],LIGHT_WARM_WHITE, tmp->period);
-        }	    
-	os_printf("debug : %d %d %d %d %d\r\n",cur_r/1000,cur_g/1000,cur_b/1000,cur_cw/1000,cur_ww/1000);
-	
-	os_printf("debug:total current after adj : %d + %d mA \r\n",(cur_cw+cur_ww+cur_r+cur_g+cur_b)/1000,cur_mar/1000);
-#endif
-
-
-
-		
-	os_printf("prd:%u  r : %u  g: %u  b: %u  cw: %u  ww: %u \r\n",period,
-		         tmp->duty[0],tmp->duty[1],tmp->duty[2],tmp->duty[3],tmp->duty[4]);
-        light_pwm_smooth_adj_proc();
-    }
-    else{
-        os_printf("light para full\n");
-    }
-}
-
-
-
-

+ 0 - 59
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_main.c

@@ -1,59 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_main.c
- *
- * Description: entry file of user application
- *
- * Modification history:
- *     2014/1/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-
-#include "user_interface.h"
-
-#include "user_devicefind.h"
-#include "user_webserver.h"
-
-#if ESP_PLATFORM
-#include "user_esp_platform.h"
-#endif
-
-void user_rf_pre_init(void)
-{
-}
-
-/******************************************************************************
- * FunctionName : user_init
- * Description  : entry of user application, init user function here
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void user_init(void)
-{
-    os_printf("SDK version:%s\n", system_get_sdk_version());
-
-#if ESP_PLATFORM
-    /*Initialization of the peripheral drivers*/
-    /*For light demo , it is user_light_init();*/
-    /* Also check whether assigned ip addr by the router.If so, connect to ESP-server  */
-    user_esp_platform_init();
-#endif
-    /*Establish a udp socket to receive local device detect info.*/
-    /*Listen to the port 1025, as well as udp broadcast.
-    /*If receive a string of device_find_request, it rely its IP address and MAC.*/
-    user_devicefind_init();
-
-    /*Establish a TCP server for http(with JSON) POST or GET command to communicate with the device.*/
-    /*You can find the command in "2B-SDK-Espressif IoT Demo.pdf" to see the details.*/
-    /*the JSON command for curl is like:*/
-    /*3 Channel mode: curl -X POST -H "Content-Type:application/json" -d "{\"period\":1000,\"rgb\":{\"red\":16000,\"green\":16000,\"blue\":16000}}" http://192.168.4.1/config?command=light      */
-    /*5 Channel mode: curl -X POST -H "Content-Type:application/json" -d "{\"period\":1000,\"rgb\":{\"red\":16000,\"green\":16000,\"blue\":16000,\"cwhite\":3000,\"wwhite\",3000}}" http://192.168.4.1/config?command=light      */
-#ifdef SERVER_SSL_ENABLE
-    user_webserver_init(SERVER_SSL_PORT);
-#else
-    user_webserver_init(SERVER_PORT);
-#endif
-}
-

+ 0 - 159
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_plug.c

@@ -1,159 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_plug.c
- *
- * Description: plug demo's function realization
- *
- * Modification history:
- *     2014/5/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-#include "os_type.h"
-#include "mem.h"
-#include "user_interface.h"
-
-#include "user_plug.h"
-
-#if PLUG_DEVICE
-
-LOCAL struct plug_saved_param plug_param;
-LOCAL struct keys_param keys;
-LOCAL struct single_key_param *single_key[PLUG_KEY_NUM];
-LOCAL os_timer_t link_led_timer;
-LOCAL uint8 link_led_level = 0;
-
-/******************************************************************************
- * FunctionName : user_plug_get_status
- * Description  : get plug's status, 0x00 or 0x01
- * Parameters   : none
- * Returns      : uint8 - plug's status
-*******************************************************************************/
-uint8 ICACHE_FLASH_ATTR
-user_plug_get_status(void)
-{
-    return plug_param.status;
-}
-
-/******************************************************************************
- * FunctionName : user_plug_set_status
- * Description  : set plug's status, 0x00 or 0x01
- * Parameters   : uint8 - status
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_plug_set_status(bool status)
-{
-    if (status != plug_param.status) {
-        if (status > 1) {
-            os_printf("error status input!\n");
-            return;
-        }
-
-        plug_param.status = status;
-        PLUG_STATUS_OUTPUT(PLUG_RELAY_LED_IO_NUM, status);
-    }
-}
-
-/******************************************************************************
- * FunctionName : user_plug_short_press
- * Description  : key's short press function, needed to be installed
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_plug_short_press(void)
-{
-    user_plug_set_status((~plug_param.status) & 0x01);
-
-    spi_flash_erase_sector(PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE);
-    spi_flash_write((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE,
-        		(uint32 *)&plug_param, sizeof(struct plug_saved_param));
-}
-
-/******************************************************************************
- * FunctionName : user_plug_long_press
- * Description  : key's long press function, needed to be installed
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_plug_long_press(void)
-{
-	user_esp_platform_set_active(0);
-    system_restore();
-    system_restart();
-}
-
-LOCAL void ICACHE_FLASH_ATTR
-user_link_led_init(void)
-{
-    PIN_FUNC_SELECT(PLUG_LINK_LED_IO_MUX, PLUG_LINK_LED_IO_FUNC);
-}
-
-void ICACHE_FLASH_ATTR
-user_link_led_output(uint8 level)
-{
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(PLUG_LINK_LED_IO_NUM), level);
-}
-
-LOCAL void ICACHE_FLASH_ATTR
-user_link_led_timer_cb(void)
-{
-    link_led_level = (~link_led_level) & 0x01;
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(PLUG_LINK_LED_IO_NUM), link_led_level);
-}
-
-void ICACHE_FLASH_ATTR
-user_link_led_timer_init(void)
-{
-    os_timer_disarm(&link_led_timer);
-    os_timer_setfn(&link_led_timer, (os_timer_func_t *)user_link_led_timer_cb, NULL);
-    os_timer_arm(&link_led_timer, 50, 1);
-    link_led_level = 0;
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(PLUG_LINK_LED_IO_NUM), link_led_level);
-}
-
-void ICACHE_FLASH_ATTR
-user_link_led_timer_done(void)
-{
-    os_timer_disarm(&link_led_timer);
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(PLUG_LINK_LED_IO_NUM), 0);
-}
-
-/******************************************************************************
- * FunctionName : user_plug_init
- * Description  : init plug's key function and relay output
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_plug_init(void)
-{
-    user_link_led_init();
-
-    wifi_status_led_install(PLUG_WIFI_LED_IO_NUM, PLUG_WIFI_LED_IO_MUX, PLUG_WIFI_LED_IO_FUNC);
-
-    single_key[0] = key_init_single(PLUG_KEY_0_IO_NUM, PLUG_KEY_0_IO_MUX, PLUG_KEY_0_IO_FUNC,
-                                    user_plug_long_press, user_plug_short_press);
-
-    keys.key_num = PLUG_KEY_NUM;
-    keys.single_key = single_key;
-
-    key_init(&keys);
-
-    spi_flash_read((PRIV_PARAM_START_SEC + PRIV_PARAM_SAVE) * SPI_FLASH_SEC_SIZE,
-        		(uint32 *)&plug_param, sizeof(struct plug_saved_param));
-
-    PIN_FUNC_SELECT(PLUG_RELAY_LED_IO_MUX, PLUG_RELAY_LED_IO_FUNC);
-
-    // no used SPI Flash
-    if (plug_param.status == 0xff) {
-        plug_param.status = 1;
-    }
-
-    PLUG_STATUS_OUTPUT(PLUG_RELAY_LED_IO_NUM, plug_param.status);
-}
-#endif
-

+ 0 - 230
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_sensor.c

@@ -1,230 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_humiture.c
- *
- * Description: humiture demo's function realization
- *
- * Modification history:
- *     2014/5/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-#include "os_type.h"
-#include "user_interface.h"
-
-#if SENSOR_DEVICE
-#include "user_sensor.h"
-
-LOCAL struct keys_param keys;
-LOCAL struct single_key_param *single_key[SENSOR_KEY_NUM];
-LOCAL os_timer_t sensor_sleep_timer;
-LOCAL os_timer_t link_led_timer;
-LOCAL uint8 link_led_level = 0;
-LOCAL uint32 link_start_time;
-
-#if HUMITURE_SUB_DEVICE
-#include "driver/i2c_master.h"
-
-#define MVH3004_Addr    0x88
-
-LOCAL uint8 humiture_data[4];
-
-/******************************************************************************
- * FunctionName : user_mvh3004_burst_read
- * Description  : burst read mvh3004's internal data
- * Parameters   : uint8 addr - mvh3004's address
- *                uint8 *pData - data point to put read data
- *                uint16 len - read length
- * Returns      : bool - true or false
-*******************************************************************************/
-LOCAL bool ICACHE_FLASH_ATTR
-user_mvh3004_burst_read(uint8 addr, uint8 *pData, uint16 len)
-{
-    uint8 ack;
-    uint16 i;
-
-    i2c_master_start();
-    i2c_master_writeByte(addr);
-    ack = i2c_master_getAck();
-
-    if (ack) {
-        os_printf("addr not ack when tx write cmd \n");
-        i2c_master_stop();
-        return false;
-    }
-
-    i2c_master_stop();
-    i2c_master_wait(40000);
-
-    i2c_master_start();
-    i2c_master_writeByte(addr + 1);
-    ack = i2c_master_getAck();
-
-    if (ack) {
-        os_printf("addr not ack when tx write cmd \n");
-        i2c_master_stop();
-        return false;
-    }
-
-    for (i = 0; i < len; i++) {
-        pData[i] = i2c_master_readByte();
-
-        i2c_master_setAck((i == (len - 1)) ? 1 : 0);
-    }
-
-    i2c_master_stop();
-
-    return true;
-}
-
-/******************************************************************************
- * FunctionName : user_mvh3004_read_th
- * Description  : read mvh3004's humiture data
- * Parameters   : uint8 *data - where data to put
- * Returns      : bool - ture or false
-*******************************************************************************/
-bool ICACHE_FLASH_ATTR
-user_mvh3004_read_th(uint8 *data)
-{
-    return user_mvh3004_burst_read(MVH3004_Addr, data, 4);
-}
-
-/******************************************************************************
- * FunctionName : user_mvh3004_init
- * Description  : init mvh3004, mainly i2c master gpio
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_mvh3004_init(void)
-{
-    i2c_master_gpio_init();
-}
-
-uint8 *ICACHE_FLASH_ATTR
-user_mvh3004_get_poweron_th(void)
-{
-    return humiture_data;
-}
-#endif
-
-/******************************************************************************
- * FunctionName : user_humiture_long_press
- * Description  : humiture key's function, needed to be installed
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-user_sensor_long_press(void)
-{
-    user_esp_platform_set_active(0);
-    system_restore();
-    system_restart();
-}
-
-LOCAL void ICACHE_FLASH_ATTR
-user_link_led_init(void)
-{
-    PIN_FUNC_SELECT(SENSOR_LINK_LED_IO_MUX, SENSOR_LINK_LED_IO_FUNC);
-    PIN_FUNC_SELECT(SENSOR_UNUSED_LED_IO_MUX, SENSOR_UNUSED_LED_IO_FUNC);
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(SENSOR_UNUSED_LED_IO_NUM), 0);
-}
-
-void ICACHE_FLASH_ATTR
-user_link_led_output(uint8 level)
-{
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(SENSOR_LINK_LED_IO_NUM), level);
-}
-
-LOCAL void ICACHE_FLASH_ATTR
-user_link_led_timer_cb(void)
-{
-    link_led_level = (~link_led_level) & 0x01;
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(SENSOR_LINK_LED_IO_NUM), link_led_level);
-}
-
-void ICACHE_FLASH_ATTR
-user_link_led_timer_init(void)
-{
-    link_start_time = system_get_time();
-
-    os_timer_disarm(&link_led_timer);
-    os_timer_setfn(&link_led_timer, (os_timer_func_t *)user_link_led_timer_cb, NULL);
-    os_timer_arm(&link_led_timer, 50, 1);
-    link_led_level = 0;
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(SENSOR_LINK_LED_IO_NUM), link_led_level);
-}
-
-void ICACHE_FLASH_ATTR
-user_link_led_timer_done(void)
-{
-    os_timer_disarm(&link_led_timer);
-    GPIO_OUTPUT_SET(GPIO_ID_PIN(SENSOR_LINK_LED_IO_NUM), 0);
-}
-
-void ICACHE_FLASH_ATTR
-user_sensor_deep_sleep_enter(void)
-{
-    system_deep_sleep(SENSOR_DEEP_SLEEP_TIME > link_start_time \
-    ? SENSOR_DEEP_SLEEP_TIME - link_start_time : 30000000);
-}
-
-void ICACHE_FLASH_ATTR
-user_sensor_deep_sleep_disable(void)
-{
-    os_timer_disarm(&sensor_sleep_timer);
-}
-
-void ICACHE_FLASH_ATTR
-user_sensor_deep_sleep_init(uint32 time)
-{
-    os_timer_disarm(&sensor_sleep_timer);
-    os_timer_setfn(&sensor_sleep_timer, (os_timer_func_t *)user_sensor_deep_sleep_enter, NULL);
-    os_timer_arm(&sensor_sleep_timer, time, 0);
-}
-
-/******************************************************************************
- * FunctionName : user_humiture_init
- * Description  : init humiture function, include key and mvh3004
- * Parameters   : none
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_sensor_init(uint8 active)
-{
-    user_link_led_init();
-
-    wifi_status_led_install(SENSOR_WIFI_LED_IO_NUM, SENSOR_WIFI_LED_IO_MUX, SENSOR_WIFI_LED_IO_FUNC);
-
-    if (wifi_get_opmode() != SOFTAP_MODE) {
-        single_key[0] = key_init_single(SENSOR_KEY_IO_NUM, SENSOR_KEY_IO_MUX, SENSOR_KEY_IO_FUNC,
-                                        user_sensor_long_press, NULL);
-
-        keys.key_num = SENSOR_KEY_NUM;
-        keys.single_key = single_key;
-
-        key_init(&keys);
-
-        if (GPIO_INPUT_GET(GPIO_ID_PIN(SENSOR_KEY_IO_NUM)) == 0) {
-            user_sensor_long_press();
-        }
-    }
-
-#if HUMITURE_SUB_DEVICE
-    user_mvh3004_init();
-    user_mvh3004_read_th(humiture_data);
-#endif
-
-#ifdef SENSOR_DEEP_SLEEP
-    if (wifi_get_opmode() != STATIONAP_MODE) {
-        if (active == 1) {
-            user_sensor_deep_sleep_init(SENSOR_DEEP_SLEEP_TIME / 1000 );
-        } else {
-            user_sensor_deep_sleep_init(SENSOR_DEEP_SLEEP_TIME / 1000 / 3 * 2);
-        }
-    }
-#endif
-}
-#endif
-

+ 0 - 1790
sdk/esp_iot_sdk_v1.4.0/examples/IoT_Demo/user/user_webserver.c

@@ -1,1790 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_webserver.c
- *
- * Description: The web server mode configration.
- *              Check your hardware connection with the host while use this mode.
- * Modification history:
- *     2014/3/12, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "osapi.h"
-#include "mem.h"
-#include "user_interface.h"
-
-#include "user_iot_version.h"
-#include "espconn.h"
-#include "user_json.h"
-#include "user_webserver.h"
-
-#include "upgrade.h"
-#if ESP_PLATFORM
-#include "user_esp_platform.h"
-#endif
-
-#ifdef SERVER_SSL_ENABLE
-#include "ssl/cert.h"
-#include "ssl/private_key.h"
-#endif
-
-#if LIGHT_DEVICE
-#include "user_light.h"
-#endif
-
-LOCAL struct station_config *sta_conf;
-LOCAL struct softap_config *ap_conf;
-
-//LOCAL struct secrty_server_info *sec_server;
-//LOCAL struct upgrade_server_info *server;
-//struct lewei_login_info *login_info;
-LOCAL scaninfo *pscaninfo;
-struct bss_info *bss;
-struct bss_info *bss_temp;
-struct bss_info *bss_head;
-
-extern u16 scannum;
-
-LOCAL uint32 PostCmdNeeRsp = 1;
-
-uint8 upgrade_lock = 0;
-LOCAL os_timer_t app_upgrade_10s;
-LOCAL os_timer_t upgrade_check_timer;
-
-/******************************************************************************
- * FunctionName : device_get
- * Description  : set up the device information parmer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-device_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-
-    if (os_strncmp(path, "manufacture", 11) == 0) {
-        jsontree_write_string(js_ctx, "Espressif Systems");
-    } else if (os_strncmp(path, "product", 7) == 0) {
-#if SENSOR_DEVICE
-#if HUMITURE_SUB_DEVICE
-        jsontree_write_string(js_ctx, "Humiture");
-#elif FLAMMABLE_GAS_SUB_DEVICE
-        jsontree_write_string(js_ctx, "Flammable Gas");
-#endif
-#endif
-#if PLUG_DEVICE
-        jsontree_write_string(js_ctx, "Plug");
-#endif
-#if LIGHT_DEVICE
-        jsontree_write_string(js_ctx, "Light");
-#endif
-    }
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback device_callback =
-    JSONTREE_CALLBACK(device_get, NULL);
-/******************************************************************************
- * FunctionName : userbin_get
- * Description  : get up the user bin paramer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-userbin_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-    char string[32];
-
-    if (os_strncmp(path, "status", 8) == 0) {
-        os_sprintf(string, "200");
-    } else if (os_strncmp(path, "user_bin", 8) == 0) {
-    	if (system_upgrade_userbin_check() == 0x00) {
-    		 os_sprintf(string, "user1.bin");
-    	} else if (system_upgrade_userbin_check() == 0x01) {
-    		 os_sprintf(string, "user2.bin");
-    	} else{
-    		return 0;
-    	}
-    }
-
-    jsontree_write_string(js_ctx, string);
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback userbin_callback =
-    JSONTREE_CALLBACK(userbin_get, NULL);
-
-JSONTREE_OBJECT(userbin_tree,
-                JSONTREE_PAIR("status", &userbin_callback),
-                JSONTREE_PAIR("user_bin", &userbin_callback));
-JSONTREE_OBJECT(userinfo_tree,JSONTREE_PAIR("user_info",&userbin_tree));
-/******************************************************************************
- * FunctionName : version_get
- * Description  : set up the device version paramer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-version_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-    char string[32];
-
-    if (os_strncmp(path, "hardware", 8) == 0) {
-#if SENSOR_DEVICE
-        os_sprintf(string, "0.3");
-#else
-        os_sprintf(string, "0.1");
-#endif
-    } else if (os_strncmp(path, "sdk_version", 11) == 0) {
-        os_sprintf(string, "%s", system_get_sdk_version());
-    } else if (os_strncmp(path, "iot_version", 11) == 0) {
-    	os_sprintf(string,"%s%d.%d.%dt%d(%s)",VERSION_TYPE,IOT_VERSION_MAJOR,\
-    	IOT_VERSION_MINOR,IOT_VERSION_REVISION,device_type,UPGRADE_FALG);
-    }
-
-    jsontree_write_string(js_ctx, string);
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback version_callback =
-    JSONTREE_CALLBACK(version_get, NULL);
-
-JSONTREE_OBJECT(device_tree,
-                JSONTREE_PAIR("product", &device_callback),
-                JSONTREE_PAIR("manufacturer", &device_callback));
-JSONTREE_OBJECT(version_tree,
-                JSONTREE_PAIR("hardware", &version_callback),
-                JSONTREE_PAIR("sdk_version", &version_callback),
-                JSONTREE_PAIR("iot_version", &version_callback),
-                );
-JSONTREE_OBJECT(info_tree,
-                JSONTREE_PAIR("Version", &version_tree),
-                JSONTREE_PAIR("Device", &device_tree));
-
-JSONTREE_OBJECT(INFOTree,
-                JSONTREE_PAIR("info", &info_tree));
-
-LOCAL int ICACHE_FLASH_ATTR
-connect_status_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-
-    if (os_strncmp(path, "status", 8) == 0) {
-        jsontree_write_int(js_ctx, user_esp_platform_get_connect_status());
-    }
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback connect_status_callback =
-    JSONTREE_CALLBACK(connect_status_get, NULL);
-
-JSONTREE_OBJECT(status_sub_tree,
-                JSONTREE_PAIR("status", &connect_status_callback));
-
-JSONTREE_OBJECT(connect_status_tree,
-                JSONTREE_PAIR("Status", &status_sub_tree));
-
-JSONTREE_OBJECT(con_status_tree,
-                JSONTREE_PAIR("info", &connect_status_tree));
-
-#if PLUG_DEVICE
-/******************************************************************************
- * FunctionName : status_get
- * Description  : set up the device status as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-status_get(struct jsontree_context *js_ctx)
-{
-    if (user_plug_get_status() == 1) {
-        jsontree_write_int(js_ctx, 1);
-    } else {
-        jsontree_write_int(js_ctx, 0);
-    }
-
-    return 0;
-}
-
-/******************************************************************************
- * FunctionName : status_set
- * Description  : parse the device status parmer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- *                parser -- A pointer to a JSON parser state
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-status_set(struct jsontree_context *js_ctx, struct jsonparse_state *parser)
-{
-    int type;
-
-    while ((type = jsonparse_next(parser)) != 0) {
-        if (type == JSON_TYPE_PAIR_NAME) {
-            if (jsonparse_strcmp_value(parser, "status") == 0) {
-                uint8 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                user_plug_set_status(status);
-            }
-        }
-    }
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback status_callback =
-    JSONTREE_CALLBACK(status_get, status_set);
-
-JSONTREE_OBJECT(status_tree,
-                JSONTREE_PAIR("status", &status_callback));
-JSONTREE_OBJECT(response_tree,
-                JSONTREE_PAIR("Response", &status_tree));
-JSONTREE_OBJECT(StatusTree,
-                JSONTREE_PAIR("switch", &response_tree));
-#endif
-
-#if LIGHT_DEVICE
-LOCAL int ICACHE_FLASH_ATTR
-light_status_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-
-    if (os_strncmp(path, "red", 3) == 0) {
-        jsontree_write_int(js_ctx, user_light_get_duty(LIGHT_RED));
-    } else if (os_strncmp(path, "green", 5) == 0) {
-        jsontree_write_int(js_ctx, user_light_get_duty(LIGHT_GREEN));
-    } else if (os_strncmp(path, "blue", 4) == 0) {
-        jsontree_write_int(js_ctx, user_light_get_duty(LIGHT_BLUE));
-    } else if (os_strncmp(path, "wwhite", 6) == 0) {
-        if(PWM_CHANNEL>LIGHT_WARM_WHITE){
-            jsontree_write_int(js_ctx, user_light_get_duty(LIGHT_WARM_WHITE));
-        }else{
-            jsontree_write_int(js_ctx, 0);
-        }
-    } else if (os_strncmp(path, "cwhite", 6) == 0) {
-        if(PWM_CHANNEL>LIGHT_COLD_WHITE){
-            jsontree_write_int(js_ctx, user_light_get_duty(LIGHT_COLD_WHITE));
-        }else{
-            jsontree_write_int(js_ctx, 0);
-        }
-    } else if (os_strncmp(path, "period", 6) == 0) {
-        jsontree_write_int(js_ctx, user_light_get_period());
-    }
-
-    return 0;
-}
-
-LOCAL int ICACHE_FLASH_ATTR
-light_status_set(struct jsontree_context *js_ctx, struct jsonparse_state *parser)
-{
-    int type;
-    static uint32 r,g,b,cw,ww,period;
-    period = 1000;
-    cw=0;
-    ww=0;
-    extern uint8 light_sleep_flg;
-    
-    while ((type = jsonparse_next(parser)) != 0) {
-        if (type == JSON_TYPE_PAIR_NAME) {
-            if (jsonparse_strcmp_value(parser, "red") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                r=status;
-                os_printf("R: %d \n",status);
-                //user_light_set_duty(status, LIGHT_RED);
-                //light_set_aim_r( r);
-            } else if (jsonparse_strcmp_value(parser, "green") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                g=status;
-                os_printf("G: %d \n",status);
-                //user_light_set_duty(status, LIGHT_GREEN);
-                //light_set_aim_g( g);
-            } else if (jsonparse_strcmp_value(parser, "blue") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                b=status;
-                os_printf("B: %d \n",status);
-                //user_light_set_duty(status, LIGHT_BLUE);
-                //set_aim_b( b);
-            } else if (jsonparse_strcmp_value(parser, "cwhite") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                cw=status;
-                os_printf("CW: %d \n",status);
-                //user_light_set_duty(status, LIGHT_BLUE);
-                //set_aim_b( b);
-            } else if (jsonparse_strcmp_value(parser, "wwhite") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                ww=status;
-                os_printf("WW: %d \n",status);
-                //user_light_set_duty(status, LIGHT_BLUE);
-                //set_aim_b( b);
-            } else if (jsonparse_strcmp_value(parser, "period") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                os_printf("PERIOD: %d \n",status);
-                period=status;
-                //user_light_set_period(status);
-            }else if (jsonparse_strcmp_value(parser, "response") == 0) {
-                uint32 status;
-                jsonparse_next(parser);
-                jsonparse_next(parser);
-                status = jsonparse_get_value_as_int(parser);
-                os_printf("rspneed: %d \n",status);
-                PostCmdNeeRsp = status;
-                
-            }
-        }
-    }
-
-    if((r|g|b|ww|cw) == 0){
-        if(light_sleep_flg==0){
-
-        }
-        
-    }else{
-        if(light_sleep_flg==1){
-            os_printf("modem sleep en\r\n");
-            wifi_set_sleep_type(MODEM_SLEEP_T);
-            light_sleep_flg =0;
-        }
-    }
-    light_set_aim(r,g,b,cw,ww,period);
-    return 0;
-}
-
-LOCAL struct jsontree_callback light_callback =
-    JSONTREE_CALLBACK(light_status_get, light_status_set);
-
-JSONTREE_OBJECT(rgb_tree,
-                JSONTREE_PAIR("red", &light_callback),
-                JSONTREE_PAIR("green", &light_callback),
-                JSONTREE_PAIR("blue", &light_callback),
-                JSONTREE_PAIR("cwhite", &light_callback),
-                JSONTREE_PAIR("wwhite", &light_callback),
-                );
-JSONTREE_OBJECT(sta_tree,
-                JSONTREE_PAIR("period", &light_callback),
-                JSONTREE_PAIR("rgb", &rgb_tree));
-JSONTREE_OBJECT(PwmTree,
-                JSONTREE_PAIR("light", &sta_tree));
-#endif
-
-/******************************************************************************
- * FunctionName : wifi_station_get
- * Description  : set up the station paramer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-wifi_station_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-    struct ip_info ipconfig;
-    uint8 buf[20];
-    os_bzero(buf, sizeof(buf));
-    wifi_station_get_config(sta_conf);
-    wifi_get_ip_info(STATION_IF, &ipconfig);
-
-    if (os_strncmp(path, "ssid", 4) == 0) {
-        jsontree_write_string(js_ctx, sta_conf->ssid);
-    } else if (os_strncmp(path, "password", 8) == 0) {
-        jsontree_write_string(js_ctx, sta_conf->password);
-    } else if (os_strncmp(path, "ip", 2) == 0) {
-        os_sprintf(buf, IPSTR, IP2STR(&ipconfig.ip));
-        jsontree_write_string(js_ctx, buf);
-    } else if (os_strncmp(path, "mask", 4) == 0) {
-        os_sprintf(buf, IPSTR, IP2STR(&ipconfig.netmask));
-        jsontree_write_string(js_ctx, buf);
-    } else if (os_strncmp(path, "gw", 2) == 0) {
-        os_sprintf(buf, IPSTR, IP2STR(&ipconfig.gw));
-        jsontree_write_string(js_ctx, buf);
-    }
-
-    return 0;
-}
-
-/******************************************************************************
- * FunctionName : wifi_station_set
- * Description  : parse the station parmer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- *                parser -- A pointer to a JSON parser state
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-wifi_station_set(struct jsontree_context *js_ctx, struct jsonparse_state *parser)
-{
-    int type;
-    uint8 station_tree;
-
-    while ((type = jsonparse_next(parser)) != 0) {
-        if (type == JSON_TYPE_PAIR_NAME) {
-            char buffer[64];
-            os_bzero(buffer, 64);
-
-            if (jsonparse_strcmp_value(parser, "Station") == 0) {
-                station_tree = 1;
-            } else if (jsonparse_strcmp_value(parser, "Softap") == 0) {
-                station_tree = 0;
-            }
-
-            if (station_tree) {
-                if (jsonparse_strcmp_value(parser, "ssid") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    jsonparse_copy_value(parser, buffer, sizeof(buffer));
-                    os_memcpy(sta_conf->ssid, buffer, os_strlen(buffer));
-                } else if (jsonparse_strcmp_value(parser, "password") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    jsonparse_copy_value(parser, buffer, sizeof(buffer));
-                    os_memcpy(sta_conf->password, buffer, os_strlen(buffer));
-                }
-
-#if ESP_PLATFORM
-
-                else if (jsonparse_strcmp_value(parser, "token") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    jsonparse_copy_value(parser, buffer, sizeof(buffer));
-                    user_esp_platform_set_token(buffer);
-                }
-
-#endif
-            }
-        }
-    }
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback wifi_station_callback =
-    JSONTREE_CALLBACK(wifi_station_get, wifi_station_set);
-
-JSONTREE_OBJECT(get_station_config_tree,
-                JSONTREE_PAIR("ssid", &wifi_station_callback),
-                JSONTREE_PAIR("password", &wifi_station_callback));
-JSONTREE_OBJECT(set_station_config_tree,
-                JSONTREE_PAIR("ssid", &wifi_station_callback),
-                JSONTREE_PAIR("password", &wifi_station_callback),
-                JSONTREE_PAIR("token", &wifi_station_callback));
-
-JSONTREE_OBJECT(ip_tree,
-                JSONTREE_PAIR("ip", &wifi_station_callback),
-                JSONTREE_PAIR("mask", &wifi_station_callback),
-                JSONTREE_PAIR("gw", &wifi_station_callback));
-JSONTREE_OBJECT(get_station_tree,
-                JSONTREE_PAIR("Connect_Station", &get_station_config_tree),
-                JSONTREE_PAIR("Ipinfo_Station", &ip_tree));
-JSONTREE_OBJECT(set_station_tree,
-                JSONTREE_PAIR("Connect_Station", &set_station_config_tree));
-
-//JSONTREE_OBJECT(get_wifi_station_info_tree,
-//                JSONTREE_PAIR("Station", &get_station_tree));
-//JSONTREE_OBJECT(set_wifi_station_info_tree,
-//                JSONTREE_PAIR("station", &set_station_tree));
-
-/******************************************************************************
- * FunctionName : wifi_softap_get
- * Description  : set up the softap paramer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-wifi_softap_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-    struct ip_info ipconfig;
-    uint8 buf[20];
-    os_bzero(buf, sizeof(buf));
-    wifi_softap_get_config(ap_conf);
-    wifi_get_ip_info(SOFTAP_IF, &ipconfig);
-
-    if (os_strncmp(path, "ssid", 4) == 0) {
-        jsontree_write_string(js_ctx, ap_conf->ssid);
-    } else if (os_strncmp(path, "password", 8) == 0) {
-        jsontree_write_string(js_ctx, ap_conf->password);
-    } else if (os_strncmp(path, "channel", 7) == 0) {
-        jsontree_write_int(js_ctx, ap_conf->channel);
-    } else if (os_strncmp(path, "authmode", 8) == 0) {
-        switch (ap_conf->authmode) {
-            case AUTH_OPEN:
-                jsontree_write_string(js_ctx, "OPEN");
-                break;
-
-            case AUTH_WEP:
-                jsontree_write_string(js_ctx, "WEP");
-                break;
-
-            case AUTH_WPA_PSK:
-                jsontree_write_string(js_ctx, "WPAPSK");
-                break;
-
-            case AUTH_WPA2_PSK:
-                jsontree_write_string(js_ctx, "WPA2PSK");
-                break;
-
-            case AUTH_WPA_WPA2_PSK:
-                jsontree_write_string(js_ctx, "WPAPSK/WPA2PSK");
-                break;
-
-            default :
-                jsontree_write_int(js_ctx, ap_conf->authmode);
-                break;
-        }
-    } else if (os_strncmp(path, "ip", 2) == 0) {
-        os_sprintf(buf, IPSTR, IP2STR(&ipconfig.ip));
-        jsontree_write_string(js_ctx, buf);
-    } else if (os_strncmp(path, "mask", 4) == 0) {
-        os_sprintf(buf, IPSTR, IP2STR(&ipconfig.netmask));
-        jsontree_write_string(js_ctx, buf);
-    } else if (os_strncmp(path, "gw", 2) == 0) {
-        os_sprintf(buf, IPSTR, IP2STR(&ipconfig.gw));
-        jsontree_write_string(js_ctx, buf);
-    }
-
-    return 0;
-}
-
-/******************************************************************************
- * FunctionName : wifi_softap_set
- * Description  : parse the softap parmer as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- *                parser -- A pointer to a JSON parser state
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-wifi_softap_set(struct jsontree_context *js_ctx, struct jsonparse_state *parser)
-{
-    int type;
-    uint8 softap_tree;
-
-    while ((type = jsonparse_next(parser)) != 0) {
-        if (type == JSON_TYPE_PAIR_NAME) {
-            char buffer[64];
-            os_bzero(buffer, 64);
-
-            if (jsonparse_strcmp_value(parser, "Station") == 0) {
-                softap_tree = 0;
-            } else if (jsonparse_strcmp_value(parser, "Softap") == 0) {
-                softap_tree = 1;
-            }
-
-            if (softap_tree) {
-                if (jsonparse_strcmp_value(parser, "authmode") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    jsonparse_copy_value(parser, buffer, sizeof(buffer));
-
-                    // other mode will be supported later...
-                    if (os_strcmp(buffer, "OPEN") == 0) {
-                        ap_conf->authmode = AUTH_OPEN;
-                    } else if (os_strcmp(buffer, "WPAPSK") == 0) {
-                        ap_conf->authmode = AUTH_WPA_PSK;
-                        os_printf("%d %s\n", ap_conf->authmode, buffer);
-                    } else if (os_strcmp(buffer, "WPA2PSK") == 0) {
-                        ap_conf->authmode = AUTH_WPA2_PSK;
-                    } else if (os_strcmp(buffer, "WPAPSK/WPA2PSK") == 0) {
-                        ap_conf->authmode = AUTH_WPA_WPA2_PSK;
-                    } else {
-                        ap_conf->authmode = AUTH_OPEN;
-                        return 0;
-                    }
-                }
-
-                if (jsonparse_strcmp_value(parser, "channel") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    ap_conf->channel = jsonparse_get_value_as_int(parser);
-                } else if (jsonparse_strcmp_value(parser, "ssid") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    jsonparse_copy_value(parser, buffer, sizeof(buffer));
-                    os_memcpy(ap_conf->ssid, buffer, os_strlen(buffer));
-                } else if (jsonparse_strcmp_value(parser, "password") == 0) {
-                    jsonparse_next(parser);
-                    jsonparse_next(parser);
-                    jsonparse_copy_value(parser, buffer, sizeof(buffer));
-                    os_memcpy(ap_conf->password, buffer, os_strlen(buffer));
-                }
-            }
-        }
-    }
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback wifi_softap_callback =
-    JSONTREE_CALLBACK(wifi_softap_get, wifi_softap_set);
-
-JSONTREE_OBJECT(softap_config_tree,
-                JSONTREE_PAIR("authmode", &wifi_softap_callback),
-                JSONTREE_PAIR("channel", &wifi_softap_callback),
-                JSONTREE_PAIR("ssid", &wifi_softap_callback),
-                JSONTREE_PAIR("password", &wifi_softap_callback));
-JSONTREE_OBJECT(softap_ip_tree,
-                JSONTREE_PAIR("ip", &wifi_softap_callback),
-                JSONTREE_PAIR("mask", &wifi_softap_callback),
-                JSONTREE_PAIR("gw", &wifi_softap_callback));
-JSONTREE_OBJECT(get_softap_tree,
-                JSONTREE_PAIR("Connect_Softap", &softap_config_tree),
-                JSONTREE_PAIR("Ipinfo_Softap", &softap_ip_tree));
-JSONTREE_OBJECT(set_softap_tree,
-                JSONTREE_PAIR("Ipinfo_Softap", &softap_config_tree));
-
-JSONTREE_OBJECT(get_wifi_tree,
-                JSONTREE_PAIR("Station", &get_station_tree),
-                JSONTREE_PAIR("Softap", &get_softap_tree));
-JSONTREE_OBJECT(set_wifi_tree,
-                JSONTREE_PAIR("Station", &set_station_tree),
-                JSONTREE_PAIR("Softap", &set_softap_tree));
-
-JSONTREE_OBJECT(wifi_response_tree,
-                JSONTREE_PAIR("Response", &get_wifi_tree));
-JSONTREE_OBJECT(wifi_request_tree,
-                JSONTREE_PAIR("Request", &set_wifi_tree));
-
-JSONTREE_OBJECT(wifi_info_tree,
-                JSONTREE_PAIR("wifi", &wifi_response_tree));
-JSONTREE_OBJECT(wifi_req_tree,
-                JSONTREE_PAIR("wifi", &wifi_request_tree));
-
-
-/******************************************************************************
- * FunctionName : scan_get
- * Description  : set up the scan data as a JSON format
- * Parameters   : js_ctx -- A pointer to a JSON set up
- * Returns      : result
-*******************************************************************************/
-LOCAL int ICACHE_FLASH_ATTR
-scan_get(struct jsontree_context *js_ctx)
-{
-    const char *path = jsontree_path_name(js_ctx, js_ctx->depth - 1);
-    //    STAILQ_HEAD(, bss_info) *pbss = scanarg;
-//    LOCAL struct bss_info *bss;
-
-    if (os_strncmp(path, "TotalPage", 9) == 0) {
-        jsontree_write_int(js_ctx, pscaninfo->totalpage);
-    } else if (os_strncmp(path, "PageNum", 7) == 0) {
-        jsontree_write_int(js_ctx, pscaninfo->pagenum);
-    } else if (os_strncmp(path, "bssid", 5) == 0) {
-    	if( bss == NULL )
-    		bss = bss_head;
-        u8 buffer[32];
-        //if (bss != NULL){
-        os_memset(buffer, 0, sizeof(buffer));
-        os_sprintf(buffer, MACSTR, MAC2STR(bss->bssid));
-        jsontree_write_string(js_ctx, buffer);
-        //}
-    } else if (os_strncmp(path, "ssid", 4) == 0) {
-        //if (bss != NULL)
-        jsontree_write_string(js_ctx, bss->ssid);
-    } else if (os_strncmp(path, "rssi", 4) == 0) {
-        //if (bss != NULL)
-        jsontree_write_int(js_ctx, -(bss->rssi));
-    } else if (os_strncmp(path, "channel", 7) == 0) {
-        //if (bss != NULL)
-        jsontree_write_int(js_ctx, bss->channel);
-    } else if (os_strncmp(path, "authmode", 8) == 0) {
-        //if (bss != NULL){
-        switch (bss->authmode) {
-            case AUTH_OPEN:
-                jsontree_write_string(js_ctx, "OPEN");
-                break;
-
-            case AUTH_WEP:
-                jsontree_write_string(js_ctx, "WEP");
-                break;
-
-            case AUTH_WPA_PSK:
-                jsontree_write_string(js_ctx, "WPAPSK");
-                break;
-
-            case AUTH_WPA2_PSK:
-                jsontree_write_string(js_ctx, "WPA2PSK");
-                break;
-
-            case AUTH_WPA_WPA2_PSK:
-                jsontree_write_string(js_ctx, "WPAPSK/WPA2PSK");
-                break;
-
-            default :
-                jsontree_write_int(js_ctx, bss->authmode);
-                break;
-        }
-
-        bss = STAILQ_NEXT(bss, next);
-//        os_free(bss);
-        //}
-    }
-
-    return 0;
-}
-
-LOCAL struct jsontree_callback scan_callback =
-    JSONTREE_CALLBACK(scan_get, NULL);
-
-JSONTREE_OBJECT(scaninfo_tree,
-                JSONTREE_PAIR("bssid", &scan_callback),
-                JSONTREE_PAIR("ssid", &scan_callback),
-                JSONTREE_PAIR("rssi", &scan_callback),
-                JSONTREE_PAIR("channel", &scan_callback),
-                JSONTREE_PAIR("authmode", &scan_callback));
-JSONTREE_ARRAY(scanrslt_tree,
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree),
-               JSONTREE_PAIR_ARRAY(&scaninfo_tree));
-
-JSONTREE_OBJECT(scantree,
-                JSONTREE_PAIR("TotalPage", &scan_callback),
-                JSONTREE_PAIR("PageNum", &scan_callback),
-                JSONTREE_PAIR("ScanResult", &scanrslt_tree));
-JSONTREE_OBJECT(scanres_tree,
-                JSONTREE_PAIR("Response", &scantree));
-JSONTREE_OBJECT(scan_tree,
-                JSONTREE_PAIR("scan", &scanres_tree));
-
-/******************************************************************************
- * FunctionName : parse_url
- * Description  : parse the received data from the server
- * Parameters   : precv -- the received data
- *                purl_frame -- the result of parsing the url
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-parse_url(char *precv, URL_Frame *purl_frame)
-{
-    char *str = NULL;
-    uint8 length = 0;
-    char *pbuffer = NULL;
-    char *pbufer = NULL;
-
-    if (purl_frame == NULL || precv == NULL) {
-        return;
-    }
-
-    pbuffer = (char *)os_strstr(precv, "Host:");
-
-    if (pbuffer != NULL) {
-        length = pbuffer - precv;
-        pbufer = (char *)os_zalloc(length + 1);
-        pbuffer = pbufer;
-        os_memcpy(pbuffer, precv, length);
-        os_memset(purl_frame->pSelect, 0, URLSize);
-        os_memset(purl_frame->pCommand, 0, URLSize);
-        os_memset(purl_frame->pFilename, 0, URLSize);
-
-        if (os_strncmp(pbuffer, "GET ", 4) == 0) {
-            purl_frame->Type = GET;
-            pbuffer += 4;
-        } else if (os_strncmp(pbuffer, "POST ", 5) == 0) {
-            purl_frame->Type = POST;
-            pbuffer += 5;
-        }
-
-        pbuffer ++;
-        str = (char *)os_strstr(pbuffer, "?");
-
-        if (str != NULL) {
-            length = str - pbuffer;
-            os_memcpy(purl_frame->pSelect, pbuffer, length);
-            str ++;
-            pbuffer = (char *)os_strstr(str, "=");
-
-            if (pbuffer != NULL) {
-                length = pbuffer - str;
-                os_memcpy(purl_frame->pCommand, str, length);
-                pbuffer ++;
-                str = (char *)os_strstr(pbuffer, "&");
-
-                if (str != NULL) {
-                    length = str - pbuffer;
-                    os_memcpy(purl_frame->pFilename, pbuffer, length);
-                } else {
-                    str = (char *)os_strstr(pbuffer, " HTTP");
-
-                    if (str != NULL) {
-                        length = str - pbuffer;
-                        os_memcpy(purl_frame->pFilename, pbuffer, length);
-                    }
-                }
-            }
-        }
-
-        os_free(pbufer);
-    } else {
-        return;
-    }
-}
-
-LOCAL char *precvbuffer;
-static uint32 dat_sumlength = 0;
-LOCAL bool ICACHE_FLASH_ATTR
-save_data(char *precv, uint16 length)
-{
-    bool flag = false;
-    char length_buf[10] = {0};
-    char *ptemp = NULL;
-    char *pdata = NULL;
-    uint16 headlength = 0;
-    static uint32 totallength = 0;
-
-    ptemp = (char *)os_strstr(precv, "\r\n\r\n");
-
-    if (ptemp != NULL) {
-        length -= ptemp - precv;
-        length -= 4;
-        totallength += length;
-        headlength = ptemp - precv + 4;
-        pdata = (char *)os_strstr(precv, "Content-Length: ");
-
-        if (pdata != NULL) {
-            pdata += 16;
-            precvbuffer = (char *)os_strstr(pdata, "\r\n");
-
-            if (precvbuffer != NULL) {
-                os_memcpy(length_buf, pdata, precvbuffer - pdata);
-                dat_sumlength = atoi(length_buf);
-            }
-        } else {
-        	if (totallength != 0x00){
-        		totallength = 0;
-        		dat_sumlength = 0;
-        		return false;
-        	}
-        }
-        if ((dat_sumlength + headlength) >= 1024) {
-        	precvbuffer = (char *)os_zalloc(headlength + 1);
-            os_memcpy(precvbuffer, precv, headlength + 1);
-        } else {
-        	precvbuffer = (char *)os_zalloc(dat_sumlength + headlength + 1);
-        	os_memcpy(precvbuffer, precv, os_strlen(precv));
-        }
-    } else {
-        if (precvbuffer != NULL) {
-            totallength += length;
-            os_memcpy(precvbuffer + os_strlen(precvbuffer), precv, length);
-        } else {
-            totallength = 0;
-            dat_sumlength = 0;
-            return false;
-        }
-    }
-
-    if (totallength == dat_sumlength) {
-        totallength = 0;
-        dat_sumlength = 0;
-        return true;
-    } else {
-        return false;
-    }
-}
-
-LOCAL bool ICACHE_FLASH_ATTR
-check_data(char *precv, uint16 length)
-{
-        //bool flag = true;
-    char length_buf[10] = {0};
-    char *ptemp = NULL;
-    char *pdata = NULL;
-    char *tmp_precvbuffer;
-    uint16 tmp_length = length;
-    uint32 tmp_totallength = 0;
-    
-    ptemp = (char *)os_strstr(precv, "\r\n\r\n");
-    
-    if (ptemp != NULL) {
-        tmp_length -= ptemp - precv;
-        tmp_length -= 4;
-        tmp_totallength += tmp_length;
-        
-        pdata = (char *)os_strstr(precv, "Content-Length: ");
-        
-        if (pdata != NULL){
-            pdata += 16;
-            tmp_precvbuffer = (char *)os_strstr(pdata, "\r\n");
-            
-            if (tmp_precvbuffer != NULL){
-                os_memcpy(length_buf, pdata, tmp_precvbuffer - pdata);
-                dat_sumlength = atoi(length_buf);
-                os_printf("A_dat:%u,tot:%u,lenght:%u\n",dat_sumlength,tmp_totallength,tmp_length);
-                if(dat_sumlength != tmp_totallength){
-                    return false;
-                }
-            }
-        }
-    }
-    return true;
-}
-
-LOCAL os_timer_t *restart_10ms;
-LOCAL rst_parm *rstparm;
-
-/******************************************************************************
- * FunctionName : restart_10ms_cb
- * Description  : system restart or wifi reconnected after a certain time.
- * Parameters   : arg -- Additional argument to pass to the function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-restart_10ms_cb(void *arg)
-{
-    if (rstparm != NULL && rstparm->pespconn != NULL) {
-        switch (rstparm->parmtype) {
-            case WIFI:
-                //if (rstparm->pespconn->state == ESPCONN_CLOSE) {
-                    if (sta_conf->ssid[0] != 0x00) {
-                        wifi_station_set_config(sta_conf);
-                        wifi_station_disconnect();
-                        wifi_station_connect();
-                        user_esp_platform_check_ip(1);
-                    }
-
-                    if (ap_conf->ssid[0] != 0x00) {
-                        wifi_softap_set_config(ap_conf);
-                        system_restart();
-                    }
-
-                    os_free(ap_conf);
-                    ap_conf = NULL;
-                    os_free(sta_conf);
-                    sta_conf = NULL;
-                    os_free(rstparm);
-                    rstparm = NULL;
-                    os_free(restart_10ms);
-                    restart_10ms = NULL;
-                //} else {
-                //   os_timer_arm(restart_10ms, 10, 0);
-                //}
-
-                break;
-
-            case DEEP_SLEEP:
-            case REBOOT:
-                if (rstparm->pespconn->state == ESPCONN_CLOSE) {
-                    wifi_set_opmode(STATION_MODE);
-
-                    if (rstparm->parmtype == DEEP_SLEEP) {
-#if SENSOR_DEVICE
-                        system_deep_sleep(SENSOR_DEEP_SLEEP_TIME);
-#endif
-                    }
-                } else {
-                    os_timer_arm(restart_10ms, 10, 0);
-                }
-
-                break;
-
-            default:
-                break;
-        }
-    }
-}
-
-/******************************************************************************
- * FunctionName : data_send
- * Description  : processing the data as http format and send to the client or server
- * Parameters   : arg -- argument to set for client or server
- *                responseOK -- true or false
- *                psend -- The send data
- * Returns      :
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-data_send(void *arg, bool responseOK, char *psend)
-{
-    uint16 length = 0;
-    char *pbuf = NULL;
-    char httphead[256];
-    struct espconn *ptrespconn = arg;
-    os_memset(httphead, 0, 256);
-
-    if (responseOK) {
-        os_sprintf(httphead,
-                   "HTTP/1.0 200 OK\r\nContent-Length: %d\r\nServer: lwIP/1.4.0\r\n",
-                   psend ? os_strlen(psend) : 0);
-
-        if (psend) {
-            os_sprintf(httphead + os_strlen(httphead),
-                       "Content-type: application/json\r\nExpires: Fri, 10 Apr 2008 14:00:00 GMT\r\nPragma: no-cache\r\n\r\n");
-            length = os_strlen(httphead) + os_strlen(psend);
-            pbuf = (char *)os_zalloc(length + 1);
-            os_memcpy(pbuf, httphead, os_strlen(httphead));
-            os_memcpy(pbuf + os_strlen(httphead), psend, os_strlen(psend));
-        } else {
-            os_sprintf(httphead + os_strlen(httphead), "\n");
-            length = os_strlen(httphead);
-        }
-    } else {
-        os_sprintf(httphead, "HTTP/1.0 400 BadRequest\r\n\
-Content-Length: 0\r\nServer: lwIP/1.4.0\r\n\n");
-        length = os_strlen(httphead);
-    }
-
-    if (psend) {
-#ifdef SERVER_SSL_ENABLE
-        espconn_secure_sent(ptrespconn, pbuf, length);
-#else
-        espconn_sent(ptrespconn, pbuf, length);
-#endif
-    } else {
-#ifdef SERVER_SSL_ENABLE
-        espconn_secure_sent(ptrespconn, httphead, length);
-#else
-        espconn_sent(ptrespconn, httphead, length);
-#endif
-    }
-
-    if (pbuf) {
-        os_free(pbuf);
-        pbuf = NULL;
-    }
-}
-
-/******************************************************************************
- * FunctionName : json_send
- * Description  : processing the data as json format and send to the client or server
- * Parameters   : arg -- argument to set for client or server
- *                ParmType -- json format type
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-json_send(void *arg, ParmType ParmType)
-{
-    char *pbuf = NULL;
-    pbuf = (char *)os_zalloc(jsonSize);
-    struct espconn *ptrespconn = arg;
-
-    switch (ParmType) {
-#if LIGHT_DEVICE
-
-        case LIGHT_STATUS:
-            json_ws_send((struct jsontree_value *)&PwmTree, "light", pbuf);
-            break;
-#endif
-
-#if PLUG_DEVICE
-
-        case SWITCH_STATUS:
-            json_ws_send((struct jsontree_value *)&StatusTree, "switch", pbuf);
-            break;
-#endif
-
-        case INFOMATION:
-            json_ws_send((struct jsontree_value *)&INFOTree, "info", pbuf);
-            break;
-
-        case WIFI:
-            json_ws_send((struct jsontree_value *)&wifi_info_tree, "wifi", pbuf);
-            break;
-
-        case CONNECT_STATUS:
-            json_ws_send((struct jsontree_value *)&con_status_tree, "info", pbuf);
-            break;
-
-        case USER_BIN:
-        	json_ws_send((struct jsontree_value *)&userinfo_tree, "user_info", pbuf);
-        	break;
-        case SCAN: {
-            u8 i = 0;
-            u8 scancount = 0;
-            struct bss_info *bss = NULL;
-//            bss = STAILQ_FIRST(pscaninfo->pbss);
-            bss = bss_head;
-            if (bss == NULL) {
-                os_free(pscaninfo);
-                pscaninfo = NULL;
-                os_sprintf(pbuf, "{\n\"successful\": false,\n\"data\": null\n}");
-            } else {
-                do {
-                    if (pscaninfo->page_sn == pscaninfo->pagenum) {
-                        pscaninfo->page_sn = 0;
-                        os_sprintf(pbuf, "{\n\"successful\": false,\n\"meessage\": \"repeated page\"\n}");
-                        break;
-                    }
-
-                    scancount = scannum - (pscaninfo->pagenum - 1) * 8;
-
-                    if (scancount >= 8) {
-                        pscaninfo->data_cnt += 8;
-                        pscaninfo->page_sn = pscaninfo->pagenum;
-
-                        if (pscaninfo->data_cnt > scannum) {
-                            pscaninfo->data_cnt -= 8;
-                            os_sprintf(pbuf, "{\n\"successful\": false,\n\"meessage\": \"error page\"\n}");
-                            break;
-                        }
-
-                        json_ws_send((struct jsontree_value *)&scan_tree, "scan", pbuf);
-                    } else {
-                        pscaninfo->data_cnt += scancount;
-                        pscaninfo->page_sn = pscaninfo->pagenum;
-
-                        if (pscaninfo->data_cnt > scannum) {
-                            pscaninfo->data_cnt -= scancount;
-                            os_sprintf(pbuf, "{\n\"successful\": false,\n\"meessage\": \"error page\"\n}");
-                            break;
-                        }
-
-                        char *ptrscanbuf = (char *)os_zalloc(jsonSize);
-                        char *pscanbuf = ptrscanbuf;
-                        os_sprintf(pscanbuf, ",\n\"ScanResult\": [\n");
-                        pscanbuf += os_strlen(pscanbuf);
-
-                        for (i = 0; i < scancount; i ++) {
-                            JSONTREE_OBJECT(page_tree,
-                                            JSONTREE_PAIR("page", &scaninfo_tree));
-                            json_ws_send((struct jsontree_value *)&page_tree, "page", pscanbuf);
-                            os_sprintf(pscanbuf + os_strlen(pscanbuf), ",\n");
-                            pscanbuf += os_strlen(pscanbuf);
-                        }
-
-                        os_sprintf(pscanbuf - 2, "]\n");
-                        JSONTREE_OBJECT(scantree,
-                                        JSONTREE_PAIR("TotalPage", &scan_callback),
-                                        JSONTREE_PAIR("PageNum", &scan_callback));
-                        JSONTREE_OBJECT(scanres_tree,
-                                        JSONTREE_PAIR("Response", &scantree));
-                        JSONTREE_OBJECT(scan_tree,
-                                        JSONTREE_PAIR("scan", &scanres_tree));
-                        json_ws_send((struct jsontree_value *)&scan_tree, "scan", pbuf);
-                        os_memcpy(pbuf + os_strlen(pbuf) - 4, ptrscanbuf, os_strlen(ptrscanbuf));
-                        os_sprintf(pbuf + os_strlen(pbuf), "}\n}");
-                        os_free(ptrscanbuf);
-                    }
-                } while (0);
-            }
-
-            break;
-        }
-
-        default :
-            break;
-    }
-
-    data_send(ptrespconn, true, pbuf);
-    os_free(pbuf);
-    pbuf = NULL;
-}
-
-/******************************************************************************
- * FunctionName : response_send
- * Description  : processing the send result
- * Parameters   : arg -- argument to set for client or server
- *                responseOK --  true or false
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-response_send(void *arg, bool responseOK)
-{
-    struct espconn *ptrespconn = arg;
-
-    data_send(ptrespconn, responseOK, NULL);
-}
-
-/******************************************************************************
- * FunctionName : json_scan_cb
- * Description  : processing the scan result
- * Parameters   : arg -- Additional argument to pass to the callback function
- *                status -- scan status
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR json_scan_cb(void *arg, STATUS status)
-{
-    pscaninfo->pbss = arg;
-
-    if (scannum % 8 == 0) {
-        pscaninfo->totalpage = scannum / 8;
-    } else {
-        pscaninfo->totalpage = scannum / 8 + 1;
-    }
-
-    JSONTREE_OBJECT(totaltree,
-                    JSONTREE_PAIR("TotalPage", &scan_callback));
-    JSONTREE_OBJECT(totalres_tree,
-                    JSONTREE_PAIR("Response", &totaltree));
-    JSONTREE_OBJECT(total_tree,
-                    JSONTREE_PAIR("total", &totalres_tree));
-
-    bss_temp = bss_head;
-    while(bss_temp !=NULL) {
-    	bss_head = bss_temp->next.stqe_next;
-    	os_free(bss_temp);
-    	bss_temp = bss_head;
-    }
-    bss_head = NULL;
-    bss_temp = NULL;
-    bss = STAILQ_FIRST(pscaninfo->pbss);
-    while(bss != NULL) {
-    	if(bss_temp == NULL){
-    		bss_temp = (struct bss_info *)os_zalloc(sizeof(struct bss_info));
-    		bss_head = bss_temp;
-    	} else {
-    		bss_temp->next.stqe_next = (struct bss_info *)os_zalloc(sizeof(struct bss_info));
-    		bss_temp = bss_temp->next.stqe_next;
-    	}
-    	if(bss_temp == NULL) {
-    		os_printf("malloc scan info failed\n");
-    		break;
-    	} else{
-    		os_memcpy(bss_temp->bssid,bss->bssid,sizeof(bss->bssid));
-    		os_memcpy(bss_temp->ssid,bss->ssid,sizeof(bss->ssid));
-    		bss_temp->authmode = bss->authmode;
-    		bss_temp->rssi = bss->rssi;
-    		bss_temp->channel = bss->channel;
-    	}
-    	bss = STAILQ_NEXT(bss,next);
-    }
-    char *pbuf = NULL;
-    pbuf = (char *)os_zalloc(jsonSize);
-    json_ws_send((struct jsontree_value *)&total_tree, "total", pbuf);
-    data_send(pscaninfo->pespconn, true, pbuf);
-    os_free(pbuf);
-}
-
-void ICACHE_FLASH_ATTR
-upgrade_check_func(void *arg)
-{
-	struct espconn *ptrespconn = arg;
-	os_timer_disarm(&upgrade_check_timer);
-	if(system_upgrade_flag_check() == UPGRADE_FLAG_START) {
-		response_send(ptrespconn, false);
-        system_upgrade_deinit();
-        system_upgrade_flag_set(UPGRADE_FLAG_IDLE);
-        upgrade_lock = 0;
-		os_printf("local upgrade failed\n");
-	} else if( system_upgrade_flag_check() == UPGRADE_FLAG_FINISH ) {
-		os_printf("local upgrade success\n");
-		response_send(ptrespconn, true);
-		upgrade_lock = 0;
-	} else {
-
-	}
-
-
-}
-/******************************************************************************
- * FunctionName : upgrade_deinit
- * Description  : disconnect the connection with the host
- * Parameters   : bin -- server number
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-LOCAL local_upgrade_deinit(void)
-{
-    if (system_upgrade_flag_check() != UPGRADE_FLAG_START) {
-    	os_printf("system upgrade deinit\n");
-        system_upgrade_deinit();
-    }
-}
-
-
-/******************************************************************************
- * FunctionName : upgrade_download
- * Description  : Processing the upgrade data from the host
- * Parameters   : bin -- server number
- *                pusrdata -- The upgrade data (or NULL when the connection has been closed!)
- *                length -- The length of upgrade data
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-local_upgrade_download(void * arg,char *pusrdata, unsigned short length)
-{
-    char *ptr = NULL;
-    char *ptmp2 = NULL;
-    char lengthbuffer[32];
-    static uint32 totallength = 0;
-    static uint32 sumlength = 0;
-    static uint32 erase_length = 0;
-    char A_buf[2] = {0xE9 ,0x03}; char	B_buf[2] = {0xEA,0x04};
-    struct espconn *pespconn = arg;
-    if (totallength == 0 && (ptr = (char *)os_strstr(pusrdata, "\r\n\r\n")) != NULL &&
-            (ptr = (char *)os_strstr(pusrdata, "Content-Length")) != NULL) {
-    	ptr = (char *)os_strstr(pusrdata, "Content-Length: ");
-		if (ptr != NULL) {
-			ptr += 16;
-			ptmp2 = (char *)os_strstr(ptr, "\r\n");
-
-			if (ptmp2 != NULL) {
-				os_memset(lengthbuffer, 0, sizeof(lengthbuffer));
-				os_memcpy(lengthbuffer, ptr, ptmp2 - ptr);
-				sumlength = atoi(lengthbuffer);
-				if (sumlength == 0) {
-					os_timer_disarm(&upgrade_check_timer);
-					os_timer_setfn(&upgrade_check_timer, (os_timer_func_t *)upgrade_check_func, pespconn);
-					os_timer_arm(&upgrade_check_timer, 10, 0);
-					return;
-				}
-			} else {
-				os_printf("sumlength failed\n");
-			}
-		} else {
-			os_printf("Content-Length: failed\n");
-		}
-		if (sumlength != 0) {
-			if (sumlength >= LIMIT_ERASE_SIZE){
-				system_upgrade_erase_flash(0xFFFF);
-				erase_length = sumlength - LIMIT_ERASE_SIZE;
-			} else {
-			system_upgrade_erase_flash(sumlength);
-				erase_length = 0;
-			}
-		}
-        ptr = (char *)os_strstr(pusrdata, "\r\n\r\n");
-        length -= ptr - pusrdata;
-        length -= 4;
-        totallength += length;
-        os_printf("upgrade file download start.\n");
-        system_upgrade(ptr + 4, length);
-
-    } else {
-        totallength += length;
-        if (erase_length >= LIMIT_ERASE_SIZE){
-			system_upgrade_erase_flash(0xFFFF);
-			erase_length -= LIMIT_ERASE_SIZE;
-		} else {
-			system_upgrade_erase_flash(erase_length);
-			erase_length = 0;
-		}
-        system_upgrade(pusrdata, length);
-    }
-
-    if (totallength == sumlength) {
-        os_printf("upgrade file download finished.\n");
-        system_upgrade_flag_set(UPGRADE_FLAG_FINISH);
-        totallength = 0;
-        sumlength = 0;
-        upgrade_check_func(pespconn);
-        os_timer_disarm(&app_upgrade_10s);
-        os_timer_setfn(&app_upgrade_10s, (os_timer_func_t *)local_upgrade_deinit, NULL);
-        os_timer_arm(&app_upgrade_10s, 10, 0);
-    }
-}
-
-/******************************************************************************
- * FunctionName : webserver_recv
- * Description  : Processing the received data from the server
- * Parameters   : arg -- Additional argument to pass to the callback function
- *                pusrdata -- The received data (or NULL when the connection has been closed!)
- *                length -- The length of received data
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-webserver_recv(void *arg, char *pusrdata, unsigned short length)
-{
-    URL_Frame *pURL_Frame = NULL;
-    char *pParseBuffer = NULL;
-    bool parse_flag = false;
-    struct espconn *ptrespconn = arg;
-
-    if(upgrade_lock == 0){
-
-        os_printf("len:%u\n",length);
-        if(check_data(pusrdata, length) == false)
-        {
-            os_printf("goto\n");
-             goto _temp_exit;
-        }
-        
-    	 parse_flag = save_data(pusrdata, length);
-        if (parse_flag == false) {
-        	response_send(ptrespconn, false);
-        }
-
-//        os_printf(precvbuffer);
-        pURL_Frame = (URL_Frame *)os_zalloc(sizeof(URL_Frame));
-        parse_url(precvbuffer, pURL_Frame);
-
-        switch (pURL_Frame->Type) {
-            case GET:
-                os_printf("We have a GET request.\n");
-
-                if (os_strcmp(pURL_Frame->pSelect, "client") == 0 &&
-                        os_strcmp(pURL_Frame->pCommand, "command") == 0) {
-                    if (os_strcmp(pURL_Frame->pFilename, "info") == 0) {
-                        json_send(ptrespconn, INFOMATION);
-                    }
-
-                    if (os_strcmp(pURL_Frame->pFilename, "status") == 0) {
-                        json_send(ptrespconn, CONNECT_STATUS);
-                    } else if (os_strcmp(pURL_Frame->pFilename, "scan") == 0) {
-                        char *strstr = NULL;
-                        strstr = (char *)os_strstr(pusrdata, "&");
-
-                        if (strstr == NULL) {
-                            if (pscaninfo == NULL) {
-                                pscaninfo = (scaninfo *)os_zalloc(sizeof(scaninfo));
-                            }
-
-                            pscaninfo->pespconn = ptrespconn;
-                            pscaninfo->pagenum = 0;
-                            pscaninfo->page_sn = 0;
-                            pscaninfo->data_cnt = 0;
-                            wifi_station_scan(NULL, json_scan_cb);
-                        } else {
-                            strstr ++;
-
-                            if (os_strncmp(strstr, "page", 4) == 0) {
-                                if (pscaninfo != NULL) {
-                                    pscaninfo->pagenum = *(strstr + 5);
-                                    pscaninfo->pagenum -= 0x30;
-
-                                    if (pscaninfo->pagenum > pscaninfo->totalpage || pscaninfo->pagenum == 0) {
-                                        response_send(ptrespconn, false);
-                                    } else {
-                                        json_send(ptrespconn, SCAN);
-                                    }
-                                } else {
-                                    response_send(ptrespconn, false);
-                                }
-                            } else if(os_strncmp(strstr, "finish", 6) == 0){
-                            	bss_temp = bss_head;
-                            	while(bss_temp != NULL) {
-                            		bss_head = bss_temp->next.stqe_next;
-                            		os_free(bss_temp);
-                            		bss_temp = bss_head;
-                            	}
-                            	bss_head = NULL;
-                            	bss_temp = NULL;
-                            	response_send(ptrespconn, true);
-                            } else {
-                                response_send(ptrespconn, false);
-                            }
-                        }
-                    } else {
-                        response_send(ptrespconn, false);
-                    }
-                } else if (os_strcmp(pURL_Frame->pSelect, "config") == 0 &&
-                           os_strcmp(pURL_Frame->pCommand, "command") == 0) {
-                    if (os_strcmp(pURL_Frame->pFilename, "wifi") == 0) {
-                        ap_conf = (struct softap_config *)os_zalloc(sizeof(struct softap_config));
-                        sta_conf = (struct station_config *)os_zalloc(sizeof(struct station_config));
-                        json_send(ptrespconn, WIFI);
-                        os_free(sta_conf);
-                        os_free(ap_conf);
-                        sta_conf = NULL;
-                        ap_conf = NULL;
-                    }
-
-#if PLUG_DEVICE
-                    else if (os_strcmp(pURL_Frame->pFilename, "switch") == 0) {
-                        json_send(ptrespconn, SWITCH_STATUS);
-                    }
-
-#endif
-
-#if LIGHT_DEVICE
-                    else if (os_strcmp(pURL_Frame->pFilename, "light") == 0) {
-                        json_send(ptrespconn, LIGHT_STATUS);
-                    }
-                    
-
-#endif
-
-                    else if (os_strcmp(pURL_Frame->pFilename, "reboot") == 0) {
-                        json_send(ptrespconn, REBOOT);
-                    } else {
-                        response_send(ptrespconn, false);
-                    }
-                } else if (os_strcmp(pURL_Frame->pSelect, "upgrade") == 0 &&
-    					os_strcmp(pURL_Frame->pCommand, "command") == 0) {
-    					if (os_strcmp(pURL_Frame->pFilename, "getuser") == 0) {
-    						json_send(ptrespconn , USER_BIN);
-    					}
-    			} else {
-                    response_send(ptrespconn, false);
-                }
-
-                break;
-
-            case POST:
-                os_printf("We have a POST request.\n");
-                pParseBuffer = (char *)os_strstr(precvbuffer, "\r\n\r\n");
-
-                if (pParseBuffer == NULL) {
-                    break;
-                }
-
-                pParseBuffer += 4;
-
-                if (os_strcmp(pURL_Frame->pSelect, "config") == 0 &&
-                        os_strcmp(pURL_Frame->pCommand, "command") == 0) {
-#if SENSOR_DEVICE
-
-                    if (os_strcmp(pURL_Frame->pFilename, "sleep") == 0) {
-#else
-
-                    if (os_strcmp(pURL_Frame->pFilename, "reboot") == 0) {
-#endif
-
-                        if (pParseBuffer != NULL) {
-                            if (restart_10ms != NULL) {
-                                os_timer_disarm(restart_10ms);
-                            }
-
-                            if (rstparm == NULL) {
-                                rstparm = (rst_parm *)os_zalloc(sizeof(rst_parm));
-                            }
-
-                            rstparm->pespconn = ptrespconn;
-#if SENSOR_DEVICE
-                            rstparm->parmtype = DEEP_SLEEP;
-#else
-                            rstparm->parmtype = REBOOT;
-#endif
-
-                            if (restart_10ms == NULL) {
-                                restart_10ms = (os_timer_t *)os_malloc(sizeof(os_timer_t));
-                            }
-
-                            os_timer_setfn(restart_10ms, (os_timer_func_t *)restart_10ms_cb, NULL);
-                            os_timer_arm(restart_10ms, 10, 0);  // delay 10ms, then do
-
-                            response_send(ptrespconn, true);
-                        } else {
-                            response_send(ptrespconn, false);
-                        }
-                    } else if (os_strcmp(pURL_Frame->pFilename, "wifi") == 0) {
-                        if (pParseBuffer != NULL) {
-                            struct jsontree_context js;
-                            user_esp_platform_set_connect_status(DEVICE_CONNECTING);
-
-                            if (restart_10ms != NULL) {
-                                os_timer_disarm(restart_10ms);
-                            }
-
-                            if (ap_conf == NULL) {
-                                ap_conf = (struct softap_config *)os_zalloc(sizeof(struct softap_config));
-                            }
-
-                            if (sta_conf == NULL) {
-                                sta_conf = (struct station_config *)os_zalloc(sizeof(struct station_config));
-                            }
-
-                            jsontree_setup(&js, (struct jsontree_value *)&wifi_req_tree, json_putchar);
-                            json_parse(&js, pParseBuffer);
-
-                            if (rstparm == NULL) {
-                                rstparm = (rst_parm *)os_zalloc(sizeof(rst_parm));
-                            }
-
-                            rstparm->pespconn = ptrespconn;
-                            rstparm->parmtype = WIFI;
-
-                            if (sta_conf->ssid[0] != 0x00 || ap_conf->ssid[0] != 0x00) {
-                                ap_conf->ssid_hidden = 0;
-                                ap_conf->max_connection = 4;
-
-                                if (restart_10ms == NULL) {
-                                    restart_10ms = (os_timer_t *)os_malloc(sizeof(os_timer_t));
-                                }
-
-                                os_timer_disarm(restart_10ms);
-                                os_timer_setfn(restart_10ms, (os_timer_func_t *)restart_10ms_cb, NULL);
-                                os_timer_arm(restart_10ms, 10, 0);  // delay 10ms, then do
-                            } else {
-                                os_free(ap_conf);
-                                os_free(sta_conf);
-                                os_free(rstparm);
-                                sta_conf = NULL;
-                                ap_conf = NULL;
-                                rstparm =NULL;
-                            }
-
-                            response_send(ptrespconn, true);
-                        } else {
-                            response_send(ptrespconn, false);
-                        }
-                    }
-
-#if PLUG_DEVICE
-                    else if (os_strcmp(pURL_Frame->pFilename, "switch") == 0) {
-                        if (pParseBuffer != NULL) {
-                            struct jsontree_context js;
-                            jsontree_setup(&js, (struct jsontree_value *)&StatusTree, json_putchar);
-                            json_parse(&js, pParseBuffer);
-                            response_send(ptrespconn, true);
-                        } else {
-                            response_send(ptrespconn, false);
-                        }
-                    }
-
-#endif
-
-#if LIGHT_DEVICE
-                    else if (os_strcmp(pURL_Frame->pFilename, "light") == 0) {
-                        if (pParseBuffer != NULL) {
-                            struct jsontree_context js;
-
-                            jsontree_setup(&js, (struct jsontree_value *)&PwmTree, json_putchar);
-                            json_parse(&js, pParseBuffer);
-
-                            os_printf("rsp1:%u\n",PostCmdNeeRsp);
-                            if(PostCmdNeeRsp == 0)
-                                PostCmdNeeRsp = 1;
-                            else
-                                response_send(ptrespconn, true);
-                        } else {
-                            response_send(ptrespconn, false);
-                        }
-                    }
-                    else if (os_strcmp(pURL_Frame->pFilename, "reset") == 0) {
-                            response_send(ptrespconn, true);
-                            extern  struct esp_platform_saved_param esp_param;
-                            esp_param.activeflag = 0;
-                            system_param_save_with_protect(ESP_PARAM_START_SEC, &esp_param, sizeof(esp_param));
-                            
-                            system_restore();
-                            system_restart();
-                    }
-
-#endif
-                    else {
-                        response_send(ptrespconn, false);
-                    }
-                }
-				else if(os_strcmp(pURL_Frame->pSelect, "upgrade") == 0 &&
-					    os_strcmp(pURL_Frame->pCommand, "command") == 0){
-					if (os_strcmp(pURL_Frame->pFilename, "start") == 0){
-						response_send(ptrespconn, true);
-						os_printf("local upgrade start\n");
-						upgrade_lock = 1;
-						system_upgrade_init();
-						system_upgrade_flag_set(UPGRADE_FLAG_START);
-						os_timer_disarm(&upgrade_check_timer);
-						os_timer_setfn(&upgrade_check_timer, (os_timer_func_t *)upgrade_check_func, NULL);
-						os_timer_arm(&upgrade_check_timer, 120000, 0);
-					} else if (os_strcmp(pURL_Frame->pFilename, "reset") == 0) {
-
-						response_send(ptrespconn, true);
-						os_printf("local upgrade restart\n");
-						system_upgrade_reboot();
-					} else {
-						response_send(ptrespconn, false);
-					}
-				}else {
-					response_send(ptrespconn, false);
-                }
-                 break;
-        }
-
-        if (precvbuffer != NULL){
-        	os_free(precvbuffer);
-        	precvbuffer = NULL;
-        }
-        os_free(pURL_Frame);
-        pURL_Frame = NULL;
-        _temp_exit:
-            ;
-    }
-    else if(upgrade_lock == 1){
-    	local_upgrade_download(ptrespconn,pusrdata, length);
-		if (precvbuffer != NULL){
-			os_free(precvbuffer);
-			precvbuffer = NULL;
-		}
-		os_free(pURL_Frame);
-		pURL_Frame = NULL;
-    }
-}
-
-/******************************************************************************
- * FunctionName : webserver_recon
- * Description  : the connection has been err, reconnection
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL ICACHE_FLASH_ATTR
-void webserver_recon(void *arg, sint8 err)
-{
-    struct espconn *pesp_conn = arg;
-
-    os_printf("webserver's %d.%d.%d.%d:%d err %d reconnect\n", pesp_conn->proto.tcp->remote_ip[0],
-    		pesp_conn->proto.tcp->remote_ip[1],pesp_conn->proto.tcp->remote_ip[2],
-    		pesp_conn->proto.tcp->remote_ip[3],pesp_conn->proto.tcp->remote_port, err);
-}
-
-/******************************************************************************
- * FunctionName : webserver_recon
- * Description  : the connection has been err, reconnection
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL ICACHE_FLASH_ATTR
-void webserver_discon(void *arg)
-{
-    struct espconn *pesp_conn = arg;
-
-    os_printf("webserver's %d.%d.%d.%d:%d disconnect\n", pesp_conn->proto.tcp->remote_ip[0],
-        		pesp_conn->proto.tcp->remote_ip[1],pesp_conn->proto.tcp->remote_ip[2],
-        		pesp_conn->proto.tcp->remote_ip[3],pesp_conn->proto.tcp->remote_port);
-}
-
-/******************************************************************************
- * FunctionName : user_accept_listen
- * Description  : server listened a connection successfully
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-webserver_listen(void *arg)
-{
-    struct espconn *pesp_conn = arg;
-
-    espconn_regist_recvcb(pesp_conn, webserver_recv);
-    espconn_regist_reconcb(pesp_conn, webserver_recon);
-    espconn_regist_disconcb(pesp_conn, webserver_discon);
-}
-
-/******************************************************************************
- * FunctionName : user_webserver_init
- * Description  : parameter initialize as a server
- * Parameters   : port -- server port
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-user_webserver_init(uint32 port)
-{
-    LOCAL struct espconn esp_conn;
-    LOCAL esp_tcp esptcp;
-
-    esp_conn.type = ESPCONN_TCP;
-    esp_conn.state = ESPCONN_NONE;
-    esp_conn.proto.tcp = &esptcp;
-    esp_conn.proto.tcp->local_port = port;
-    espconn_regist_connectcb(&esp_conn, webserver_listen);
-
-#ifdef SERVER_SSL_ENABLE
-    espconn_secure_set_default_certificate(default_certificate, default_certificate_len);
-    espconn_secure_set_default_private_key(default_private_key, default_private_key_len);
-    espconn_secure_accept(&esp_conn);
-#else
-    espconn_accept(&esp_conn);
-#endif
-}

+ 0 - 42
sdk/esp_iot_sdk_v1.4.0/examples/at/!!!readme!!!.txt

@@ -1,42 +0,0 @@
-Notice: AT added some functions so it's larger than before, if you want to compile it, please compile it as 1024KB or larger flash in compilation STEP 5.
-
-1¡¢compile options
-
-(1) COMPILE
-    Possible value: gcc
-    Default value: 
-    If not set, use xt-xcc by default.
-
-(2) BOOT
-    Possible value: none/old/new
-      none: no need boot
-      old: use boot_v1.1
-      new: use boot_v1.2+
-    Default value: none
-
-(3) APP
-    Possible value: 0/1/2
-      0: original mode, generate eagle.app.v6.flash.bin and eagle.app.v6.irom0text.bin
-      1: generate user1
-      2: generate user2
-    Default value: 0
-
-(3) SPI_SPEED
-    Possible value: 20/26.7/40/80
-    Default value: 40
-
-(4) SPI_MODE
-    Possible value: QIO/QOUT/DIO/DOUT
-    Default value: QIO
-
-(4) SPI_SIZE
-    Possible value: 0/2/3/4/5/6
-    Default value: 0
-
-For example:
-    make COMPILE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=QIO SPI_SIZE_MAP=0
-
-2¡¢You can also use gen_misc to make and generate specific bin you needed.
-    Linux: ./gen_misc.sh
-    Windows: gen_misc.bat
-    Follow the tips and steps.

+ 0 - 145
sdk/esp_iot_sdk_v1.4.0/examples/at/Makefile

@@ -1,145 +0,0 @@
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of object file images to be generated ()
-#   GEN_BINS - list of binaries to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-TARGET = eagle
-#FLAVOR = release
-FLAVOR = debug
-
-#EXTRA_CCFLAGS += -u
-
-ifndef PDIR # {
-GEN_IMAGES= eagle.app.v6.out
-GEN_BINS= eagle.app.v6.bin
-SPECIAL_MKTARGETS=$(APP_MKTARGETS)
-SUBDIRS=    \
-	user
-ifdef AT_OPEN_SRC
-SUBDIRS +=    \
-	at
-endif
-endif # } PDIR
-
-APPDIR = .
-LDDIR = ../ld
-
-CCFLAGS += -Os
-
-TARGET_LDFLAGS =		\
-	-nostdlib		\
-	-Wl,-EL \
-	--longcalls \
-	--text-section-literals
-
-ifeq ($(FLAVOR),debug)
-    TARGET_LDFLAGS += -g -O2
-endif
-
-ifeq ($(FLAVOR),release)
-    TARGET_LDFLAGS += -g -O0
-endif
-
-COMPONENTS_eagle.app.v6 = \
-	user/libuser.a
-	
-ifdef AT_OPEN_SRC
-COMPONENTS_eagle.app.v6 += \
-	at/libat.a
-endif
-
-LINKFLAGS_eagle.app.v6 = \
-	-L../lib        \
-	-nostdlib	\
-    -T$(LD_FILE)   \
-	-Wl,--no-check-sections	\
-    -u call_user_start	\
-	-Wl,-static						\
-	-Wl,--start-group					\
-	-lc					\
-	-lgcc					\
-	-lhal					\
-	-lphy	\
-	-lpp	\
-	-lnet80211	\
-	-llwip	\
-	-lwpa	\
-	-lmain	\
-	-ljson	\
-	-lupgrade	\
-	-lsmartconfig	\
-	$(DEP_LIBS_eagle.app.v6)					
-
-ifndef AT_OPEN_SRC
-LINKFLAGS_eagle.app.v6 +=    \
-	-lat
-endif
-
-LINKFLAGS_eagle.app.v6 +=    \
-	-Wl,--end-group
-DEPENDS_eagle.app.v6 = \
-                $(LD_FILE) \
-                $(LDDIR)/eagle.rom.addr.v6.ld
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-
-#UNIVERSAL_TARGET_DEFINES =		\
-
-# Other potential configuration flags include:
-#	-DTXRX_TXBUF_DEBUG
-#	-DTXRX_RXBUF_DEBUG
-#	-DWLAN_CONFIG_CCX
-CONFIGURATION_DEFINES =	-DICACHE_FLASH
-ifdef AT_OPEN_SRC
-CONFIGURATION_DEFINES +=    \
-	-DAT_OPEN_SRC
-endif
-
-ifeq ($(APP),0)
-else
-CONFIGURATION_DEFINES +=    \
-	-DAT_UPGRADE_SUPPORT
-endif
-
-DEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-DDEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-
-.PHONY: FORCE
-FORCE:
-

+ 0 - 147
sdk/esp_iot_sdk_v1.4.0/examples/at/gen_misc.bat

@@ -1,147 +0,0 @@
-@echo off
-
-echo gen_misc.bat version 20150511
-echo .
-
-echo Please follow below steps(1-5) to generate specific bin(s):
-echo STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)
-set input=default
-set /p input=enter(0/1/2, default 2):
-
-if %input% equ 0 (
-    set boot=old
-) else (
-if %input% equ 1 (
-    set boot=new
-) else (
-    set boot=none
-)
-)
-
-echo boot mode: %boot%
-echo.
-
-echo STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)
-set input=default
-set /p input=enter (0/1/2, default 0):
-
-if %input% equ 1 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=1
-        echo generate bin: user1.bin
-    )
-) else (
-if %input% equ 2 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=2
-        echo generate bin: user2.bin
-    )
-) else (
-    if %boot% neq none (
-        set boot=none
-        echo ignore boot
-    )
-    set app=0
-    echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-))
-
-echo.
-
-echo STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)
-set input=default
-set /p input=enter (0/1/2/3, default 2):
-
-if %input% equ 0 (
-    set spi_speed=20
-) else (
-if %input% equ 1 (
-    set spi_speed=26.7
-) else (
-if %input% equ 3 (
-    set spi_speed=80
-) else (
-    set spi_speed=40
-)))
-
-echo spi speed: %spi_speed% MHz
-echo.
-
-echo STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)
-set input=default
-set /p input=enter (0/1/2/3, default 0):
-
-if %input% equ 1 (
-    set spi_mode=QOUT
-) else (
-if %input% equ 2 (
-    set spi_mode=DIO
-) else (
-if %input% equ 3 (
-    set spi_mode=DOUT
-) else (
-    set spi_mode=QIO
-)))
-
-echo spi mode: %spi_mode%
-echo.
-
-echo STEP 5: choose flash size and map
-echo     0= 512KB( 256KB+ 256KB)
-echo     2=1024KB( 512KB+ 512KB)
-echo     3=2048KB( 512KB+ 512KB)
-echo     4=4096KB( 512KB+ 512KB)
-echo     5=2048KB(1024KB+1024KB)
-echo     6=4096KB(1024KB+1024KB)
-set input=default
-set /p input=enter (0/1/2/3/4/5/6, default 0):
-
-if %input% equ 2 (
-  set spi_size_map=2
-  echo spi size: 1024KB
-  echo spi ota map: 512KB + 512KB
-) else (
-  if %input% equ 3 (
-    set spi_size_map=3
-    echo spi size: 2048KB
-    echo spi ota map: 512KB + 512KB
-  ) else (
-    if %input% equ 4 (
-      set spi_size_map=4
-      echo spi size: 4096KB
-      echo spi ota map: 512KB + 512KB
-    ) else (
-      if %input% equ 5 (
-        set spi_size_map=5
-        echo spi size: 2048KB
-        echo spi ota map: 1024KB + 1024KB
-      ) else (
-        if %input% equ 6 (
-          set spi_size_map=6
-          echo spi size: 4096KB
-          echo spi ota map: 1024KB + 1024KB
-        ) else (
-          set spi_size_map=0
-          echo spi size: 512KB
-          echo spi ota map: 256KB + 256KB
-        )
-      )
-    )
-  )
-)
-
-touch user/user_main.c
-
-echo.
-echo start...
-echo.
-
-make BOOT=%boot% APP=%app% SPI_SPEED=%spi_speed% SPI_MODE=%spi_mode% SPI_SIZE=%spi_size_map%
-

+ 0 - 150
sdk/esp_iot_sdk_v1.4.0/examples/at/gen_misc.sh

@@ -1,150 +0,0 @@
-#!/bin/bash
-
-echo "gen_misc.sh version 20150511"
-echo ""
-
-echo "Please follow below steps(1-5) to generate specific bin(s):"
-echo "STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)"
-echo "enter(0/1/2, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    boot=none
-elif [ $input == 0 ]; then
-	boot=old
-elif [ $input == 1 ]; then
-    boot=new
-else
-    boot=none
-fi
-
-echo "boot mode: $boot"
-echo ""
-
-echo "STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)"
-echo "enter (0/1/2, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-elif [ $input == 1 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-	app=1
-        echo "generate bin: user1.bin"
-    fi
-elif [ $input == 2 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-    	app=2
-    	echo "generate bin: user2.bin"
-    fi
-else
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-fi
-
-echo ""
-
-echo "STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)"
-echo "enter (0/1/2/3, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    spi_speed=40
-elif [ $input == 0 ]; then
-    spi_speed=20
-elif [ $input == 1 ]; then
-    spi_speed=26.7
-elif [ $input == 3 ]; then
-    spi_speed=80
-else
-    spi_speed=40
-fi
-
-echo "spi speed: $spi_speed MHz"
-echo ""
-
-echo "STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)"
-echo "enter (0/1/2/3, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_mode=QIO
-elif [ $input == 1 ]; then
-    spi_mode=QOUT
-elif [ $input == 2 ]; then
-    spi_mode=DIO
-elif [ $input == 3 ]; then
-    spi_mode=DOUT
-else
-    spi_mode=QIO
-fi
-
-echo "spi mode: $spi_mode"
-echo ""
-
-echo "STEP 5: choose spi size and map"
-echo "    0= 512KB( 256KB+ 256KB)"
-echo "    2=1024KB( 512KB+ 512KB)"
-echo "    3=2048KB( 512KB+ 512KB)"
-echo "    4=4096KB( 512KB+ 512KB)"
-echo "    5=2048KB(1024KB+1024KB)"
-echo "    6=4096KB(1024KB+1024KB)"
-echo "enter (0/2/3/4/5/6, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-elif [ $input == 2 ]; then
-    spi_size_map=2
-    echo "spi size: 1024KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 3 ]; then
-    spi_size_map=3
-    echo "spi size: 2048KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 4 ]; then
-    spi_size_map=4
-    echo "spi size: 4096KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 5 ]; then
-    spi_size_map=5
-    echo "spi size: 2048KB"
-    echo "spi ota map:  1024KB + 1024KB"
-elif [ $input == 6 ]; then
-    spi_size_map=6
-    echo "spi size: 4096KB"
-    echo "spi ota map:  1024KB + 1024KB"
-else
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-fi
-
-echo ""
-
-touch user/user_main.c
-
-echo ""
-echo "start..."
-echo ""
-
-make COMPILE=gcc BOOT=$boot APP=$app SPI_SPEED=$spi_speed SPI_MODE=$spi_mode SPI_SIZE_MAP=$spi_size_map

+ 0 - 12
sdk/esp_iot_sdk_v1.4.0/examples/at/include/user_config.h

@@ -1,12 +0,0 @@
-#ifndef __USER_CONFIG_H__
-#define __USER_CONFIG_H__
-
-#define AT_CUSTOM_UPGRADE
-
-#ifdef AT_CUSTOM_UPGRADE
-    #ifndef AT_UPGRADE_SUPPORT
-    #error "upgrade is not supported when eagle.flash.bin+eagle.irom0text.bin!!!"
-    #endif
-#endif
-
-#endif

+ 0 - 45
sdk/esp_iot_sdk_v1.4.0/examples/at/user/Makefile

@@ -1,45 +0,0 @@
-
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of images to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-ifndef PDIR
-GEN_LIBS = libuser.a
-endif
-
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-#DEFINES += 
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-INCLUDES += -I ./
-INCLUDES += -I ../../include/ets
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-

+ 0 - 290
sdk/esp_iot_sdk_v1.4.0/examples/at/user/at_upgrade.c

@@ -1,290 +0,0 @@
-/******************************************************************************
- * Copyright 2015-2018 Espressif Systems (Wuxi)
- *
- * FileName: user_main.c
- *
- * Description: entry file of user application
- *
- * Modification history:
- *     2015/3/06, v1.0 create this file.
-*******************************************************************************/
-#include "c_types.h"
-#include "user_interface.h"
-#include "espconn.h"
-#include "mem.h"
-#include "osapi.h"
-#include "upgrade.h"
-
-#ifdef AT_UPGRADE_SUPPORT
-#ifdef AT_CUSTOM_UPGRADE
-
-#define UPGRADE_FRAME  "{\"path\": \"/v1/messages/\", \"method\": \"POST\", \"meta\": {\"Authorization\": \"token %s\"},\
-\"get\":{\"action\":\"%s\"},\"body\":{\"pre_rom_version\":\"%s\",\"rom_version\":\"%s\"}}\n"
-
-#define pheadbuffer "Connection: keep-alive\r\n\
-Cache-Control: no-cache\r\n\
-User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36 \r\n\
-Accept: */*\r\n\
-Accept-Encoding: gzip,deflate\r\n\
-Accept-Language: zh-CN,eb-US;q=0.8\r\n\r\n"
-
-/**/
-
-
-struct espconn *pespconn = NULL;
-struct upgrade_server_info *upServer = NULL;
-
-static os_timer_t at_delay_check;
-static struct espconn *pTcpServer = NULL;
-static ip_addr_t host_ip;
-/******************************************************************************
- * FunctionName : user_esp_platform_upgrade_cb
- * Description  : Processing the downloaded data from the server
- * Parameters   : pespconn -- the espconn used to connetion with the host
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-at_upDate_rsp(void *arg)
-{
-  struct upgrade_server_info *server = arg;
-
-
-  if(server->upgrade_flag == true)
-  {
-    os_printf("device_upgrade_success\r\n");
-    at_response_ok();
-    system_upgrade_reboot();
-  }
-  else
-  {
-    os_printf("device_upgrade_failed\r\n");
-    at_response_error();
-  }
-
-  os_free(server->url);
-  server->url = NULL;
-  os_free(server);
-  server = NULL;
-}
-/**
-  * @brief  Tcp client disconnect success callback function.
-  * @param  arg: contain the ip link information
-  * @retval None
-  */
-static void ICACHE_FLASH_ATTR
-at_upDate_discon_cb(void *arg)
-{
-  struct espconn *pespconn = (struct espconn *)arg;
-  uint8_t idTemp = 0;
-
-  if(pespconn->proto.tcp != NULL)
-  {
-    os_free(pespconn->proto.tcp);
-  }
-  if(pespconn != NULL)
-  {
-    os_free(pespconn);
-  }
-
-  os_printf("disconnect\r\n");
-
-  if(system_upgrade_start(upServer) == false)
-  {
-    at_response_error();
-  }
-  else
-  {
-    at_port_print("+CIPUPDATE:4\r\n");
-  }
-}
-
-/**
-  * @brief  Udp server receive data callback function.
-  * @param  arg: contain the ip link information
-  * @retval None
-  */
-LOCAL void ICACHE_FLASH_ATTR
-at_upDate_recv(void *arg, char *pusrdata, unsigned short len)
-{
-  struct espconn *pespconn = (struct espconn *)arg;
-  char temp[32] = {0};
-  uint8_t user_bin[12] = {0};
-  uint8_t i = 0;
-
-  os_timer_disarm(&at_delay_check);
-  at_port_print("+CIPUPDATE:3\r\n");
-
-  upServer = (struct upgrade_server_info *)os_zalloc(sizeof(struct upgrade_server_info));
-
-  upServer->upgrade_version[5] = '\0';
-
-  upServer->pespconn = pespconn;
-
-  os_memcpy(upServer->ip, pespconn->proto.tcp->remote_ip, 4);
-
-  upServer->port = pespconn->proto.tcp->remote_port;
-
-  upServer->check_cb = at_upDate_rsp;
-  upServer->check_times = 60000;
-
-  if(upServer->url == NULL)
-  {
-    upServer->url = (uint8 *) os_zalloc(1024);
-  }
-
-  if(system_upgrade_userbin_check() == UPGRADE_FW_BIN1)
-  {
-    os_memcpy(user_bin, "user2.bin", 10);
-  }
-  else if(system_upgrade_userbin_check() == UPGRADE_FW_BIN2)
-  {
-    os_memcpy(user_bin, "user1.bin", 10);
-  }
-
-  os_sprintf(upServer->url,
-        "GET /%s HTTP/1.1\r\nHost: "IPSTR"\r\n"pheadbuffer"",
-        user_bin, IP2STR(upServer->ip));
-}
-
-LOCAL void ICACHE_FLASH_ATTR
-at_upDate_wait(void *arg)
-{
-  struct espconn *pespconn = arg;
-  os_timer_disarm(&at_delay_check);
-  if(pespconn != NULL)
-  {
-    espconn_disconnect(pespconn);
-  }
-  else
-  {
-    at_response_error();
-  }
-}
-
-/******************************************************************************
- * FunctionName : user_esp_platform_sent_cb
- * Description  : Data has been sent successfully and acknowledged by the remote host.
- * Parameters   : arg -- Additional argument to pass to the callback function
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-at_upDate_sent_cb(void *arg)
-{
-  struct espconn *pespconn = arg;
-  os_timer_disarm(&at_delay_check);
-  os_timer_setfn(&at_delay_check, (os_timer_func_t *)at_upDate_wait, pespconn);
-  os_timer_arm(&at_delay_check, 5000, 0);
-  os_printf("at_upDate_sent_cb\r\n");
-}
-
-/**
-  * @brief  Tcp client connect success callback function.
-  * @param  arg: contain the ip link information
-  * @retval None
-  */
-static void ICACHE_FLASH_ATTR
-at_upDate_connect_cb(void *arg)
-{
-  struct espconn *pespconn = (struct espconn *)arg;
-  uint8_t user_bin[9] = {0};
-  char *temp = NULL;
-
-  at_port_print("+CIPUPDATE:2\r\n");
-
-
-  espconn_regist_disconcb(pespconn, at_upDate_discon_cb);
-  espconn_regist_recvcb(pespconn, at_upDate_recv);////////
-  espconn_regist_sentcb(pespconn, at_upDate_sent_cb);
-
-  temp = (uint8 *) os_zalloc(512);
-
-  os_sprintf(temp,"GET /v1/device/rom/?is_format_simple=true HTTP/1.0\r\nHost: "IPSTR"\r\n"pheadbuffer"",
-             IP2STR(pespconn->proto.tcp->remote_ip));
-
-  espconn_sent(pespconn, temp, os_strlen(temp));
-  os_free(temp);
-}
-
-/**
-  * @brief  Tcp client connect repeat callback function.
-  * @param  arg: contain the ip link information
-  * @retval None
-  */
-static void ICACHE_FLASH_ATTR
-at_upDate_recon_cb(void *arg, sint8 errType)
-{
-  struct espconn *pespconn = (struct espconn *)arg;
-
-    at_response_error();
-    if(pespconn->proto.tcp != NULL)
-    {
-      os_free(pespconn->proto.tcp);
-    }
-    os_free(pespconn);
-    os_printf("disconnect\r\n");
-
-    if(upServer != NULL)
-    {
-      os_free(upServer);
-      upServer = NULL;
-    }
-    at_response_error();
-
-}
-
-/******************************************************************************
- * FunctionName : upServer_dns_found
- * Description  : dns found callback
- * Parameters   : name -- pointer to the name that was looked up.
- *                ipaddr -- pointer to an ip_addr_t containing the IP address of
- *                the hostname, or NULL if the name could not be found (or on any
- *                other error).
- *                callback_arg -- a user-specified callback argument passed to
- *                dns_gethostbyname
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-upServer_dns_found(const char *name, ip_addr_t *ipaddr, void *arg)
-{
-  struct espconn *pespconn = (struct espconn *) arg;
-//  char temp[32];
-
-  if(ipaddr == NULL)
-  {
-    at_response_error();
-    return;
-  }
-  at_port_print("+CIPUPDATE:1\r\n");
-
-
-  if(host_ip.addr == 0 && ipaddr->addr != 0)
-  {
-    if(pespconn->type == ESPCONN_TCP)
-    {
-      os_memcpy(pespconn->proto.tcp->remote_ip, &ipaddr->addr, 4);
-      espconn_regist_connectcb(pespconn, at_upDate_connect_cb);
-      espconn_regist_reconcb(pespconn, at_upDate_recon_cb);
-      espconn_connect(pespconn);
-    }
-  }
-}
-
-void ICACHE_FLASH_ATTR
-at_exeCmdCiupdate(uint8_t id)
-{
-  pespconn = (struct espconn *)os_zalloc(sizeof(struct espconn));
-  pespconn->type = ESPCONN_TCP;
-  pespconn->state = ESPCONN_NONE;
-  pespconn->proto.tcp = (esp_tcp *)os_zalloc(sizeof(esp_tcp));
-  pespconn->proto.tcp->local_port = espconn_port();
-  pespconn->proto.tcp->remote_port = 80;
-
-  host_ip.addr = ipaddr_addr("192.168.10.9");
-  at_port_print("+CIPUPDATE:1\r\n");
-  os_memcpy(pespconn->proto.tcp->remote_ip, &host_ip.addr, 4);
-  espconn_regist_connectcb(pespconn, at_upDate_connect_cb);
-  espconn_regist_reconcb(pespconn, at_upDate_recon_cb);
-  espconn_connect(pespconn);
-}
-#endif
-#endif

+ 0 - 119
sdk/esp_iot_sdk_v1.4.0/examples/at/user/user_main.c

@@ -1,119 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_main.c
- *
- * Description: entry file of user application
- *
- * Modification history:
- *     2015/1/23, v1.0 create this file.
-*******************************************************************************/
-
-#include "osapi.h"
-#include "at_custom.h"
-#include "user_interface.h"
-
-// test :AT+TEST=1,"abc"<,3>
-void ICACHE_FLASH_ATTR
-at_setupCmdTest(uint8_t id, char *pPara)
-{
-    int result = 0, err = 0, flag = 0;
-    uint8 buffer[32] = {0};
-    pPara++; // skip '='
-
-    //get the first parameter
-    // digit
-    flag = at_get_next_int_dec(&pPara, &result, &err);
-
-    // flag must be ture because there are more parameter
-    if (flag == FALSE) {
-        at_response_error();
-        return;
-    }
-
-    if (*pPara++ != ',') { // skip ','
-        at_response_error();
-        return;
-    }
-
-    os_sprintf(buffer, "the first parameter:%d\r\n", result);
-    at_port_print(buffer);
-
-    //get the second parameter
-    // string
-    at_data_str_copy(buffer, &pPara, 10);
-    at_port_print("the second parameter:");
-    at_port_print(buffer);
-    at_port_print("\r\n");
-
-    if (*pPara == ',') {
-        pPara++; // skip ','
-        result = 0;
-        //there is the third parameter
-        // digit
-        flag = at_get_next_int_dec(&pPara, &result, &err);
-        // we donot care of flag
-        os_sprintf(buffer, "the third parameter:%d\r\n", result);
-        at_port_print(buffer);
-    }
-
-    if (*pPara != '\r') {
-        at_response_error();
-        return;
-    }
-
-    at_response_ok();
-}
-
-void ICACHE_FLASH_ATTR
-at_testCmdTest(uint8_t id)
-{
-    uint8 buffer[32] = {0};
-
-    os_sprintf(buffer, "%s\r\n", "at_testCmdTest");
-    at_port_print(buffer);
-    at_response_ok();
-}
-
-void ICACHE_FLASH_ATTR
-at_queryCmdTest(uint8_t id)
-{
-    uint8 buffer[32] = {0};
-
-    os_sprintf(buffer, "%s\r\n", "at_queryCmdTest");
-    at_port_print(buffer);
-    at_response_ok();
-}
-
-void ICACHE_FLASH_ATTR
-at_exeCmdTest(uint8_t id)
-{
-    uint8 buffer[32] = {0};
-
-    os_sprintf(buffer, "%s\r\n", "at_exeCmdTest");
-    at_port_print(buffer);
-    at_response_ok();
-}
-
-extern void at_exeCmdCiupdate(uint8_t id);
-at_funcationType at_custom_cmd[] = {
-    {"+TEST", 5, at_testCmdTest, at_queryCmdTest, at_setupCmdTest, at_exeCmdTest},
-#ifdef AT_UPGRADE_SUPPORT
-    {"+CIUPDATE", 9,       NULL,            NULL,            NULL, at_exeCmdCiupdate}
-#endif
-};
-
-void user_rf_pre_init(void)
-{
-}
-
-void user_init(void)
-{
-    char buf[64] = {0};
-    at_customLinkMax = 5;
-    at_init();
-    os_sprintf(buf,"compile time:%s %s",__DATE__,__TIME__);
-    at_set_custom_info(buf);
-    at_port_print("\r\nready\r\n");
-    at_cmd_array_regist(&at_custom_cmd[0], sizeof(at_custom_cmd)/sizeof(at_custom_cmd[0]));
-}

+ 0 - 44
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/Makefile

@@ -1,44 +0,0 @@
-
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of images to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-ifndef PDIR
-GEN_LIBS = libdriver.a
-endif
-
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-#DEFINES += 
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-INCLUDES += -I ./
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-

+ 0 - 42
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/gpio16.c

@@ -1,42 +0,0 @@
-#include "ets_sys.h"
-#include "osapi.h"
-#include "driver/gpio16.h"
-
-void ICACHE_FLASH_ATTR
-gpio16_output_conf(void)
-{
-    WRITE_PERI_REG(PAD_XPD_DCDC_CONF,
-                   (READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); 	// mux configuration for XPD_DCDC to output rtc_gpio0
-
-    WRITE_PERI_REG(RTC_GPIO_CONF,
-                   (READ_PERI_REG(RTC_GPIO_CONF) & (uint32)0xfffffffe) | (uint32)0x0);	//mux configuration for out enable
-
-    WRITE_PERI_REG(RTC_GPIO_ENABLE,
-                   (READ_PERI_REG(RTC_GPIO_ENABLE) & (uint32)0xfffffffe) | (uint32)0x1);	//out enable
-}
-
-void ICACHE_FLASH_ATTR
-gpio16_output_set(uint8 value)
-{
-    WRITE_PERI_REG(RTC_GPIO_OUT,
-                   (READ_PERI_REG(RTC_GPIO_OUT) & (uint32)0xfffffffe) | (uint32)(value & 1));
-}
-
-void ICACHE_FLASH_ATTR
-gpio16_input_conf(void)
-{
-    WRITE_PERI_REG(PAD_XPD_DCDC_CONF,
-                   (READ_PERI_REG(PAD_XPD_DCDC_CONF) & 0xffffffbc) | (uint32)0x1); 	// mux configuration for XPD_DCDC and rtc_gpio0 connection
-
-    WRITE_PERI_REG(RTC_GPIO_CONF,
-                   (READ_PERI_REG(RTC_GPIO_CONF) & (uint32)0xfffffffe) | (uint32)0x0);	//mux configuration for out enable
-
-    WRITE_PERI_REG(RTC_GPIO_ENABLE,
-                   READ_PERI_REG(RTC_GPIO_ENABLE) & (uint32)0xfffffffe);	//out disable
-}
-
-uint8 ICACHE_FLASH_ATTR
-gpio16_input_get(void)
-{
-    return (uint8)(READ_PERI_REG(RTC_GPIO_IN_DATA) & 1);
-}

+ 0 - 141
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/hw_timer.c

@@ -1,141 +0,0 @@
-/******************************************************************************
-* Copyright 2013-2014 Espressif Systems (Wuxi)
-*
-* FileName: hw_timer.c
-*
-* Description: hw_timer driver
-*
-* Modification history:
-*     2014/5/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "osapi.h"
-
-#define US_TO_RTC_TIMER_TICKS(t)          \
-    ((t) ?                                   \
-     (((t) > 0x35A) ?                   \
-      (((t)>>2) * ((APB_CLK_FREQ>>4)/250000) + ((t)&0x3) * ((APB_CLK_FREQ>>4)/1000000))  :    \
-      (((t) *(APB_CLK_FREQ>>4)) / 1000000)) :    \
-     0)
-
-#define FRC1_ENABLE_TIMER  BIT7
-#define FRC1_AUTO_LOAD  BIT6
-
-//TIMER PREDIVED MODE
-typedef enum {
-    DIVDED_BY_1 = 0,		//timer clock
-    DIVDED_BY_16 = 4,	//divided by 16
-    DIVDED_BY_256 = 8,	//divided by 256
-} TIMER_PREDIVED_MODE;
-
-typedef enum {			//timer interrupt mode
-    TM_LEVEL_INT = 1,	// level interrupt
-    TM_EDGE_INT   = 0,	//edge interrupt
-} TIMER_INT_MODE;
-
-typedef enum {
-    FRC1_SOURCE = 0,
-    NMI_SOURCE = 1,
-} FRC1_TIMER_SOURCE_TYPE;
-
-/******************************************************************************
-* FunctionName : hw_timer_arm
-* Description  : set a trigger timer delay for this timer.
-* Parameters   : uint32 val :
-in autoload mode
-                        50 ~ 0x7fffff;  for FRC1 source.
-                        100 ~ 0x7fffff;  for NMI source.
-in non autoload mode:
-                        10 ~ 0x7fffff;
-* Returns      : NONE
-*******************************************************************************/
-void  hw_timer_arm(u32 val)
-{
-    RTC_REG_WRITE(FRC1_LOAD_ADDRESS, US_TO_RTC_TIMER_TICKS(val));
-}
-
-static void (* user_hw_timer_cb)(void) = NULL;
-/******************************************************************************
-* FunctionName : hw_timer_set_func
-* Description  : set the func, when trigger timer is up.
-* Parameters   : void (* user_hw_timer_cb_set)(void):
-                        timer callback function,
-* Returns      : NONE
-*******************************************************************************/
-void  hw_timer_set_func(void (* user_hw_timer_cb_set)(void))
-{
-    user_hw_timer_cb = user_hw_timer_cb_set;
-}
-
-static void  hw_timer_isr_cb(void)
-{
-    if (user_hw_timer_cb != NULL) {
-        (*(user_hw_timer_cb))();
-    }
-}
-
-/******************************************************************************
-* FunctionName : hw_timer_init
-* Description  : initilize the hardware isr timer
-* Parameters   :
-FRC1_TIMER_SOURCE_TYPE source_type:
-                        FRC1_SOURCE,    timer use frc1 isr as isr source.
-                        NMI_SOURCE,     timer use nmi isr as isr source.
-u8 req:
-                        0,  not autoload,
-                        1,  autoload mode,
-* Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR hw_timer_init(FRC1_TIMER_SOURCE_TYPE source_type, u8 req)
-{
-    if (req == 1) {
-        RTC_REG_WRITE(FRC1_CTRL_ADDRESS,
-                      FRC1_AUTO_LOAD | DIVDED_BY_16 | FRC1_ENABLE_TIMER | TM_EDGE_INT);
-    } else {
-        RTC_REG_WRITE(FRC1_CTRL_ADDRESS,
-                      DIVDED_BY_16 | FRC1_ENABLE_TIMER | TM_EDGE_INT);
-    }
-
-    if (source_type == NMI_SOURCE) {
-        ETS_FRC_TIMER1_NMI_INTR_ATTACH(hw_timer_isr_cb);
-    } else {
-        ETS_FRC_TIMER1_INTR_ATTACH(hw_timer_isr_cb, NULL);
-    }
-
-    TM1_EDGE_INT_ENABLE();
-    ETS_FRC1_INTR_ENABLE();
-}
-
-//-------------------------------Test Code Below--------------------------------------
-#if 0
-void   hw_test_timer_cb(void)
-{
-    static uint16 j = 0;
-    j++;
-
-    if ((WDEV_NOW() - tick_now2) >= 1000000) {
-        static u32 idx = 1;
-        tick_now2 = WDEV_NOW();
-        os_printf("b%u:%d\n", idx++, j);
-        j = 0;
-    }
-
-    //hw_timer_arm(50);
-}
-
-void ICACHE_FLASH_ATTR user_init(void)
-{
-    hw_timer_init(FRC1_SOURCE, 1);
-    hw_timer_set_func(hw_test_timer_cb);
-    hw_timer_arm(100);
-}
-#endif
-/*
-NOTE:
-1 if use nmi source, for autoload timer , the timer setting val can't be less than 100.
-2 if use nmi source, this timer has highest priority, can interrupt other isr.
-3 if use frc1 source, this timer can't interrupt other isr.
-
-*/
-

+ 0 - 316
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/i2c_master.c

@@ -1,316 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: i2c_master.c
- *
- * Description: i2c master API
- *
- * Modification history:
- *     2014/3/12, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-#include "gpio.h"
-
-#include "driver/i2c_master.h"
-
-LOCAL uint8 m_nLastSDA;
-LOCAL uint8 m_nLastSCL;
-
-/******************************************************************************
- * FunctionName : i2c_master_setDC
- * Description  : Internal used function -
- *                    set i2c SDA and SCL bit value for half clk cycle
- * Parameters   : uint8 SDA
- *                uint8 SCL
- * Returns      : NONE
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-i2c_master_setDC(uint8 SDA, uint8 SCL)
-{
-    SDA	&= 0x01;
-    SCL	&= 0x01;
-    m_nLastSDA = SDA;
-    m_nLastSCL = SCL;
-
-    if ((0 == SDA) && (0 == SCL)) {
-        I2C_MASTER_SDA_LOW_SCL_LOW();
-    } else if ((0 == SDA) && (1 == SCL)) {
-        I2C_MASTER_SDA_LOW_SCL_HIGH();
-    } else if ((1 == SDA) && (0 == SCL)) {
-        I2C_MASTER_SDA_HIGH_SCL_LOW();
-    } else {
-        I2C_MASTER_SDA_HIGH_SCL_HIGH();
-    }
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_getDC
- * Description  : Internal used function -
- *                    get i2c SDA bit value
- * Parameters   : NONE
- * Returns      : uint8 - SDA bit value
-*******************************************************************************/
-LOCAL uint8 ICACHE_FLASH_ATTR
-i2c_master_getDC(void)
-{
-    uint8 sda_out;
-    sda_out = GPIO_INPUT_GET(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO));
-    return sda_out;
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_init
- * Description  : initilize I2C bus to enable i2c operations
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_init(void)
-{
-    uint8 i;
-
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-
-    // when SCL = 0, toggle SDA to clear up
-    i2c_master_setDC(0, 0) ;
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 0) ;
-    i2c_master_wait(5);
-
-    // set data_cnt to max value
-    for (i = 0; i < 28; i++) {
-        i2c_master_setDC(1, 0);
-        i2c_master_wait(5);	// sda 1, scl 0
-        i2c_master_setDC(1, 1);
-        i2c_master_wait(5);	// sda 1, scl 1
-    }
-
-    // reset all
-    i2c_master_stop();
-    return;
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_gpio_init
- * Description  : config SDA and SCL gpio to open-drain output mode,
- *                mux and gpio num defined in i2c_master.h
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_gpio_init(void)
-{
-    ETS_GPIO_INTR_DISABLE() ;
-//    ETS_INTR_LOCK();
-
-    PIN_FUNC_SELECT(I2C_MASTER_SDA_MUX, I2C_MASTER_SDA_FUNC);
-    PIN_FUNC_SELECT(I2C_MASTER_SCL_MUX, I2C_MASTER_SCL_FUNC);
-
-    GPIO_REG_WRITE(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO)), GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SDA_GPIO))) | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)); //open drain;
-    GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, GPIO_REG_READ(GPIO_ENABLE_ADDRESS) | (1 << I2C_MASTER_SDA_GPIO));
-    GPIO_REG_WRITE(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SCL_GPIO)), GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(I2C_MASTER_SCL_GPIO))) | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_ENABLE)); //open drain;
-    GPIO_REG_WRITE(GPIO_ENABLE_ADDRESS, GPIO_REG_READ(GPIO_ENABLE_ADDRESS) | (1 << I2C_MASTER_SCL_GPIO));
-
-    I2C_MASTER_SDA_HIGH_SCL_HIGH();
-
-    ETS_GPIO_INTR_ENABLE() ;
-//    ETS_INTR_UNLOCK();
-
-    i2c_master_init();
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_start
- * Description  : set i2c to send state
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_start(void)
-{
-    i2c_master_setDC(1, m_nLastSCL);
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 1);
-    i2c_master_wait(5);	// sda 1, scl 1
-    i2c_master_setDC(0, 1);
-    i2c_master_wait(5);	// sda 0, scl 1
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_stop
- * Description  : set i2c to stop sending state
- * Parameters   : NONE
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_stop(void)
-{
-    i2c_master_wait(5);
-
-    i2c_master_setDC(0, m_nLastSCL);
-    i2c_master_wait(5);	// sda 0
-    i2c_master_setDC(0, 1);
-    i2c_master_wait(5);	// sda 0, scl 1
-    i2c_master_setDC(1, 1);
-    i2c_master_wait(5);	// sda 1, scl 1
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_setAck
- * Description  : set ack to i2c bus as level value
- * Parameters   : uint8 level - 0 or 1
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_setAck(uint8 level)
-{
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);
-    i2c_master_setDC(level, 0);
-    i2c_master_wait(5);	// sda level, scl 0
-    i2c_master_setDC(level, 1);
-    i2c_master_wait(8);	// sda level, scl 1
-    i2c_master_setDC(level, 0);
-    i2c_master_wait(5);	// sda level, scl 0
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_getAck
- * Description  : confirm if peer send ack
- * Parameters   : NONE
- * Returns      : uint8 - ack value, 0 or 1
-*******************************************************************************/
-uint8 ICACHE_FLASH_ATTR
-i2c_master_getAck(void)
-{
-    uint8 retVal;
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 1);
-    i2c_master_wait(5);
-
-    retVal = i2c_master_getDC();
-    i2c_master_wait(5);
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);
-
-    return retVal;
-}
-
-/******************************************************************************
-* FunctionName : i2c_master_checkAck
-* Description  : get dev response
-* Parameters   : NONE
-* Returns      : true : get ack ; false : get nack
-*******************************************************************************/
-bool ICACHE_FLASH_ATTR
-i2c_master_checkAck(void)
-{
-    if(i2c_master_getAck()){
-        return FALSE;
-    }else{
-        return TRUE;
-    }
-}
-
-/******************************************************************************
-* FunctionName : i2c_master_send_ack
-* Description  : response ack
-* Parameters   : NONE
-* Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_send_ack(void)
-{
-    i2c_master_setAck(0x0);
-}
-/******************************************************************************
-* FunctionName : i2c_master_send_nack
-* Description  : response nack
-* Parameters   : NONE
-* Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_send_nack(void)
-{
-    i2c_master_setAck(0x1);
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_readByte
- * Description  : read Byte from i2c bus
- * Parameters   : NONE
- * Returns      : uint8 - readed value
-*******************************************************************************/
-uint8 ICACHE_FLASH_ATTR
-i2c_master_readByte(void)
-{
-    uint8 retVal = 0;
-    uint8 k, i;
-
-    i2c_master_wait(5);
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);	// sda 1, scl 0
-
-    for (i = 0; i < 8; i++) {
-        i2c_master_wait(5);
-        i2c_master_setDC(1, 0);
-        i2c_master_wait(5);	// sda 1, scl 0
-        i2c_master_setDC(1, 1);
-        i2c_master_wait(5);	// sda 1, scl 1
-
-        k = i2c_master_getDC();
-        i2c_master_wait(5);
-
-        if (i == 7) {
-            i2c_master_wait(3);   ////
-        }
-
-        k <<= (7 - i);
-        retVal |= k;
-    }
-
-    i2c_master_setDC(1, 0);
-    i2c_master_wait(5);	// sda 1, scl 0
-
-    return retVal;
-}
-
-/******************************************************************************
- * FunctionName : i2c_master_writeByte
- * Description  : write wrdata value(one byte) into i2c
- * Parameters   : uint8 wrdata - write value
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-i2c_master_writeByte(uint8 wrdata)
-{
-    uint8 dat;
-    sint8 i;
-
-    i2c_master_wait(5);
-
-    i2c_master_setDC(m_nLastSDA, 0);
-    i2c_master_wait(5);
-
-    for (i = 7; i >= 0; i--) {
-        dat = wrdata >> i;
-        i2c_master_setDC(dat, 0);
-        i2c_master_wait(5);
-        i2c_master_setDC(dat, 1);
-        i2c_master_wait(5);
-
-        if (i == 0) {
-            i2c_master_wait(3);   ////
-        }
-
-        i2c_master_setDC(dat, 0);
-        i2c_master_wait(5);
-    }
-}

+ 0 - 162
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/key.c

@@ -1,162 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: key.c
- *
- * Description: key driver, now can use different gpio and install different function
- *
- * Modification history:
- *     2014/5/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "os_type.h"
-#include "osapi.h"
-#include "mem.h"
-#include "gpio.h"
-#include "user_interface.h"
-
-#include "driver/key.h"
-
-LOCAL void key_intr_handler(struct keys_param *keys);
-
-/******************************************************************************
- * FunctionName : key_init_single
- * Description  : init single key's gpio and register function
- * Parameters   : uint8 gpio_id - which gpio to use
- *                uint32 gpio_name - gpio mux name
- *                uint32 gpio_func - gpio function
- *                key_function long_press - long press function, needed to install
- *                key_function short_press - short press function, needed to install
- * Returns      : single_key_param - single key parameter, needed by key init
-*******************************************************************************/
-struct single_key_param *ICACHE_FLASH_ATTR
-key_init_single(uint8 gpio_id, uint32 gpio_name, uint8 gpio_func, key_function long_press, key_function short_press)
-{
-    struct single_key_param *single_key = (struct single_key_param *)os_zalloc(sizeof(struct single_key_param));
-
-    single_key->gpio_id = gpio_id;
-    single_key->gpio_name = gpio_name;
-    single_key->gpio_func = gpio_func;
-    single_key->long_press = long_press;
-    single_key->short_press = short_press;
-
-    return single_key;
-}
-
-/******************************************************************************
- * FunctionName : key_init
- * Description  : init keys
- * Parameters   : key_param *keys - keys parameter, which inited by key_init_single
- * Returns      : none
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-key_init(struct keys_param *keys)
-{
-    uint8 i;
-
-    ETS_GPIO_INTR_ATTACH(key_intr_handler, keys);
-
-    ETS_GPIO_INTR_DISABLE();
-
-    for (i = 0; i < keys->key_num; i++) {
-        keys->single_key[i]->key_level = 1;
-
-        PIN_FUNC_SELECT(keys->single_key[i]->gpio_name, keys->single_key[i]->gpio_func);
-
-        gpio_output_set(0, 0, 0, GPIO_ID_PIN(keys->single_key[i]->gpio_id));
-
-        gpio_register_set(GPIO_PIN_ADDR(keys->single_key[i]->gpio_id), GPIO_PIN_INT_TYPE_SET(GPIO_PIN_INTR_DISABLE)
-                          | GPIO_PIN_PAD_DRIVER_SET(GPIO_PAD_DRIVER_DISABLE)
-                          | GPIO_PIN_SOURCE_SET(GPIO_AS_PIN_SOURCE));
-
-        //clear gpio14 status
-        GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, BIT(keys->single_key[i]->gpio_id));
-
-        //enable interrupt
-        gpio_pin_intr_state_set(GPIO_ID_PIN(keys->single_key[i]->gpio_id), GPIO_PIN_INTR_NEGEDGE);
-    }
-
-    ETS_GPIO_INTR_ENABLE();
-}
-
-/******************************************************************************
- * FunctionName : key_5s_cb
- * Description  : long press 5s timer callback
- * Parameters   : single_key_param *single_key - single key parameter
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-key_5s_cb(struct single_key_param *single_key)
-{
-    os_timer_disarm(&single_key->key_5s);
-
-    // low, then restart
-    if (0 == GPIO_INPUT_GET(GPIO_ID_PIN(single_key->gpio_id))) {
-        if (single_key->long_press) {
-            single_key->long_press();
-        }
-    }
-}
-
-/******************************************************************************
- * FunctionName : key_50ms_cb
- * Description  : 50ms timer callback to check it's a real key push
- * Parameters   : single_key_param *single_key - single key parameter
- * Returns      : none
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-key_50ms_cb(struct single_key_param *single_key)
-{
-    os_timer_disarm(&single_key->key_50ms);
-
-    // high, then key is up
-    if (1 == GPIO_INPUT_GET(GPIO_ID_PIN(single_key->gpio_id))) {
-        os_timer_disarm(&single_key->key_5s);
-        single_key->key_level = 1;
-        gpio_pin_intr_state_set(GPIO_ID_PIN(single_key->gpio_id), GPIO_PIN_INTR_NEGEDGE);
-
-        if (single_key->short_press) {
-            single_key->short_press();
-        }
-    } else {
-        gpio_pin_intr_state_set(GPIO_ID_PIN(single_key->gpio_id), GPIO_PIN_INTR_POSEDGE);
-    }
-}
-
-/******************************************************************************
- * FunctionName : key_intr_handler
- * Description  : key interrupt handler
- * Parameters   : key_param *keys - keys parameter, which inited by key_init_single
- * Returns      : none
-*******************************************************************************/
-LOCAL void
-key_intr_handler(struct keys_param *keys)
-{
-    uint8 i;
-    uint32 gpio_status = GPIO_REG_READ(GPIO_STATUS_ADDRESS);
-
-    for (i = 0; i < keys->key_num; i++) {
-        if (gpio_status & BIT(keys->single_key[i]->gpio_id)) {
-            //disable interrupt
-            gpio_pin_intr_state_set(GPIO_ID_PIN(keys->single_key[i]->gpio_id), GPIO_PIN_INTR_DISABLE);
-
-            //clear interrupt status
-            GPIO_REG_WRITE(GPIO_STATUS_W1TC_ADDRESS, gpio_status & BIT(keys->single_key[i]->gpio_id));
-
-            if (keys->single_key[i]->key_level == 1) {
-                // 5s, restart & enter softap mode
-                os_timer_disarm(&keys->single_key[i]->key_5s);
-                os_timer_setfn(&keys->single_key[i]->key_5s, (os_timer_func_t *)key_5s_cb, keys->single_key[i]);
-                os_timer_arm(&keys->single_key[i]->key_5s, 5000, 0);
-                keys->single_key[i]->key_level = 0;
-                gpio_pin_intr_state_set(GPIO_ID_PIN(keys->single_key[i]->gpio_id), GPIO_PIN_INTR_POSEDGE);
-            } else {
-                // 50ms, check if this is a real key up
-                os_timer_disarm(&keys->single_key[i]->key_50ms);
-                os_timer_setfn(&keys->single_key[i]->key_50ms, (os_timer_func_t *)key_50ms_cb, keys->single_key[i]);
-                os_timer_arm(&keys->single_key[i]->key_50ms, 50, 0);
-            }
-        }
-    }
-}
-

+ 0 - 464
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/spi.c

@@ -1,464 +0,0 @@
-
-#include "driver/spi.h"
-#include "driver/spi_overlap.h"
-
-#define CACHE_FLASH_CTRL_REG 0x3ff0000C
-#define CACHE_FLUSH_START_BIT BIT0
-#define CACHE_EMPTY_FLAG_BIT BIT1
-/******************************************************************************
- * FunctionName : cache_flush
- * Description  : clear all the cpu cache data for stability test.
-*******************************************************************************/
-void cache_flush(void)
-{
-   while(READ_PERI_REG(CACHE_FLASH_CTRL_REG)&CACHE_EMPTY_FLAG_BIT) {
-      CLEAR_PERI_REG_MASK(CACHE_FLASH_CTRL_REG, CACHE_FLUSH_START_BIT);
-      SET_PERI_REG_MASK(CACHE_FLASH_CTRL_REG, CACHE_FLUSH_START_BIT);
-   }
-   while(!(READ_PERI_REG(CACHE_FLASH_CTRL_REG)&CACHE_EMPTY_FLAG_BIT));
-   	
-   CLEAR_PERI_REG_MASK(CACHE_FLASH_CTRL_REG, CACHE_FLUSH_START_BIT);
-}
-/******************************************************************************
- * FunctionName : spi_master_init
- * Description  : SPI master initial function for common byte units transmission
- * Parameters   : uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-    spi_master_init(uint8 spi_no)
-{
-	uint32 regvalue; 
-
-	if(spi_no>1) 		return; //handle invalid input number
-	
-	SET_PERI_REG_MASK(SPI_USER(spi_no), SPI_CS_SETUP|SPI_CS_HOLD|SPI_USR_COMMAND);
-	CLEAR_PERI_REG_MASK(SPI_USER(spi_no), SPI_FLASH_MODE);
-
-	WRITE_PERI_REG(SPI_CLOCK(spi_no), 
-					((3&SPI_CLKCNT_N)<<SPI_CLKCNT_N_S)|
-					((1&SPI_CLKCNT_H)<<SPI_CLKCNT_H_S)|
-					((3&SPI_CLKCNT_L)<<SPI_CLKCNT_L_S)); //clear bit 31,set SPI clock div
-}
-/******************************************************************************
- * FunctionName : spi_lcd_9bit_write
- * Description  : SPI 9bits transmission function for driving LCD TM035PDZV36
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
- *				uint8 high_bit - first high bit of the data, 0 is for "0",the other value 1-255 is for "1"
- *				uint8 low_8bit- the rest 8bits of the data.
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-    spi_lcd_9bit_write(uint8 spi_no,uint8 high_bit,uint8 low_8bit)
-{
-	uint32 regvalue;
-	uint8 bytetemp;
-	if(spi_no>1) 		return; //handle invalid input number
-	
-	if(high_bit)		bytetemp=(low_8bit>>1)|0x80;
-	else				bytetemp=(low_8bit>>1)&0x7f;
-	
-	regvalue= ((8&SPI_USR_COMMAND_BITLEN)<<SPI_USR_COMMAND_BITLEN_S)|((uint32)bytetemp);		//configure transmission variable,9bit transmission length and first 8 command bit 
-	if(low_8bit&0x01) 	regvalue|=BIT15;        //write the 9th bit
-	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);		//waiting for spi module available
-	WRITE_PERI_REG(SPI_USER2(spi_no), regvalue);				//write  command and command length into spi reg
-	SET_PERI_REG_MASK(SPI_CMD(spi_no), SPI_USR);		//transmission start
-//	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);	
-}
-/******************************************************************************
- * FunctionName : spi_mast_byte_write
- * Description  : SPI master 1 byte transmission function
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
- *				uint8 data- transmitted data
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-    spi_mast_byte_write(uint8 spi_no,uint8 data)
- {
-	uint32 regvalue;
-
-	if(spi_no>1) 		return; //handle invalid input number
-
-	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);
-	CLEAR_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MOSI|SPI_USR_MISO);
-
-	//SPI_FLASH_USER2 bit28-31 is cmd length,cmd bit length is value(0-15)+1,
-	// bit15-0 is cmd value.
-	WRITE_PERI_REG(SPI_USER2(spi_no), 
-					((7&SPI_USR_COMMAND_BITLEN)<<SPI_USR_COMMAND_BITLEN_S)|((uint32)data));
-	SET_PERI_REG_MASK(SPI_CMD(spi_no), SPI_USR);
-	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);	
- }  
-
-/******************************************************************************
- * FunctionName : spi_byte_write_espslave
- * Description  : SPI master 1 byte transmission function for esp8266 slave,
- * 			transmit 1byte data to esp8266 slave buffer needs 16bit transmission ,
- * 			first byte is command 0x04 to write slave buffer, second byte is data
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
- *				uint8 data- transmitted data
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-    spi_byte_write_espslave(uint8 spi_no,uint8 data)
- {
-	uint32 regvalue;
-
-	if(spi_no>1) 		return; //handle invalid input number
-
-	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);
-	SET_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MOSI);
-	CLEAR_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MISO|SPI_USR_ADDR|SPI_USR_DUMMY);
-
-	//SPI_FLASH_USER2 bit28-31 is cmd length,cmd bit length is value(0-15)+1,
-	// bit15-0 is cmd value.
-	//0x70000000 is for 8bits cmd, 0x04 is eps8266 slave write cmd value
-	WRITE_PERI_REG(SPI_USER2(spi_no), 
-					((7&SPI_USR_COMMAND_BITLEN)<<SPI_USR_COMMAND_BITLEN_S)|4);
-	WRITE_PERI_REG(SPI_W0(spi_no), (uint32)(data));
-	SET_PERI_REG_MASK(SPI_CMD(spi_no), SPI_USR);
- }
-/******************************************************************************
- * FunctionName : spi_byte_read_espslave
- * Description  : SPI master 1 byte read function for esp8266 slave,
- * 			read 1byte data from esp8266 slave buffer needs 16bit transmission ,
- * 			first byte is command 0x06 to read slave buffer, second byte is recieved data
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
- *				uint8* data- recieved data address
-*******************************************************************************/
-  void ICACHE_FLASH_ATTR
-      spi_byte_read_espslave(uint8 spi_no,uint8 *data)
- {
-	uint32 regvalue;
-
-	if(spi_no>1) 		return; //handle invalid input number
-
-	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);
-
-	SET_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MISO);
-	CLEAR_PERI_REG_MASK(SPI_USER(spi_no), SPI_USR_MOSI|SPI_USR_ADDR|SPI_USR_DUMMY);
-		//SPI_FLASH_USER2 bit28-31 is cmd length,cmd bit length is value(0-15)+1,
-	// bit15-0 is cmd value.
-	//0x70000000 is for 8bits cmd, 0x06 is eps8266 slave read cmd value
-	WRITE_PERI_REG(SPI_USER2(spi_no), 
-					((7&SPI_USR_COMMAND_BITLEN)<<SPI_USR_COMMAND_BITLEN_S)|6);
-	SET_PERI_REG_MASK(SPI_CMD(spi_no), SPI_USR);
-	
-	while(READ_PERI_REG(SPI_CMD(spi_no))&SPI_USR);
-	*data=(uint8)(READ_PERI_REG(SPI_W0(spi_no))&0xff);
- }
-
-/******************************************************************************
- * FunctionName : spi_slave_init
- * Description  : SPI slave mode initial funtion, including mode setting,
- * 			IO setting, transmission interrupt opening, interrupt function registration
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
- *				uint8 data_len - read&write data pack length,using byte as unit,the range is 1-32
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-    spi_slave_init(uint8 spi_no,uint8 data_len)
-{
-    uint32 regvalue; 
-    uint32 data_bit_len;
-    if(spi_no>1)
-        return; //handle invalid input number
-    if(data_len<=1) data_bit_len=7;
-    else if(data_len>=32) data_bit_len=0xff;
-    else	data_bit_len=(data_len<<3)-1;
-
-    //clear bit9,bit8 of reg PERIPHS_IO_MUX
-    //bit9 should be cleared when HSPI clock doesn't equal CPU clock
-    //bit8 should be cleared when SPI clock doesn't equal CPU clock
-    ////WRITE_PERI_REG(PERIPHS_IO_MUX, 0x105); //clear bit9//TEST
-    if(spi_no==SPI){
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_CLK_U, 1);//configure io to spi mode
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_CMD_U, 1);//configure io to spi mode	
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA0_U, 1);//configure io to spi mode	
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA1_U, 1);//configure io to spi mode	
-    }else if(spi_no==HSPI){
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, 2);//configure io to spi mode
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, 2);//configure io to spi mode	
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, 2);//configure io to spi mode	
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 2);//configure io to spi mode	
-    }
-
-    //regvalue=READ_PERI_REG(SPI_FLASH_SLAVE(spi_no));
-    //slave mode,slave use buffers which are register "SPI_FLASH_C0~C15", enable trans done isr
-    //set bit 30 bit 29 bit9,bit9 is trans done isr mask
-    SET_PERI_REG_MASK(	SPI_SLAVE(spi_no), 
-    						SPI_SLAVE_MODE|SPI_SLV_WR_RD_BUF_EN|
-                                         	SPI_SLV_WR_BUF_DONE_EN|SPI_SLV_RD_BUF_DONE_EN|
-                                         	SPI_SLV_WR_STA_DONE_EN|SPI_SLV_RD_STA_DONE_EN|
-                                         	SPI_TRANS_DONE_EN);
-    //disable general trans intr 
-    //CLEAR_PERI_REG_MASK(SPI_SLAVE(spi_no),SPI_TRANS_DONE_EN);
-
-    CLEAR_PERI_REG_MASK(SPI_USER(spi_no), SPI_FLASH_MODE);//disable flash operation mode
-    SET_PERI_REG_MASK(SPI_USER(spi_no),SPI_USR_MISO_HIGHPART);//SLAVE SEND DATA BUFFER IN C8-C15 
-
-
-//////**************RUN WHEN SLAVE RECIEVE*******************///////
-   //tow lines below is to configure spi timing.
-    SET_PERI_REG_MASK(SPI_CTRL2(spi_no),(0x2&SPI_MOSI_DELAY_NUM)<<SPI_MOSI_DELAY_NUM_S) ;//delay num
-    os_printf("SPI_CTRL2 is %08x\n",READ_PERI_REG(SPI_CTRL2(spi_no)));
-    WRITE_PERI_REG(SPI_CLOCK(spi_no), 0);
-
-
-    
-/////***************************************************//////	
-
-    //set 8 bit slave command length, because slave must have at least one bit addr, 
-    //8 bit slave+8bit addr, so master device first 2 bytes can be regarded as a command 
-    //and the  following bytes are datas, 
-    //32 bytes input wil be stored in SPI_FLASH_C0-C7
-    //32 bytes output data should be set to SPI_FLASH_C8-C15
-    WRITE_PERI_REG(SPI_USER2(spi_no), (0x7&SPI_USR_COMMAND_BITLEN)<<SPI_USR_COMMAND_BITLEN_S); //0x70000000
-
-    //set 8 bit slave recieve buffer length, the buffer is SPI_FLASH_C0-C7
-    //set 8 bit slave status register, which is the low 8 bit of register "SPI_FLASH_STATUS"
-    SET_PERI_REG_MASK(SPI_SLAVE1(spi_no),  ((data_bit_len&SPI_SLV_BUF_BITLEN)<< SPI_SLV_BUF_BITLEN_S)|
-                                                                                        ((0x7&SPI_SLV_STATUS_BITLEN)<<SPI_SLV_STATUS_BITLEN_S)|
-                                                                                       ((0x7&SPI_SLV_WR_ADDR_BITLEN)<<SPI_SLV_WR_ADDR_BITLEN_S)|
-                                                                                       ((0x7&SPI_SLV_RD_ADDR_BITLEN)<<SPI_SLV_RD_ADDR_BITLEN_S));
-    
-    SET_PERI_REG_MASK(SPI_PIN(spi_no),BIT19);//BIT19   
-
-    //maybe enable slave transmission liston 
-    SET_PERI_REG_MASK(SPI_CMD(spi_no),SPI_USR);
-    //register level2 isr function, which contains spi, hspi and i2s events
-    ETS_SPI_INTR_ATTACH(spi_slave_isr_handler,NULL);
-    //enable level2 isr, which contains spi, hspi and i2s events
-    ETS_SPI_INTR_ENABLE(); 
-}
-
-
-
-
-
-/* =============================================================================================
- * code below is for spi slave r/w testcase with 2 r/w state lines connected to the spi master mcu
- * replace with your own process functions
- * find "add system_os_post here" in spi_slave_isr_handler.
- * =============================================================================================
- */
-
-
-
-
-
-
-
-#ifdef SPI_SLAVE_DEBUG
- /******************************************************************************
- * FunctionName : hspi_master_readwrite_repeat
- * Description  : SPI master test  function for reading and writing esp8266 slave buffer,
- 			the function uses HSPI module 
-*******************************************************************************/
-os_timer_t timer2;
-
-void hspi_master_readwrite_repeat(void)
-{
-	static uint8 data=0;
-	uint8 temp;
-
-	os_timer_disarm(&timer2);
-	spi_byte_read_espslave(HSPI,&temp);
-
-	temp++;
-	spi_byte_write_espslave(HSPI,temp);
-       os_timer_setfn(&timer2, (os_timer_func_t *)hspi_master_readwrite_repeat, NULL);
-       os_timer_arm(&timer2, 500, 0);
-}
-#endif
-
-
-/******************************************************************************
- * FunctionName : spi_slave_isr_handler
- * Description  : SPI interrupt function, SPI HSPI and I2S interrupt can trig this function
- 			   some basic operation like clear isr flag has been done, 
- 			   and it is availible	for adding user coder in the funtion
- * Parameters  : void *para- function parameter address, which has been registered in function spi_slave_init
-*******************************************************************************/
-#include "gpio.h"
-#include "user_interface.h"
-#include "mem.h"
-static uint8 spi_data[32] = {0};
-static uint8 idx = 0;
-static uint8 spi_flg = 0;
-#define SPI_MISO
-#define SPI_QUEUE_LEN 8
-os_event_t * spiQueue;
-#define MOSI  0
-#define MISO  1
-#define STATUS_R_IN_WR 2
-#define STATUS_W  3
-#define TR_DONE_ALONE  4
-#define WR_RD 5
-#define DATA_ERROR 6
-#define STATUS_R_IN_RD 7
-//init the two intr line of slave
-//gpio0: wr_ready ,and  
-//gpio2: rd_ready , controlled by slave
-void ICACHE_FLASH_ATTR
-    gpio_init()
-{
-
-    	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
-	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
-	//PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
-    	GPIO_OUTPUT_SET(0, 1);
-    	GPIO_OUTPUT_SET(2, 0);
-	//GPIO_OUTPUT_SET(4, 1);
-}
-
-
-
-void spi_slave_isr_handler(void *para)
-{
-	uint32 regvalue,calvalue;
-    	static uint8 state =0;
-	uint32 recv_data,send_data;
-
-	if(READ_PERI_REG(0x3ff00020)&BIT4){		
-        //following 3 lines is to clear isr signal
-        	CLEAR_PERI_REG_MASK(SPI_SLAVE(SPI), 0x3ff);
-    	}else if(READ_PERI_REG(0x3ff00020)&BIT7){ //bit7 is for hspi isr,
-        	regvalue=READ_PERI_REG(SPI_SLAVE(HSPI));
-         	CLEAR_PERI_REG_MASK(SPI_SLAVE(HSPI),  
-								SPI_TRANS_DONE_EN|
-								SPI_SLV_WR_STA_DONE_EN|
-								SPI_SLV_RD_STA_DONE_EN|
-								SPI_SLV_WR_BUF_DONE_EN|
-								SPI_SLV_RD_BUF_DONE_EN);
-        	SET_PERI_REG_MASK(SPI_SLAVE(HSPI), SPI_SYNC_RESET);
-        	CLEAR_PERI_REG_MASK(SPI_SLAVE(HSPI),  
-								SPI_TRANS_DONE|
-								SPI_SLV_WR_STA_DONE|
-								SPI_SLV_RD_STA_DONE|
-								SPI_SLV_WR_BUF_DONE|
-								SPI_SLV_RD_BUF_DONE); 
-		SET_PERI_REG_MASK(SPI_SLAVE(HSPI),  
-								SPI_TRANS_DONE_EN|
-								SPI_SLV_WR_STA_DONE_EN|
-								SPI_SLV_RD_STA_DONE_EN|
-								SPI_SLV_WR_BUF_DONE_EN|
-								SPI_SLV_RD_BUF_DONE_EN);
-
-		if(regvalue&SPI_SLV_WR_BUF_DONE){ 
-            		GPIO_OUTPUT_SET(0, 0);
-            		idx=0;
-            		while(idx<8){
-            			recv_data=READ_PERI_REG(SPI_W0(HSPI)+(idx<<2));
-            			spi_data[idx<<2] = recv_data&0xff;
-            			spi_data[(idx<<2)+1] = (recv_data>>8)&0xff;
-            			spi_data[(idx<<2)+2] = (recv_data>>16)&0xff;
-            			spi_data[(idx<<2)+3] = (recv_data>>24)&0xff;
-            			idx++;
-			}
-			//add system_os_post here
-            		GPIO_OUTPUT_SET(0, 1);
-		}
-        	if(regvalue&SPI_SLV_RD_BUF_DONE){
-			//it is necessary to call GPIO_OUTPUT_SET(2, 1), when new data is preped in SPI_W8-15 and needs to be sended.
-           		GPIO_OUTPUT_SET(2, 0);
-			//add system_os_post here
-			//system_os_post(USER_TASK_PRIO_1,WR_RD,regvalue);
-
-        	}
-    
-    }else if(READ_PERI_REG(0x3ff00020)&BIT9){ //bit7 is for i2s isr,
-
-    }
-}
-
-
-#ifdef SPI_SLAVE_DEBUG
-
-void ICACHE_FLASH_ATTR
-    set_miso_data()
-{
-    if(GPIO_INPUT_GET(2)==0){
-        WRITE_PERI_REG(SPI_W8(HSPI),0x05040302);
-        WRITE_PERI_REG(SPI_W9(HSPI),0x09080706);
-        WRITE_PERI_REG(SPI_W10(HSPI),0x0d0c0b0a);
-        WRITE_PERI_REG(SPI_W11(HSPI),0x11100f0e);
-
-        WRITE_PERI_REG(SPI_W12(HSPI),0x15141312);
-        WRITE_PERI_REG(SPI_W13(HSPI),0x19181716);
-        WRITE_PERI_REG(SPI_W14(HSPI),0x1d1c1b1a);
-        WRITE_PERI_REG(SPI_W15(HSPI),0x21201f1e);
-        GPIO_OUTPUT_SET(2, 1);
-    }
-}
-
-
-
-void ICACHE_FLASH_ATTR
-    disp_spi_data()
-{
-    uint8 i = 0;
-    for(i=0;i<32;i++){
-        os_printf("data %d : 0x%02x\n\r",i,spi_data[i]);
-    }
-    //os_printf("d31:0x%02x\n\r",spi_data[31]);
-}
-
-
-void ICACHE_FLASH_ATTR
-    spi_task(os_event_t *e)
-{
-    uint8 data;
-    switch(e->sig){
-       case MOSI:
-            	disp_spi_data();
-            	break;
-	case STATUS_R_IN_WR :
-		os_printf("SR ERR in WRPR,Reg:%08x \n",e->par);
-		break;
-	case STATUS_W:
-		os_printf("SW ERR,Reg:%08x\n",e->par);
-		break;	
-	case TR_DONE_ALONE:
-		os_printf("TD ALO ERR,Reg:%08x\n",e->par);
-		break;	
-	case WR_RD:
-		os_printf("WR&RD ERR,Reg:%08x\n",e->par);
-		break;	
-	case DATA_ERROR:
-		os_printf("Data ERR,Reg:%08x\n",e->par);
-		break;
-	case STATUS_R_IN_RD :
-		os_printf("SR ERR in RDPR,Reg:%08x\n",e->par);
-		break;	
-        default:
-            break;
-    }
-}
-
-void ICACHE_FLASH_ATTR
-    spi_task_init(void)
-{
-    spiQueue = (os_event_t*)os_malloc(sizeof(os_event_t)*SPI_QUEUE_LEN);
-    system_os_task(spi_task,USER_TASK_PRIO_1,spiQueue,SPI_QUEUE_LEN);
-}
-
-os_timer_t spi_timer_test;
-
-void ICACHE_FLASH_ATTR
-    spi_test_init()
-{
-    os_printf("spi init\n\r");
-    spi_slave_init(HSPI);
-    os_printf("gpio init\n\r");
-    gpio_init();
-    os_printf("spi task init \n\r");
-    spi_task_init();
-#ifdef SPI_MISO
-    os_printf("spi miso init\n\r");
-    set_miso_data();
-#endif
-    
-    //os_timer_disarm(&spi_timer_test);
-    //os_timer_setfn(&spi_timer_test, (os_timer_func_t *)set_miso_data, NULL);//wjl
-    //os_timer_arm(&spi_timer_test,50,1);
-}
-
-#endif
-
-

+ 0 - 398
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/spi_overlap.c

@@ -1,398 +0,0 @@
-#include "driver/spi_overlap.h"
-#include "driver/spi.h"
-#include "gpio.h"
-
-#define SPI_FLASH_READ_MODE_MASK 0x196000
-#define WAIT_HSPI_IDLE() 	while(READ_PERI_REG(SPI_EXT2(HSPI))||(READ_PERI_REG(SPI_CMD(HSPI))&0xfffc0000));
-#define CONF_HSPI_CLK_DIV(div)	WRITE_PERI_REG(SPI_CLOCK(HSPI), (((div<<1)+1)<<12)+(div<<6)+(div<<1)+1)
-#define HSPI_FALLING_EDGE_SAMPLE()		SET_PERI_REG_MASK(SPI_USER(HSPI),  SPI_CK_OUT_EDGE)
-#define HSPI_RISING_EDGE_SAMPLE()			CLEAR_PERI_REG_MASK(SPI_USER(HSPI),  SPI_CK_OUT_EDGE)
-#define ACTIVE_HSPI_CS0	 	CLEAR_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS0_DIS);\
-						SET_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS1_DIS |SPI_CS2_DIS)
-#define ACTIVE_HSPI_CS1		CLEAR_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS1_DIS);\
-						SET_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS0_DIS |SPI_CS2_DIS)
-#define ACTIVE_HSPI_CS2		CLEAR_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS2_DIS);\
-						SET_PERI_REG_MASK(SPI_PIN(HSPI), SPI_CS0_DIS |SPI_CS1_DIS)
-#define ENABLE_HSPI_DEV_CS()		PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 2)
-#define DISABLE_HSPI_DEV_CS()		GPIO_OUTPUT_SET(15, 1);\
-									PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15)
-struct hspi_device_register hspi_dev_reg;
-/******************************************************************************
- * FunctionName : hspi_overlap_init
- * Description  : enable hspi and spi module overlap mode
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-hspi_overlap_init(void)
-{
-	//hspi overlap to spi, two spi masters on cspi
-	SET_PERI_REG_MASK(HOST_INF_SEL, reg_cspi_overlap);
-
-	//set higher priority for spi than hspi
-	SET_PERI_REG_MASK(SPI_EXT3(SPI),0x1);
-	SET_PERI_REG_MASK(SPI_EXT3(HSPI),0x3);
-	SET_PERI_REG_MASK(SPI_USER(HSPI), BIT(5));
-}
-/******************************************************************************
- * FunctionName : hspi_overlap_deinit
- * Description  : recover hspi and spi module from overlap mode
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-hspi_overlap_deinit(void)
-{
-	//hspi overlap to spi, two spi masters on cspi
-	CLEAR_PERI_REG_MASK(HOST_INF_SEL, reg_cspi_overlap);
-
-	//set higher priority for spi than hspi
-	CLEAR_PERI_REG_MASK(SPI_EXT3(SPI),0x1);
-	CLEAR_PERI_REG_MASK(SPI_EXT3(HSPI),0x3);
-	CLEAR_PERI_REG_MASK(SPI_USER(HSPI), BIT(5));
-}
-
-/******************************************************************************
- * FunctionName : spi_reg_backup
- * Description  : backup SPI normal operation register value and disable CPU cache to modify some flash registers.
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-    spi_reg_backup(uint8 spi_no,uint32* backup_mem)
-{
-	if(spi_no>1) 		return; //handle invalid input number
-
-	backup_mem[PERIPHS_IO_MUX_BACKUP]	=READ_PERI_REG(PERIPHS_IO_MUX);
-	backup_mem[SPI_USER_BACKUP]	=READ_PERI_REG(SPI_USER(spi_no)); 	
-	backup_mem[SPI_CTRL_BACKUP]	=READ_PERI_REG(SPI_CTRL(spi_no)); 	
-	backup_mem[SPI_CLOCK_BACKUP]	=READ_PERI_REG(SPI_CLOCK(spi_no));
-	backup_mem[SPI_USER1_BACKUP]	=READ_PERI_REG(SPI_USER1(spi_no));
-	backup_mem[SPI_USER2_BACKUP]	=READ_PERI_REG(SPI_USER2(spi_no));	
-	backup_mem[SPI_CMD_BACKUP]	=READ_PERI_REG(SPI_CMD(spi_no));
-	backup_mem[SPI_PIN_BACKUP]	=READ_PERI_REG(SPI_PIN(spi_no));
-	backup_mem[SPI_SLAVE_BACKUP]	=READ_PERI_REG(SPI_SLAVE(spi_no));
-}
-/******************************************************************************
- * FunctionName : spi_reg_recover
- * Description  : recover SPI normal operation register value and enable CPU cache.
- * Parameters   : 	uint8 spi_no - SPI module number, Only "SPI" and "HSPI" are valid
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-   spi_reg_recover(uint8 spi_no,uint32* backup_mem)
-{
-	if(spi_no>1) 		return; //handle invalid input number
-
-//	WRITE_PERI_REG(PERIPHS_IO_MUX, backup_mem[PERIPHS_IO_MUX_BACKUP]); 	
-	WRITE_PERI_REG(SPI_USER(spi_no), backup_mem[SPI_USER_BACKUP]); 	
-	WRITE_PERI_REG(SPI_CTRL(spi_no), backup_mem[SPI_CTRL_BACKUP]); 	
-	WRITE_PERI_REG(SPI_CLOCK(spi_no), backup_mem[SPI_CLOCK_BACKUP]); 	
-	WRITE_PERI_REG(SPI_USER1(spi_no), backup_mem[SPI_USER1_BACKUP]); 	
-	WRITE_PERI_REG(SPI_USER2(spi_no), backup_mem[SPI_USER2_BACKUP]); 	
-	WRITE_PERI_REG(SPI_CMD(spi_no), backup_mem[SPI_CMD_BACKUP]); 	
-	WRITE_PERI_REG(SPI_PIN(spi_no), backup_mem[SPI_PIN_BACKUP]); 
-//	WRITE_PERI_REG(SPI_SLAVE(spi_no), backup_mem[SPI_SLAVE_BACKUP]); 
-}
-
-void ICACHE_FLASH_ATTR  
-    hspi_master_dev_init(uint8 dev_no,uint8 clk_polar,uint8 clk_div)
-{
-	uint32 regtemp;
-	if((dev_no>3)||(clk_polar>1)||(clk_div>0x1f))
-	{
-		os_printf("hspi_master_dev_init parameter is out of range!\n\r");
-		return;
-	}
-	
-	WAIT_HSPI_IDLE();
-	if(!hspi_dev_reg.hspi_reg_backup_flag){
-		if(READ_PERI_REG(PERIPHS_IO_MUX)&BIT8){
-			hspi_dev_reg.spi_io_80m=1;
-			SET_PERI_REG_MASK(SPI_CLOCK(HSPI),SPI_CLK_EQU_SYSCLK);
-		}else{
-			hspi_dev_reg.spi_io_80m=0;
-			CLEAR_PERI_REG_MASK(SPI_CLOCK(HSPI),SPI_CLK_EQU_SYSCLK);
-		}
-		
-		regtemp=READ_PERI_REG(SPI_CTRL(SPI))&SPI_FLASH_READ_MODE_MASK;
-		CLEAR_PERI_REG_MASK(SPI_CTRL(HSPI), SPI_FLASH_READ_MODE_MASK);
-		SET_PERI_REG_MASK(SPI_CTRL(HSPI), regtemp);
-		spi_reg_backup(HSPI, hspi_dev_reg.hspi_flash_reg_backup);
-
-		spi_master_init(HSPI);
-		spi_reg_backup(HSPI, hspi_dev_reg.hspi_dev_reg_backup);
-
-		hspi_dev_reg.hspi_reg_backup_flag=1;
-		
-	//	spi_reg_recover(HSPI, hspi_dev_reg.hspi_flash_reg_backup);
-		hspi_dev_reg.selected_dev_num=HSPI_IDLE;
-	}
-
-	hspi_dev_reg.hspi_dev_conf[dev_no].active=1;
-	hspi_dev_reg.hspi_dev_conf[dev_no].clk_div=clk_div;
-	hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar=clk_polar;
-	
-	switch(dev_no){
-		case HSPI_CS_DEV :
-			PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, 2);
-			PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, 2);
-			PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, 2);	
-			PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, 2);
-			CLEAR_PERI_REG_MASK(PERIPHS_IO_MUX, BIT9);
-			break;
-
-		case SPI_CS1_DEV :	
-			PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_SPI_CS1);
-			if(hspi_dev_reg.spi_io_80m){	
-				os_printf("SPI CS1 device must work at 80Mhz");
-			}
-			break;
-			
-		case SPI_CS2_DEV :	
-			PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_SPI_CS2);
-			if(hspi_dev_reg.spi_io_80m){	
-				os_printf("SPI CS2 device must work at 80Mhz");
-			}
-			break;
-			
-		default: break;
-	}
-}
-
-void ICACHE_FLASH_ATTR
-    hspi_dev_sel(uint8 dev_no)
-{
-	uint32 regval;
-	
-	if(dev_no>3){
-		os_printf("hspi_dev_sel parameter is out of range!\n\r");
-		return;
-	}
-
-	if(!hspi_dev_reg.hspi_dev_conf[dev_no].active){
-		os_printf("device%d has not been initialized!\n\r",dev_no);
-		return;
-	}
-	
-	switch(hspi_dev_reg.selected_dev_num){
-		case HSPI_CS_DEV:
-			if((dev_no==SPI_CS1_DEV)||(dev_no==SPI_CS2_DEV)){
-				WAIT_HSPI_IDLE();
-				DISABLE_HSPI_DEV_CS();
-				hspi_overlap_init();
-				
-				if(hspi_dev_reg.spi_io_80m)	{SET_PERI_REG_MASK(SPI_CLOCK(HSPI), SPI_CLK_EQU_SYSCLK);}
-				else							{CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);}
-				
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-				
-				if(dev_no==SPI_CS1_DEV)		{ACTIVE_HSPI_CS1;}
-				else							{ACTIVE_HSPI_CS2;}
-			}
-			else if(dev_no==SPI_CS0_FLASH){
-				WAIT_HSPI_IDLE();
-				DISABLE_HSPI_DEV_CS();
-				hspi_overlap_init();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_flash_reg_backup);
-
-				if(hspi_dev_reg.spi_io_80m)	{SET_PERI_REG_MASK(SPI_CLOCK(HSPI), SPI_CLK_EQU_SYSCLK);}
-
-				HSPI_RISING_EDGE_SAMPLE();
-				ACTIVE_HSPI_CS0	;
-			}
-			break;
-
-		case SPI_CS1_DEV:
-			if(dev_no==SPI_CS2_DEV){
-				WAIT_HSPI_IDLE();
-				if(!hspi_dev_reg.spi_io_80m)	{CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);}
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-				ACTIVE_HSPI_CS2;			
-			}
-			else if(dev_no==SPI_CS0_FLASH){
-				WAIT_HSPI_IDLE();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_flash_reg_backup);
-				HSPI_RISING_EDGE_SAMPLE();
-				ACTIVE_HSPI_CS0;
-			}
-			else if(dev_no==HSPI_CS_DEV){
-				WAIT_HSPI_IDLE();
-				ENABLE_HSPI_DEV_CS();
-				hspi_overlap_deinit();
-				CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				ACTIVE_HSPI_CS0;
-			}
-			break;
-
-		case SPI_CS2_DEV:
-			if(dev_no==SPI_CS1_DEV){
-				WAIT_HSPI_IDLE();
-				if(!hspi_dev_reg.spi_io_80m)	{CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);}
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				ACTIVE_HSPI_CS1;
-			}
-			else if(dev_no==SPI_CS0_FLASH){
-				WAIT_HSPI_IDLE();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_flash_reg_backup);
-				HSPI_RISING_EDGE_SAMPLE();
-				ACTIVE_HSPI_CS0;
-			}
-			else if(dev_no==HSPI_CS_DEV){
-				WAIT_HSPI_IDLE();
-				ENABLE_HSPI_DEV_CS();
-				hspi_overlap_deinit();
-				CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				ACTIVE_HSPI_CS0;
-			}
-			break;
-			
-		case SPI_CS0_FLASH:
-			if((dev_no==SPI_CS1_DEV)||(dev_no==SPI_CS2_DEV)){
-				WAIT_HSPI_IDLE();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_dev_reg_backup);
-
-				if(hspi_dev_reg.spi_io_80m)	{SET_PERI_REG_MASK(SPI_CLOCK(HSPI), SPI_CLK_EQU_SYSCLK);}
-				else							{CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);}
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				if(dev_no==SPI_CS1_DEV)		{ACTIVE_HSPI_CS1;}
-				else							{ACTIVE_HSPI_CS2;}			
-			}
-			else if(dev_no==HSPI_CS_DEV){
-				WAIT_HSPI_IDLE();
-				ENABLE_HSPI_DEV_CS();
-				hspi_overlap_deinit();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_dev_reg_backup);
-				CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				ACTIVE_HSPI_CS0;
-			}
-			break;
-
-		default: 
-			if((dev_no==SPI_CS1_DEV)||(dev_no==SPI_CS2_DEV)){
-				WAIT_HSPI_IDLE();
-				DISABLE_HSPI_DEV_CS();
-				hspi_overlap_init();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_dev_reg_backup);
-				
-				if(hspi_dev_reg.spi_io_80m)	{SET_PERI_REG_MASK(SPI_CLOCK(HSPI), SPI_CLK_EQU_SYSCLK);}
-				else							{CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);}
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				if(dev_no==SPI_CS1_DEV)		{ACTIVE_HSPI_CS1;}
-				else							{ACTIVE_HSPI_CS2;}
-			}
-			else if(dev_no==SPI_CS0_FLASH){
-				WAIT_HSPI_IDLE();
-				DISABLE_HSPI_DEV_CS();
-				hspi_overlap_init();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_flash_reg_backup);
-
-				if(hspi_dev_reg.spi_io_80m)	{SET_PERI_REG_MASK(SPI_CLOCK(HSPI), SPI_CLK_EQU_SYSCLK);}
-				
-				HSPI_RISING_EDGE_SAMPLE();
-				ACTIVE_HSPI_CS0	;
-			}			
-			else if(dev_no==HSPI_CS_DEV){
-				WAIT_HSPI_IDLE();
-				ENABLE_HSPI_DEV_CS();
-				hspi_overlap_deinit();
-				spi_reg_recover(HSPI, hspi_dev_reg.hspi_dev_reg_backup);
-				CONF_HSPI_CLK_DIV(hspi_dev_reg.hspi_dev_conf[dev_no].clk_div);
-
-				if(hspi_dev_reg.hspi_dev_conf[dev_no].clk_polar)	{HSPI_FALLING_EDGE_SAMPLE();}
-				else												{HSPI_RISING_EDGE_SAMPLE();}
-
-				ACTIVE_HSPI_CS0;
-			}
-			break;
-	}
-	hspi_dev_reg.selected_dev_num=dev_no;
-}
-
-/******************************************************************************
- * FunctionName : spi_read_data
- * Description  : use hspi to read flash data for stability test
- * Parameters   : 	SpiFlashChip * spi-- flash parameter structure pointer
- * 				uint32 flash_addr--flash start address
- *				uint32 * addr_dest--start address for preped destination memory space
- *				uint32 byte_length--length of the data which needs to be read from flash
-*******************************************************************************/
-SpiFlashOpResult ICACHE_FLASH_ATTR
-hspi_overlap_read_flash_data(SpiFlashChip * spi, uint32 flash_addr, uint32 * addr_dest, uint32 byte_length)
-{
-    uint32  temp_addr,reg_tmp;
-    sint32  temp_length;
-    uint8   i;
-    uint8   remain_word_num;	
-	
-   hspi_dev_sel(SPI_CS0_FLASH);
-
-      //address range check 	
-   if ((flash_addr+byte_length) > (spi->chip_size))
-   {
-        return SPI_FLASH_RESULT_ERR;
-   }
-   
-    temp_addr = flash_addr;
-    temp_length = byte_length;
-	
-    while(temp_length > 0)
-    {
-       if(temp_length >= SPI_BUFF_BYTE_NUM)
-       {
-	//   reg_tmp=((temp_addr&0xff)<<16)|(temp_addr&0xff00)|((temp_addr&0xff0000)>>16)|(SPI_BUFF_BYTE_NUM << SPI_FLASH_BYTES_LEN);
-	   reg_tmp= temp_addr |(SPI_BUFF_BYTE_NUM<< SPI_FLASH_BYTES_LEN) ;
-	   WRITE_PERI_REG(SPI_ADDR(HSPI), reg_tmp);
-          WRITE_PERI_REG(SPI_CMD(HSPI), SPI_FLASH_READ);
-          while(READ_PERI_REG(SPI_CMD(HSPI)) != 0);
-
-          for(i=0; i<(SPI_BUFF_BYTE_NUM>>2);i++)
-          {    
-              *addr_dest++ = READ_PERI_REG(SPI_W0(HSPI)+i*4);
-          }
-          temp_length = temp_length - SPI_BUFF_BYTE_NUM;
-          temp_addr = temp_addr + SPI_BUFF_BYTE_NUM;
-       }
-       else
-       {
-            WRITE_PERI_REG(SPI_ADDR(HSPI), temp_addr |(temp_length << SPI_FLASH_BYTES_LEN ));
-            WRITE_PERI_REG(SPI_CMD(HSPI), SPI_FLASH_READ);
-            while(READ_PERI_REG(SPI_CMD(HSPI)) != 0);
-
-            remain_word_num = (0== (temp_length&0x3))? (temp_length>>2) : (temp_length>>2)+1;
-	     for (i=0; i<remain_word_num; i++)		
-	     {
-               *addr_dest++ = READ_PERI_REG(SPI_W0(HSPI)+i*4);
-	     }	 
-            temp_length = 0;
-        }
-    }
-
-    return SPI_FLASH_RESULT_OK;
-}
-
-void ICACHE_FLASH_ATTR
-hspi_overlap_flash_init(void)
-{
-	 hspi_master_dev_init(SPI_CS0_FLASH,0,0);
-
-	 spi_flash_set_read_func(hspi_overlap_read_flash_data);
-}

+ 0 - 788
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/driver/uart.c

@@ -1,788 +0,0 @@
-/*
- * File	: uart.c
- * Copyright (C) 2013 - 2016, Espressif Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of version 3 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "ets_sys.h"
-#include "osapi.h"
-#include "driver/uart.h"
-#include "osapi.h"
-#include "driver/uart_register.h"
-#include "mem.h"
-#include "os_type.h"
-
-// UartDev is defined and initialized in rom code.
-extern UartDevice    UartDev;
-
-LOCAL struct UartBuffer* pTxBuffer = NULL;
-LOCAL struct UartBuffer* pRxBuffer = NULL;
-
-/*uart demo with a system task, to output what uart receives*/
-/*this is a example to process uart data from task,please change the priority to fit your application task if exists*/
-/*it might conflict with your task, if so,please arrange the priority of different task,  or combine it to a different event in the same task. */
-#define uart_recvTaskPrio        0
-#define uart_recvTaskQueueLen    10
-os_event_t    uart_recvTaskQueue[uart_recvTaskQueueLen];
-
-#define DBG  
-#define DBG1 uart1_sendStr_no_wait
-#define DBG2 os_printf
-
-
-LOCAL void uart0_rx_intr_handler(void *para);
-
-/******************************************************************************
- * FunctionName : uart_config
- * Description  : Internal used function
- *                UART0 used for data TX/RX, RX buffer size is 0x100, interrupt enabled
- *                UART1 just used for debug output
- * Parameters   : uart_no, use UART0 or UART1 defined ahead
- * Returns      : NONE
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-uart_config(uint8 uart_no)
-{
-    if (uart_no == UART1){
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_U1TXD_BK);
-    }else{
-        /* rcv_buff size if 0x100 */
-        ETS_UART_INTR_ATTACH(uart0_rx_intr_handler,  &(UartDev.rcv_buff));
-        PIN_PULLUP_DIS(PERIPHS_IO_MUX_U0TXD_U);
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_U0TXD);
-	#if UART_HW_RTS
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_U0RTS);   //HW FLOW CONTROL RTS PIN
-        #endif
-	#if UART_HW_CTS
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_U0CTS);   //HW FLOW CONTROL CTS PIN
-        #endif
-    }
-    uart_div_modify(uart_no, UART_CLK_FREQ / (UartDev.baut_rate));//SET BAUDRATE
-    
-    WRITE_PERI_REG(UART_CONF0(uart_no), ((UartDev.exist_parity & UART_PARITY_EN_M)  <<  UART_PARITY_EN_S) //SET BIT AND PARITY MODE
-                                                                        | ((UartDev.parity & UART_PARITY_M)  <<UART_PARITY_S )
-                                                                        | ((UartDev.stop_bits & UART_STOP_BIT_NUM) << UART_STOP_BIT_NUM_S)
-                                                                        | ((UartDev.data_bits & UART_BIT_NUM) << UART_BIT_NUM_S));
-    
-    //clear rx and tx fifo,not ready
-    SET_PERI_REG_MASK(UART_CONF0(uart_no), UART_RXFIFO_RST | UART_TXFIFO_RST);    //RESET FIFO
-    CLEAR_PERI_REG_MASK(UART_CONF0(uart_no), UART_RXFIFO_RST | UART_TXFIFO_RST);
-    
-    if (uart_no == UART0){
-        //set rx fifo trigger
-        WRITE_PERI_REG(UART_CONF1(uart_no),
-        ((100 & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S) |
-        #if UART_HW_RTS
-        ((110 & UART_RX_FLOW_THRHD) << UART_RX_FLOW_THRHD_S) |
-        UART_RX_FLOW_EN |   //enbale rx flow control
-        #endif
-        (0x02 & UART_RX_TOUT_THRHD) << UART_RX_TOUT_THRHD_S |
-        UART_RX_TOUT_EN|
-        ((0x10 & UART_TXFIFO_EMPTY_THRHD)<<UART_TXFIFO_EMPTY_THRHD_S));//wjl 
-        #if UART_HW_CTS
-        SET_PERI_REG_MASK( UART_CONF0(uart_no),UART_TX_FLOW_EN);  //add this sentense to add a tx flow control via MTCK( CTS )
-        #endif
-        SET_PERI_REG_MASK(UART_INT_ENA(uart_no), UART_RXFIFO_TOUT_INT_ENA |UART_FRM_ERR_INT_ENA);
-    }else{
-        WRITE_PERI_REG(UART_CONF1(uart_no),((UartDev.rcv_buff.TrigLvl & UART_RXFIFO_FULL_THRHD) << UART_RXFIFO_FULL_THRHD_S));//TrigLvl default val == 1
-    }
-    //clear all interrupt
-    WRITE_PERI_REG(UART_INT_CLR(uart_no), 0xffff);
-    //enable rx_interrupt
-    SET_PERI_REG_MASK(UART_INT_ENA(uart_no), UART_RXFIFO_FULL_INT_ENA|UART_RXFIFO_OVF_INT_ENA);
-}
-
-/******************************************************************************
- * FunctionName : uart1_tx_one_char
- * Description  : Internal used function
- *                Use uart1 interface to transfer one char
- * Parameters   : uint8 TxChar - character to tx
- * Returns      : OK
-*******************************************************************************/
- STATUS uart_tx_one_char(uint8 uart, uint8 TxChar)
-{
-    while (true){
-        uint32 fifo_cnt = READ_PERI_REG(UART_STATUS(uart)) & (UART_TXFIFO_CNT<<UART_TXFIFO_CNT_S);
-        if ((fifo_cnt >> UART_TXFIFO_CNT_S & UART_TXFIFO_CNT) < 126) {
-            break;
-        }
-    }
-    WRITE_PERI_REG(UART_FIFO(uart) , TxChar);
-    return OK;
-}
-
-/******************************************************************************
- * FunctionName : uart1_write_char
- * Description  : Internal used function
- *                Do some special deal while tx char is '\r' or '\n'
- * Parameters   : char c - character to tx
- * Returns      : NONE
-*******************************************************************************/
-LOCAL void ICACHE_FLASH_ATTR
-uart1_write_char(char c)
-{
-    if (c == '\n'){
-        uart_tx_one_char(UART1, '\r');
-        uart_tx_one_char(UART1, '\n');
-    }else if (c == '\r'){
-    
-    }else{
-        uart_tx_one_char(UART1, c);
-    }
-}
-
-//os_printf output to fifo or to the tx buffer
-LOCAL void ICACHE_FLASH_ATTR
-uart0_write_char_no_wait(char c)
-{
-#if UART_BUFF_EN    //send to uart0 fifo but do not wait 
-    uint8 chr;
-    if (c == '\n'){
-        chr = '\r';
-        tx_buff_enq(&chr, 1);
-        chr = '\n';
-        tx_buff_enq(&chr, 1);
-    }else if (c == '\r'){
-    
-    }else{
-        tx_buff_enq(&c,1);
-    }
-#else //send to uart tx buffer
-    if (c == '\n'){
-        uart_tx_one_char_no_wait(UART0, '\r');
-        uart_tx_one_char_no_wait(UART0, '\n');
-    }else if (c == '\r'){
-    
-    }
-    else{
-        uart_tx_one_char_no_wait(UART0, c);
-    }
-#endif
-}
-
-/******************************************************************************
- * FunctionName : uart0_tx_buffer
- * Description  : use uart0 to transfer buffer
- * Parameters   : uint8 *buf - point to send buffer
- *                uint16 len - buffer len
- * Returns      :
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-uart0_tx_buffer(uint8 *buf, uint16 len)
-{
-    uint16 i;
-    for (i = 0; i < len; i++)
-    {
-        uart_tx_one_char(UART0, buf[i]);
-    }
-}
-
-/******************************************************************************
- * FunctionName : uart0_sendStr
- * Description  : use uart0 to transfer buffer
- * Parameters   : uint8 *buf - point to send buffer
- *                uint16 len - buffer len
- * Returns      :
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-uart0_sendStr(const char *str)
-{
-    while(*str){
-        uart_tx_one_char(UART0, *str++);
-    }
-}
-void at_port_print(const char *str) __attribute__((alias("uart0_sendStr")));
-/******************************************************************************
- * FunctionName : uart0_rx_intr_handler
- * Description  : Internal used function
- *                UART0 interrupt handler, add self handle code inside
- * Parameters   : void *para - point to ETS_UART_INTR_ATTACH's arg
- * Returns      : NONE
-*******************************************************************************/
-LOCAL void
-uart0_rx_intr_handler(void *para)
-{
-    /* uart0 and uart1 intr combine togther, when interrupt occur, see reg 0x3ff20020, bit2, bit0 represents
-    * uart1 and uart0 respectively
-    */
-    uint8 RcvChar;
-    uint8 uart_no = UART0;//UartDev.buff_uart_no;
-    uint8 fifo_len = 0;
-    uint8 buf_idx = 0;
-    uint8 temp,cnt;
-    //RcvMsgBuff *pRxBuff = (RcvMsgBuff *)para;
-    
-    	/*ATTENTION:*/
-	/*IN NON-OS VERSION SDK, DO NOT USE "ICACHE_FLASH_ATTR" FUNCTIONS IN THE WHOLE HANDLER PROCESS*/
-	/*ALL THE FUNCTIONS CALLED IN INTERRUPT HANDLER MUST BE DECLARED IN RAM */
-	/*IF NOT , POST AN EVENT AND PROCESS IN SYSTEM TASK */
-    if(UART_FRM_ERR_INT_ST == (READ_PERI_REG(UART_INT_ST(uart_no)) & UART_FRM_ERR_INT_ST)){
-        DBG1("FRM_ERR\r\n");
-        WRITE_PERI_REG(UART_INT_CLR(uart_no), UART_FRM_ERR_INT_CLR);
-    }else if(UART_RXFIFO_FULL_INT_ST == (READ_PERI_REG(UART_INT_ST(uart_no)) & UART_RXFIFO_FULL_INT_ST)){
-        DBG("f");
-        uart_rx_intr_disable(UART0);
-        WRITE_PERI_REG(UART_INT_CLR(UART0), UART_RXFIFO_FULL_INT_CLR);
-        system_os_post(uart_recvTaskPrio, 0, 0);
-    }else if(UART_RXFIFO_TOUT_INT_ST == (READ_PERI_REG(UART_INT_ST(uart_no)) & UART_RXFIFO_TOUT_INT_ST)){
-        DBG("t");
-        uart_rx_intr_disable(UART0);
-        WRITE_PERI_REG(UART_INT_CLR(UART0), UART_RXFIFO_TOUT_INT_CLR);
-        system_os_post(uart_recvTaskPrio, 0, 0);
-    }else if(UART_TXFIFO_EMPTY_INT_ST == (READ_PERI_REG(UART_INT_ST(uart_no)) & UART_TXFIFO_EMPTY_INT_ST)){
-        DBG("e");
-	/* to output uart data from uart buffer directly in empty interrupt handler*/
-	/*instead of processing in system event, in order not to wait for current task/function to quit */
-	/*ATTENTION:*/
-	/*IN NON-OS VERSION SDK, DO NOT USE "ICACHE_FLASH_ATTR" FUNCTIONS IN THE WHOLE HANDLER PROCESS*/
-	/*ALL THE FUNCTIONS CALLED IN INTERRUPT HANDLER MUST BE DECLARED IN RAM */
-	CLEAR_PERI_REG_MASK(UART_INT_ENA(UART0), UART_TXFIFO_EMPTY_INT_ENA);
-	#if UART_BUFF_EN
-		tx_start_uart_buffer(UART0);
-	#endif
-        //system_os_post(uart_recvTaskPrio, 1, 0);
-        WRITE_PERI_REG(UART_INT_CLR(uart_no), UART_TXFIFO_EMPTY_INT_CLR);
-        
-    }else if(UART_RXFIFO_OVF_INT_ST  == (READ_PERI_REG(UART_INT_ST(uart_no)) & UART_RXFIFO_OVF_INT_ST)){
-        WRITE_PERI_REG(UART_INT_CLR(uart_no), UART_RXFIFO_OVF_INT_CLR);
-        DBG1("RX OVF!!\r\n");
-    }
-
-}
-
-/******************************************************************************
- * FunctionName : uart_init
- * Description  : user interface for init uart
- * Parameters   : UartBautRate uart0_br - uart0 bautrate
- *                UartBautRate uart1_br - uart1 bautrate
- * Returns      : NONE
-*******************************************************************************/
-#if UART_SELFTEST&UART_BUFF_EN
-os_timer_t buff_timer_t;
-void ICACHE_FLASH_ATTR
-uart_test_rx()
-{
-    uint8 uart_buf[128]={0};
-    uint16 len = 0;
-    len = rx_buff_deq(uart_buf, 128 );
-    tx_buff_enq(uart_buf,len);
-}
-#endif
-
-LOCAL void ICACHE_FLASH_ATTR ///////
-uart_recvTask(os_event_t *events)
-{
-    if(events->sig == 0){
-    #if  UART_BUFF_EN  
-        Uart_rx_buff_enq();
-    #else
-        uint8 fifo_len = (READ_PERI_REG(UART_STATUS(UART0))>>UART_RXFIFO_CNT_S)&UART_RXFIFO_CNT;
-        uint8 d_tmp = 0;
-        uint8 idx=0;
-        for(idx=0;idx<fifo_len;idx++) {
-            d_tmp = READ_PERI_REG(UART_FIFO(UART0)) & 0xFF;
-            uart_tx_one_char(UART0, d_tmp);
-        }
-        WRITE_PERI_REG(UART_INT_CLR(UART0), UART_RXFIFO_FULL_INT_CLR|UART_RXFIFO_TOUT_INT_CLR);
-        uart_rx_intr_enable(UART0);
-    #endif
-    }else if(events->sig == 1){
-    #if UART_BUFF_EN
-	 //already move uart buffer output to uart empty interrupt
-        //tx_start_uart_buffer(UART0);
-    #else 
-    
-    #endif
-    }
-}
-
-void ICACHE_FLASH_ATTR
-uart_init(UartBautRate uart0_br, UartBautRate uart1_br)
-{
-    /*this is a example to process uart data from task,please change the priority to fit your application task if exists*/
-    system_os_task(uart_recvTask, uart_recvTaskPrio, uart_recvTaskQueue, uart_recvTaskQueueLen);  //demo with a task to process the uart data
-    
-    UartDev.baut_rate = uart0_br;
-    uart_config(UART0);
-    UartDev.baut_rate = uart1_br;
-    uart_config(UART1);
-    ETS_UART_INTR_ENABLE();
-    
-    #if UART_BUFF_EN
-    pTxBuffer = Uart_Buf_Init(UART_TX_BUFFER_SIZE);
-    pRxBuffer = Uart_Buf_Init(UART_RX_BUFFER_SIZE);
-    #endif
-
-
-    /*option 1: use default print, output from uart0 , will wait some time if fifo is full */
-    //do nothing...
-
-    /*option 2: output from uart1,uart1 output will not wait , just for output debug info */
-    /*os_printf output uart data via uart1(GPIO2)*/
-    //os_install_putc1((void *)uart1_write_char);    //use this one to output debug information via uart1 //
-
-    /*option 3: output from uart0 will skip current byte if fifo is full now... */
-    /*see uart0_write_char_no_wait:you can output via a buffer or output directly */
-    /*os_printf output uart data via uart0 or uart buffer*/
-    //os_install_putc1((void *)uart0_write_char_no_wait);  //use this to print via uart0
-    
-    #if UART_SELFTEST&UART_BUFF_EN
-    os_timer_disarm(&buff_timer_t);
-    os_timer_setfn(&buff_timer_t, uart_test_rx , NULL);   //a demo to process the data in uart rx buffer
-    os_timer_arm(&buff_timer_t,10,1);
-    #endif
-}
-
-void ICACHE_FLASH_ATTR
-uart_reattach()
-{
-    uart_init(BIT_RATE_115200, BIT_RATE_115200);
-}
-
-/******************************************************************************
- * FunctionName : uart_tx_one_char_no_wait
- * Description  : uart tx a single char without waiting for fifo 
- * Parameters   : uint8 uart - uart port
- *                uint8 TxChar - char to tx
- * Returns      : STATUS
-*******************************************************************************/
-STATUS uart_tx_one_char_no_wait(uint8 uart, uint8 TxChar)
-{
-    uint8 fifo_cnt = (( READ_PERI_REG(UART_STATUS(uart))>>UART_TXFIFO_CNT_S)& UART_TXFIFO_CNT);
-    if (fifo_cnt < 126) {
-        WRITE_PERI_REG(UART_FIFO(uart) , TxChar);
-    }
-    return OK;
-}
-
-STATUS uart0_tx_one_char_no_wait(uint8 TxChar)
-{
-    uint8 fifo_cnt = (( READ_PERI_REG(UART_STATUS(UART0))>>UART_TXFIFO_CNT_S)& UART_TXFIFO_CNT);
-    if (fifo_cnt < 126) {
-        WRITE_PERI_REG(UART_FIFO(UART0) , TxChar);
-    }
-    return OK;
-}
-
-
-/******************************************************************************
- * FunctionName : uart1_sendStr_no_wait
- * Description  : uart tx a string without waiting for every char, used for print debug info which can be lost
- * Parameters   : const char *str - string to be sent
- * Returns      : NONE
-*******************************************************************************/
-void uart1_sendStr_no_wait(const char *str)
-{
-    while(*str){
-        uart_tx_one_char_no_wait(UART1, *str++);
-    }
-}
-
-
-#if UART_BUFF_EN
-/******************************************************************************
- * FunctionName : Uart_Buf_Init
- * Description  : tx buffer enqueue: fill a first linked buffer 
- * Parameters   : char *pdata - data point  to be enqueue
- * Returns      : NONE
-*******************************************************************************/
-struct UartBuffer* ICACHE_FLASH_ATTR
-Uart_Buf_Init(uint32 buf_size)
-{
-    uint32 heap_size = system_get_free_heap_size();
-    if(heap_size <=buf_size){
-        DBG1("no buf for uart\n\r");
-        return NULL;
-    }else{
-        DBG("test heap size: %d\n\r",heap_size);
-        struct UartBuffer* pBuff = (struct UartBuffer* )os_malloc(sizeof(struct UartBuffer));
-        pBuff->UartBuffSize = buf_size;
-        pBuff->pUartBuff = (uint8*)os_malloc(pBuff->UartBuffSize);
-        pBuff->pInPos = pBuff->pUartBuff;
-        pBuff->pOutPos = pBuff->pUartBuff;
-        pBuff->Space = pBuff->UartBuffSize;
-        pBuff->BuffState = OK;
-        pBuff->nextBuff = NULL;
-        pBuff->TcpControl = RUN;
-        return pBuff;
-    }
-}
-
-
-//copy uart buffer
-LOCAL void Uart_Buf_Cpy(struct UartBuffer* pCur, char* pdata , uint16 data_len)
-{
-    if(data_len == 0) return ;
-    
-    uint16 tail_len = pCur->pUartBuff + pCur->UartBuffSize - pCur->pInPos ;
-    if(tail_len >= data_len){  //do not need to loop back  the queue
-        os_memcpy(pCur->pInPos , pdata , data_len );
-        pCur->pInPos += ( data_len );
-        pCur->pInPos = (pCur->pUartBuff +  (pCur->pInPos - pCur->pUartBuff) % pCur->UartBuffSize );
-        pCur->Space -=data_len;
-    }else{
-        os_memcpy(pCur->pInPos, pdata, tail_len);
-        pCur->pInPos += ( tail_len );
-        pCur->pInPos = (pCur->pUartBuff +  (pCur->pInPos - pCur->pUartBuff) % pCur->UartBuffSize );
-        pCur->Space -=tail_len;
-        os_memcpy(pCur->pInPos, pdata+tail_len , data_len-tail_len);
-        pCur->pInPos += ( data_len-tail_len );
-        pCur->pInPos = (pCur->pUartBuff +  (pCur->pInPos - pCur->pUartBuff) % pCur->UartBuffSize );
-        pCur->Space -=( data_len-tail_len);
-    }
-    
-}
-
-/******************************************************************************
- * FunctionName : uart_buf_free
- * Description  : deinit of the tx buffer
- * Parameters   : struct UartBuffer* pTxBuff - tx buffer struct pointer
- * Returns      : NONE
-*******************************************************************************/
-void ICACHE_FLASH_ATTR
-uart_buf_free(struct UartBuffer* pBuff)
-{
-    os_free(pBuff->pUartBuff);
-    os_free(pBuff);
-}
-
-
-//rx buffer dequeue
-uint16 ICACHE_FLASH_ATTR
-rx_buff_deq(char* pdata, uint16 data_len )
-{
-    uint16 buf_len =  (pRxBuffer->UartBuffSize- pRxBuffer->Space);
-    uint16 tail_len = pRxBuffer->pUartBuff + pRxBuffer->UartBuffSize - pRxBuffer->pOutPos ;
-    uint16 len_tmp = 0;
-    len_tmp = ((data_len > buf_len)?buf_len:data_len);
-    if(pRxBuffer->pOutPos <= pRxBuffer->pInPos){
-        os_memcpy(pdata, pRxBuffer->pOutPos,len_tmp);
-        pRxBuffer->pOutPos+= len_tmp;
-        pRxBuffer->Space += len_tmp;
-    }else{
-        if(len_tmp>tail_len){
-            os_memcpy(pdata, pRxBuffer->pOutPos, tail_len);
-            pRxBuffer->pOutPos += tail_len;
-            pRxBuffer->pOutPos = (pRxBuffer->pUartBuff +  (pRxBuffer->pOutPos- pRxBuffer->pUartBuff) % pRxBuffer->UartBuffSize );
-            pRxBuffer->Space += tail_len;
-            
-            os_memcpy(pdata+tail_len , pRxBuffer->pOutPos, len_tmp-tail_len);
-            pRxBuffer->pOutPos+= ( len_tmp-tail_len );
-            pRxBuffer->pOutPos= (pRxBuffer->pUartBuff +  (pRxBuffer->pOutPos- pRxBuffer->pUartBuff) % pRxBuffer->UartBuffSize );
-            pRxBuffer->Space +=( len_tmp-tail_len);                
-        }else{
-            //os_printf("case 3 in rx deq\n\r");
-            os_memcpy(pdata, pRxBuffer->pOutPos, len_tmp);
-            pRxBuffer->pOutPos += len_tmp;
-            pRxBuffer->pOutPos = (pRxBuffer->pUartBuff +  (pRxBuffer->pOutPos- pRxBuffer->pUartBuff) % pRxBuffer->UartBuffSize );
-            pRxBuffer->Space += len_tmp;
-        }
-    }
-    if(pRxBuffer->Space >= UART_FIFO_LEN){
-        uart_rx_intr_enable(UART0);
-    }
-    return len_tmp; 
-}
-
-
-//move data from uart fifo to rx buffer
-void Uart_rx_buff_enq()
-{
-    uint8 fifo_len,buf_idx;
-    uint8 fifo_data;
-    #if 1
-    fifo_len = (READ_PERI_REG(UART_STATUS(UART0))>>UART_RXFIFO_CNT_S)&UART_RXFIFO_CNT;
-    if(fifo_len >= pRxBuffer->Space){
-        os_printf("buf full!!!\n\r");            
-    }else{
-        buf_idx=0;
-        while(buf_idx < fifo_len){
-            buf_idx++;
-            fifo_data = READ_PERI_REG(UART_FIFO(UART0)) & 0xFF;
-            *(pRxBuffer->pInPos++) = fifo_data;
-            if(pRxBuffer->pInPos == (pRxBuffer->pUartBuff + pRxBuffer->UartBuffSize)){
-                pRxBuffer->pInPos = pRxBuffer->pUartBuff;
-            }            
-        }
-        pRxBuffer->Space -= fifo_len ;
-        if(pRxBuffer->Space >= UART_FIFO_LEN){
-            //os_printf("after rx enq buf enough\n\r");
-            uart_rx_intr_enable(UART0);
-        }
-    }
-    #endif
-}
-
-
-//fill the uart tx buffer
-void ICACHE_FLASH_ATTR
-tx_buff_enq(char* pdata, uint16 data_len )
-{
-    CLEAR_PERI_REG_MASK(UART_INT_ENA(UART0), UART_TXFIFO_EMPTY_INT_ENA);
-
-    if(pTxBuffer == NULL){
-        DBG1("\n\rnull, create buffer struct\n\r");
-        pTxBuffer = Uart_Buf_Init(UART_TX_BUFFER_SIZE);
-        if(pTxBuffer!= NULL){
-            Uart_Buf_Cpy(pTxBuffer ,  pdata,  data_len );
-        }else{
-            DBG1("uart tx MALLOC no buf \n\r");
-        }
-    }else{
-        if(data_len <= pTxBuffer->Space){
-        Uart_Buf_Cpy(pTxBuffer ,  pdata,  data_len);
-        }else{
-            DBG1("UART TX BUF FULL!!!!\n\r");
-        }
-    }
-    #if 0
-    if(pTxBuffer->Space <= URAT_TX_LOWER_SIZE){
-	    set_tcp_block();        
-    }
-    #endif
-    SET_PERI_REG_MASK(UART_CONF1(UART0), (UART_TX_EMPTY_THRESH_VAL & UART_TXFIFO_EMPTY_THRHD)<<UART_TXFIFO_EMPTY_THRHD_S);
-    SET_PERI_REG_MASK(UART_INT_ENA(UART0), UART_TXFIFO_EMPTY_INT_ENA);
-}
-
-
-
-//--------------------------------
-LOCAL void tx_fifo_insert(struct UartBuffer* pTxBuff, uint8 data_len,  uint8 uart_no)
-{
-    uint8 i;
-    for(i = 0; i<data_len;i++){
-        WRITE_PERI_REG(UART_FIFO(uart_no) , *(pTxBuff->pOutPos++));
-        if(pTxBuff->pOutPos == (pTxBuff->pUartBuff + pTxBuff->UartBuffSize)){
-            pTxBuff->pOutPos = pTxBuff->pUartBuff;
-        }
-    }
-    pTxBuff->pOutPos = (pTxBuff->pUartBuff +  (pTxBuff->pOutPos - pTxBuff->pUartBuff) % pTxBuff->UartBuffSize );
-    pTxBuff->Space += data_len;
-}
-
-
-/******************************************************************************
- * FunctionName : tx_start_uart_buffer
- * Description  : get data from the tx buffer and fill the uart tx fifo, co-work with the uart fifo empty interrupt
- * Parameters   : uint8 uart_no - uart port num
- * Returns      : NONE
-*******************************************************************************/
-void tx_start_uart_buffer(uint8 uart_no)
-{
-    uint8 tx_fifo_len = (READ_PERI_REG(UART_STATUS(uart_no))>>UART_TXFIFO_CNT_S)&UART_TXFIFO_CNT;
-    uint8 fifo_remain = UART_FIFO_LEN - tx_fifo_len ;
-    uint8 len_tmp;
-    uint16 tail_ptx_len,head_ptx_len,data_len;
-    //struct UartBuffer* pTxBuff = *get_buff_prt();
-    
-    if(pTxBuffer){      
-        data_len = (pTxBuffer->UartBuffSize - pTxBuffer->Space);
-        if(data_len > fifo_remain){
-            len_tmp = fifo_remain;
-            tx_fifo_insert( pTxBuffer,len_tmp,uart_no);
-            SET_PERI_REG_MASK(UART_INT_ENA(UART0), UART_TXFIFO_EMPTY_INT_ENA);
-        }else{
-            len_tmp = data_len;
-            tx_fifo_insert( pTxBuffer,len_tmp,uart_no);
-        }
-    }else{
-        DBG1("pTxBuff null \n\r");
-    }
-}
-
-#endif
-
-
-void uart_rx_intr_disable(uint8 uart_no)
-{
-#if 1
-    CLEAR_PERI_REG_MASK(UART_INT_ENA(uart_no), UART_RXFIFO_FULL_INT_ENA|UART_RXFIFO_TOUT_INT_ENA);
-#else
-    ETS_UART_INTR_DISABLE();
-#endif
-}
-
-void uart_rx_intr_enable(uint8 uart_no)
-{
-#if 1
-    SET_PERI_REG_MASK(UART_INT_ENA(uart_no), UART_RXFIFO_FULL_INT_ENA|UART_RXFIFO_TOUT_INT_ENA);
-#else
-    ETS_UART_INTR_ENABLE();
-#endif
-}
-
-
-//========================================================
-LOCAL void
-uart0_write_char(char c)
-{
-    if (c == '\n') {
-        uart_tx_one_char(UART0, '\r');
-        uart_tx_one_char(UART0, '\n');
-    } else if (c == '\r') {
-    } else {
-        uart_tx_one_char(UART0, c);
-    }
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetWordLength(uint8 uart_no, UartBitsNum4Char len) 
-{
-    SET_PERI_REG_BITS(UART_CONF0(uart_no),UART_BIT_NUM,len,UART_BIT_NUM_S);
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetStopBits(uint8 uart_no, UartStopBitsNum bit_num) 
-{
-    SET_PERI_REG_BITS(UART_CONF0(uart_no),UART_STOP_BIT_NUM,bit_num,UART_STOP_BIT_NUM_S);
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetLineInverse(uint8 uart_no, UART_LineLevelInverse inverse_mask) 
-{
-    CLEAR_PERI_REG_MASK(UART_CONF0(uart_no), UART_LINE_INV_MASK);
-    SET_PERI_REG_MASK(UART_CONF0(uart_no), inverse_mask);
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetParity(uint8 uart_no, UartParityMode Parity_mode) 
-{
-    CLEAR_PERI_REG_MASK(UART_CONF0(uart_no), UART_PARITY |UART_PARITY_EN);
-    if(Parity_mode==NONE_BITS){
-    }else{
-        SET_PERI_REG_MASK(UART_CONF0(uart_no), Parity_mode|UART_PARITY_EN);
-    }
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetBaudrate(uint8 uart_no,uint32 baud_rate)
-{
-    uart_div_modify(uart_no, UART_CLK_FREQ /baud_rate);
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetFlowCtrl(uint8 uart_no,UART_HwFlowCtrl flow_ctrl,uint8 rx_thresh)
-{
-    if(flow_ctrl&USART_HardwareFlowControl_RTS){
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_U0RTS);
-        SET_PERI_REG_BITS(UART_CONF1(uart_no),UART_RX_FLOW_THRHD,rx_thresh,UART_RX_FLOW_THRHD_S);
-        SET_PERI_REG_MASK(UART_CONF1(uart_no), UART_RX_FLOW_EN);
-    }else{
-        CLEAR_PERI_REG_MASK(UART_CONF1(uart_no), UART_RX_FLOW_EN);
-    }
-    if(flow_ctrl&USART_HardwareFlowControl_CTS){
-        PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_UART0_CTS);
-        SET_PERI_REG_MASK(UART_CONF0(uart_no), UART_TX_FLOW_EN);
-    }else{
-        CLEAR_PERI_REG_MASK(UART_CONF0(uart_no), UART_TX_FLOW_EN);
-    }
-}
-
-void ICACHE_FLASH_ATTR
-UART_WaitTxFifoEmpty(uint8 uart_no , uint32 time_out_us) //do not use if tx flow control enabled
-{
-    uint32 t_s = system_get_time();
-    while (READ_PERI_REG(UART_STATUS(uart_no)) & (UART_TXFIFO_CNT << UART_TXFIFO_CNT_S)){
-		
-        if(( system_get_time() - t_s )> time_out_us){
-            break;
-        }
-	WRITE_PERI_REG(0X60000914, 0X73);//WTD
-
-    }
-}
-
-
-bool ICACHE_FLASH_ATTR
-UART_CheckOutputFinished(uint8 uart_no, uint32 time_out_us)
-{
-    uint32 t_start = system_get_time();
-    uint8 tx_fifo_len;
-    uint32 tx_buff_len;
-    while(1){
-        tx_fifo_len =( (READ_PERI_REG(UART_STATUS(uart_no))>>UART_TXFIFO_CNT_S)&UART_TXFIFO_CNT);
-        if(pTxBuffer){
-            tx_buff_len = ((pTxBuffer->UartBuffSize)-(pTxBuffer->Space));
-        }else{
-            tx_buff_len = 0;
-        }
-		
-        if( tx_fifo_len==0 && tx_buff_len==0){
-            return TRUE;
-        }
-        if( system_get_time() - t_start > time_out_us){
-            return FALSE;
-        }
-	WRITE_PERI_REG(0X60000914, 0X73);//WTD
-    }    
-}
-
-
-void ICACHE_FLASH_ATTR
-UART_ResetFifo(uint8 uart_no)
-{
-    SET_PERI_REG_MASK(UART_CONF0(uart_no), UART_RXFIFO_RST | UART_TXFIFO_RST);
-    CLEAR_PERI_REG_MASK(UART_CONF0(uart_no), UART_RXFIFO_RST | UART_TXFIFO_RST);
-}
-
-void ICACHE_FLASH_ATTR
-UART_ClearIntrStatus(uint8 uart_no,uint32 clr_mask)
-{
-    WRITE_PERI_REG(UART_INT_CLR(uart_no), clr_mask);
-}
-
-void ICACHE_FLASH_ATTR
-UART_SetIntrEna(uint8 uart_no,uint32 ena_mask)
-{
-    SET_PERI_REG_MASK(UART_INT_ENA(uart_no), ena_mask);
-}
-
-
-void ICACHE_FLASH_ATTR
-UART_SetPrintPort(uint8 uart_no)
-{
-    if(uart_no==1){
-        os_install_putc1(uart1_write_char);
-    }else{
-        /*option 1: do not wait if uart fifo is full,drop current character*/
-        os_install_putc1(uart0_write_char_no_wait);
-	/*option 2: wait for a while if uart fifo is full*/
-	os_install_putc1(uart0_write_char);
-    }
-}
-
-
-//========================================================
-
-
-/*test code*/
-void ICACHE_FLASH_ATTR
-uart_init_2(UartBautRate uart0_br, UartBautRate uart1_br)
-{
-    // rom use 74880 baut_rate, here reinitialize
-    UartDev.baut_rate = uart0_br;
-    UartDev.exist_parity = STICK_PARITY_EN;
-    UartDev.parity = EVEN_BITS;
-    UartDev.stop_bits = ONE_STOP_BIT;
-    UartDev.data_bits = EIGHT_BITS;
-	
-    uart_config(UART0);
-    UartDev.baut_rate = uart1_br;
-    uart_config(UART1);
-    ETS_UART_INTR_ENABLE();
-
-    // install uart1 putc callback
-    os_install_putc1((void *)uart1_write_char);//print output at UART1
-}
-
-

+ 0 - 9
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/gpio16.h

@@ -1,9 +0,0 @@
-#ifndef __GPIO16_H__
-#define __GPIO16_H__
-
-void gpio16_output_conf(void);
-void gpio16_output_set(uint8 value);
-void gpio16_input_conf(void);
-uint8 gpio16_input_get(void);
-
-#endif

+ 0 - 57
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/i2c_master.h

@@ -1,57 +0,0 @@
-#ifndef __I2C_MASTER_H__
-#define __I2C_MASTER_H__
-
-#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
-#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_MTMS_U
-#define I2C_MASTER_SDA_GPIO 2
-#define I2C_MASTER_SCL_GPIO 14
-#define I2C_MASTER_SDA_FUNC FUNC_GPIO2
-#define I2C_MASTER_SCL_FUNC FUNC_GPIO14
-
-//#define I2C_MASTER_SDA_MUX PERIPHS_IO_MUX_GPIO2_U
-//#define I2C_MASTER_SCL_MUX PERIPHS_IO_MUX_GPIO0_U
-//#define I2C_MASTER_SDA_GPIO 2
-//#define I2C_MASTER_SCL_GPIO 0
-//#define I2C_MASTER_SDA_FUNC FUNC_GPIO2
-//#define I2C_MASTER_SCL_FUNC FUNC_GPIO0
-
-#if 0
-#define I2C_MASTER_GPIO_SET(pin)  \
-    gpio_output_set(1<<pin,0,1<<pin,0)
-
-#define I2C_MASTER_GPIO_CLR(pin) \
-    gpio_output_set(0,1<<pin,1<<pin,0)
-
-#define I2C_MASTER_GPIO_OUT(pin,val) \
-    if(val) I2C_MASTER_GPIO_SET(pin);\
-    else I2C_MASTER_GPIO_CLR(pin)
-#endif
-
-#define I2C_MASTER_SDA_HIGH_SCL_HIGH()  \
-    gpio_output_set(1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-#define I2C_MASTER_SDA_HIGH_SCL_LOW()  \
-    gpio_output_set(1<<I2C_MASTER_SDA_GPIO, 1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-#define I2C_MASTER_SDA_LOW_SCL_HIGH()  \
-    gpio_output_set(1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-#define I2C_MASTER_SDA_LOW_SCL_LOW()  \
-    gpio_output_set(0, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 1<<I2C_MASTER_SDA_GPIO | 1<<I2C_MASTER_SCL_GPIO, 0)
-
-void i2c_master_gpio_init(void);
-void i2c_master_init(void);
-
-#define i2c_master_wait    os_delay_us
-void i2c_master_stop(void);
-void i2c_master_start(void);
-void i2c_master_setAck(uint8 level);
-uint8 i2c_master_getAck(void);
-uint8 i2c_master_readByte(void);
-void i2c_master_writeByte(uint8 wrdata);
-
-bool i2c_master_checkAck(void);
-void i2c_master_send_ack(void);
-void i2c_master_send_nack(void);
-
-#endif

+ 0 - 27
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/key.h

@@ -1,27 +0,0 @@
-#ifndef __KEY_H__
-#define __KEY_H__
-
-#include "gpio.h"
-
-typedef void (* key_function)(void);
-
-struct single_key_param {
-    uint8 key_level;
-    uint8 gpio_id;
-    uint8 gpio_func;
-    uint32 gpio_name;
-    os_timer_t key_5s;
-    os_timer_t key_50ms;
-    key_function short_press;
-    key_function long_press;
-};
-
-struct keys_param {
-    uint8 key_num;
-    struct single_key_param **single_key;
-};
-
-struct single_key_param *key_init_single(uint8 gpio_id, uint32 gpio_name, uint8 gpio_func, key_function long_press, key_function short_press);
-void key_init(struct keys_param *key);
-
-#endif

+ 0 - 50
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/spi.h

@@ -1,50 +0,0 @@
-#ifndef SPI_APP_H
-#define SPI_APP_H
-
-#include "spi_register.h"
-#include "ets_sys.h"
-#include "osapi.h"
-#include "uart.h"
-#include "os_type.h"
-#include "spi_flash.h"
-
-#define SPI_FLASH_BYTES_LEN                24
-#define IODATA_START_ADDR                 BIT0
-#define SPI_BUFF_BYTE_NUM                    32
-
-/*SPI number define*/
-#define SPI 			0
-#define HSPI			1
-
-void cache_flush(void);
-//spi master init funtion
-void spi_master_init(uint8 spi_no);
-
-//lcd drive function
-void spi_lcd_9bit_write(uint8 spi_no,uint8 high_bit,uint8 low_8bit);
-//use spi send 8bit data
-void spi_mast_byte_write(uint8 spi_no,uint8 data);
-
-//transmit data to esp8266 slave buffer,which needs 16bit transmission ,
-//first byte is master command 0x04, second byte is master data
-void spi_byte_write_espslave(uint8 spi_no,uint8 data);
-//read data from esp8266 slave buffer,which needs 16bit transmission ,
-//first byte is master command 0x06, second byte is to read slave data
-void spi_byte_read_espslave(uint8 spi_no,uint8 *data);
-
- //esp8266 slave mode initial
-void spi_slave_init(uint8 spi_no,uint8 data_len);
-  //esp8266 slave isr handle funtion,tiggered when any transmission is finished.
-  //the function is registered in spi_slave_init.
-void spi_slave_isr_handler(void *para); 
-
-
-//hspi test function, used to test esp8266 spi slave
-void hspi_master_readwrite_repeat(void);
-
-
-void spi_test_init(void);
-
-
-#endif
-

+ 0 - 61
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/spi_overlap.h

@@ -1,61 +0,0 @@
-#ifndef SPI_OVERLAP_APP_H
-#define SPI_OVERLAP_APP_H
-
-#include "ets_sys.h"
-#include "spi_flash.h"
-#define HSPI_OVERLAP
-//#define NO_HSPI_DEVICE
-#define HOST_INF_SEL 0x3ff00028 
-#define FUNC_SPI_CS2 1
-#define FUNC_SPI_CS1 1
-#define reg_cspi_overlap  (BIT7)
-
-#define SPI_FLASH_BYTES_LEN                24
-#define IODATA_START_ADDR                 BIT0
-#define SPI_BUFF_BYTE_NUM                    32
-
-#define PERIPHS_IO_MUX_BACKUP		0
-#define SPI_USER_BACKUP  	1
-#define SPI_CTRL_BACKUP  	2 
-#define SPI_CLOCK_BACKUP 	3
-#define SPI_USER1_BACKUP	4
-#define SPI_USER2_BACKUP	5
-#define SPI_CMD_BACKUP		6
-#define SPI_PIN_BACKUP		7
-#define SPI_SLAVE_BACKUP	8
-
-#define HSPI_CS_DEV			0
-#define SPI_CS1_DEV			1
-#define SPI_CS2_DEV			2
-#define SPI_CS0_FLASH		3
-#define HSPI_IDLE			4
-
-struct hspi_device_config{
-	uint8 active:1;
-	uint8 clk_polar:1;
-	uint8 res:1;
-	uint8 clk_div:5;
-};
-
-struct hspi_device_register{
-	uint32 hspi_flash_reg_backup[9];
-	uint32 hspi_dev_reg_backup[9];
-	struct hspi_device_config hspi_dev_conf[4];
-	uint8 selected_dev_num:3;
-	uint8 spi_io_80m:1;
-	uint8 hspi_reg_backup_flag:1;
-	uint8 res:3;
-};
-
-void hspi_overlap_init(void);
-void hspi_overlap_deinit(void);
-void spi_reg_recover(uint8 spi_no,uint32* backup_mem);
-void spi_reg_backup(uint8 spi_no,uint32* backup_mem);
-
-void hspi_master_dev_init(uint8 dev_no,uint8 clk_polar,uint8 clk_div);
-void hspi_dev_sel(uint8 dev_no);
-
-void hspi_overlap_flash_init(void);
-SpiFlashOpResult hspi_overlap_read_flash_data(SpiFlashChip * spi, uint32 flash_addr, uint32 * addr_dest, uint32 byte_length);
-
-#endif

+ 0 - 202
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/spi_register.h

@@ -1,202 +0,0 @@
-/*
- *  Copyright (c) 2010 - 2011 Espressif System
- *
- */
-
-#ifndef SPI_REGISTER_H_INCLUDED
-#define SPI_REGISTER_H_INCLUDED
-
-#define REG_SPI_BASE(i)  (0x60000200-i*0x100)
-#define SPI_CMD(i)                            (REG_SPI_BASE(i)  + 0x0)
-
-#define SPI_FLASH_READ                          BIT31
-#define SPI_FLASH_WREN                         BIT30
-#define SPI_FLASH_WRDI                         BIT29
-#define SPI_FLASH_RDID                          BIT28
-#define SPI_FLASH_RDSR                          BIT27
-#define SPI_FLASH_WRSR                         BIT26
-#define SPI_FLASH_PP                              BIT25
-#define SPI_FLASH_SE                              BIT24
-#define SPI_FLASH_BE                              BIT23
-#define SPI_FLASH_CE                              BIT22
-#define SPI_FLASH_RES                            BIT20
-
-#define SPI_USR (BIT(18))
-
-#define SPI_ADDR(i)                           (REG_SPI_BASE(i)  + 0x4)
-
-#define SPI_CTRL(i)                           (REG_SPI_BASE(i)  + 0x8)
-#define SPI_WR_BIT_ORDER (BIT(26))
-#define SPI_RD_BIT_ORDER (BIT(25))
-#define SPI_QIO_MODE (BIT(24))
-#define SPI_DIO_MODE (BIT(23))
-#define SPI_QOUT_MODE (BIT(20))
-#define SPI_DOUT_MODE (BIT(14))
-#define SPI_FASTRD_MODE (BIT(13))
-
-#define SPI_CTRL1(i)                         (REG_SPI_BASE(i)  + 0xc)
-#define  SPI_CS_HOLD_DELAY  0xf  
-#define  SPI_CS_HOLD_DELAY_S   28
-#define  SPI_CS_HOLD_DELAY_RES  0xfff 
-#define  SPI_CS_HOLD_DELAY_RES_S   16
-
-
-#define SPI_RD_STATUS(i)                         (REG_SPI_BASE(i)  + 0x10)
-
-#define SPI_CTRL2(i)                           (REG_SPI_BASE(i)  + 0x14)
-
-#define SPI_CS_DELAY_NUM 0x0000000F
-#define SPI_CS_DELAY_NUM_S 28
-#define SPI_CS_DELAY_MODE 0x00000003
-#define SPI_CS_DELAY_MODE_S 26
-#define SPI_MOSI_DELAY_NUM 0x00000007
-#define SPI_MOSI_DELAY_NUM_S 23
-#define SPI_MOSI_DELAY_MODE 0x00000003
-#define SPI_MOSI_DELAY_MODE_S 21
-#define SPI_MISO_DELAY_NUM 0x00000007
-#define SPI_MISO_DELAY_NUM_S 18
-#define SPI_MISO_DELAY_MODE 0x00000003
-#define SPI_MISO_DELAY_MODE_S 16
-#define SPI_CLOCK(i)                          (REG_SPI_BASE(i)  + 0x18)
-#define SPI_CLK_EQU_SYSCLK (BIT(31))
-#define SPI_CLKDIV_PRE 0x00001FFF
-#define SPI_CLKDIV_PRE_S 18
-#define SPI_CLKCNT_N 0x0000003F
-#define SPI_CLKCNT_N_S 12
-#define SPI_CLKCNT_H 0x0000003F
-#define SPI_CLKCNT_H_S 6
-#define SPI_CLKCNT_L 0x0000003F
-#define SPI_CLKCNT_L_S 0
-
-#define SPI_USER(i)                           (REG_SPI_BASE(i)  + 0x1C)
-#define SPI_USR_COMMAND (BIT(31))
-#define SPI_USR_ADDR (BIT(30))
-#define SPI_USR_DUMMY (BIT(29))
-#define SPI_USR_MISO (BIT(28))
-#define SPI_USR_MOSI (BIT(27))
-
-#define SPI_USR_MOSI_HIGHPART (BIT(25))
-#define SPI_USR_MISO_HIGHPART (BIT(24))
-
-
-#define SPI_SIO (BIT(16))
-#define SPI_FWRITE_QIO (BIT(15))
-#define SPI_FWRITE_DIO (BIT(14))
-#define SPI_FWRITE_QUAD (BIT(13))
-#define SPI_FWRITE_DUAL (BIT(12))
-#define SPI_WR_BYTE_ORDER (BIT(11))
-#define SPI_RD_BYTE_ORDER (BIT(10))
-#define SPI_CK_OUT_EDGE (BIT(7))
-#define SPI_CK_I_EDGE (BIT(6))
-#define SPI_CS_SETUP (BIT(5))
-#define SPI_CS_HOLD (BIT(4))
-#define SPI_FLASH_MODE (BIT(2))
-
-#define SPI_USER1(i)                          (REG_SPI_BASE(i) + 0x20)
-#define SPI_USR_ADDR_BITLEN 0x0000003F
-#define SPI_USR_ADDR_BITLEN_S 26
-#define SPI_USR_MOSI_BITLEN 0x000001FF
-#define SPI_USR_MOSI_BITLEN_S 17
-#define SPI_USR_MISO_BITLEN 0x000001FF
-#define SPI_USR_MISO_BITLEN_S 8
-
-#define SPI_USR_DUMMY_CYCLELEN 0x000000FF
-#define SPI_USR_DUMMY_CYCLELEN_S 0
-
-#define SPI_USER2(i)                          (REG_SPI_BASE(i)  + 0x24)
-#define SPI_USR_COMMAND_BITLEN 0x0000000F
-#define SPI_USR_COMMAND_BITLEN_S 28
-#define SPI_USR_COMMAND_VALUE 0x0000FFFF
-#define SPI_USR_COMMAND_VALUE_S 0
-
-#define SPI_WR_STATUS(i)                          (REG_SPI_BASE(i)  + 0x28)
-#define SPI_PIN(i)                            (REG_SPI_BASE(i)  + 0x2C)
-#define SPI_CS2_DIS (BIT(2))
-#define SPI_CS1_DIS (BIT(1))
-#define SPI_CS0_DIS (BIT(0))
-
-#define SPI_SLAVE(i)                          (REG_SPI_BASE(i)  + 0x30)
-#define SPI_SYNC_RESET (BIT(31))
-#define SPI_SLAVE_MODE (BIT(30))
-#define SPI_SLV_WR_RD_BUF_EN (BIT(29))
-#define SPI_SLV_WR_RD_STA_EN (BIT(28))
-#define SPI_SLV_CMD_DEFINE (BIT(27))
-#define SPI_TRANS_CNT 0x0000000F
-#define SPI_TRANS_CNT_S 23
-#define SPI_TRANS_DONE_EN (BIT(9))
-#define SPI_SLV_WR_STA_DONE_EN (BIT(8))
-#define SPI_SLV_RD_STA_DONE_EN (BIT(7))
-#define SPI_SLV_WR_BUF_DONE_EN (BIT(6))
-#define SPI_SLV_RD_BUF_DONE_EN (BIT(5))
-
-
-
-#define SLV_SPI_INT_EN   0x0000001f
-#define SLV_SPI_INT_EN_S 5
-
-#define SPI_TRANS_DONE (BIT(4))
-#define SPI_SLV_WR_STA_DONE (BIT(3))
-#define SPI_SLV_RD_STA_DONE (BIT(2))
-#define SPI_SLV_WR_BUF_DONE (BIT(1))
-#define SPI_SLV_RD_BUF_DONE (BIT(0))
-
-#define SPI_SLAVE1(i)                         (REG_SPI_BASE(i)  + 0x34)
-#define SPI_SLV_STATUS_BITLEN 0x0000001F
-#define SPI_SLV_STATUS_BITLEN_S 27
-#define SPI_SLV_BUF_BITLEN 0x000001FF
-#define SPI_SLV_BUF_BITLEN_S 16
-#define SPI_SLV_RD_ADDR_BITLEN 0x0000003F
-#define SPI_SLV_RD_ADDR_BITLEN_S 10
-#define SPI_SLV_WR_ADDR_BITLEN 0x0000003F
-#define SPI_SLV_WR_ADDR_BITLEN_S 4
-
-#define SPI_SLV_WRSTA_DUMMY_EN (BIT(3))
-#define SPI_SLV_RDSTA_DUMMY_EN (BIT(2))
-#define SPI_SLV_WRBUF_DUMMY_EN (BIT(1))
-#define SPI_SLV_RDBUF_DUMMY_EN (BIT(0))
-
-
-
-#define SPI_SLAVE2(i)  (REG_SPI_BASE(i)  + 0x38)
-#define SPI_SLV_WRBUF_DUMMY_CYCLELEN  0X000000FF
-#define SPI_SLV_WRBUF_DUMMY_CYCLELEN_S 24
-#define SPI_SLV_RDBUF_DUMMY_CYCLELEN  0X000000FF
-#define SPI_SLV_RDBUF_DUMMY_CYCLELEN_S 16
-#define SPI_SLV_WRSTR_DUMMY_CYCLELEN  0X000000FF
-#define SPI_SLV_WRSTR_DUMMY_CYCLELEN_S  8
-#define SPI_SLV_RDSTR_DUMMY_CYCLELEN  0x000000FF
-#define SPI_SLV_RDSTR_DUMMY_CYCLELEN_S 0
-
-#define SPI_SLAVE3(i)                         (REG_SPI_BASE(i)  + 0x3C)
-#define SPI_SLV_WRSTA_CMD_VALUE 0x000000FF
-#define SPI_SLV_WRSTA_CMD_VALUE_S 24
-#define SPI_SLV_RDSTA_CMD_VALUE 0x000000FF
-#define SPI_SLV_RDSTA_CMD_VALUE_S 16
-#define SPI_SLV_WRBUF_CMD_VALUE 0x000000FF
-#define SPI_SLV_WRBUF_CMD_VALUE_S 8
-#define SPI_SLV_RDBUF_CMD_VALUE 0x000000FF
-#define SPI_SLV_RDBUF_CMD_VALUE_S 0
-
-#define SPI_W0(i) 							(REG_SPI_BASE(i) +0x40)
-#define SPI_W1(i) 							(REG_SPI_BASE(i) +0x44)
-#define SPI_W2(i) 							(REG_SPI_BASE(i) +0x48)
-#define SPI_W3(i) 							(REG_SPI_BASE(i) +0x4C)
-#define SPI_W4(i) 							(REG_SPI_BASE(i) +0x50)
-#define SPI_W5(i) 							(REG_SPI_BASE(i) +0x54)
-#define SPI_W6(i) 							(REG_SPI_BASE(i) +0x58)
-#define SPI_W7(i) 							(REG_SPI_BASE(i) +0x5C)
-#define SPI_W8(i) 							(REG_SPI_BASE(i) +0x60)
-#define SPI_W9(i) 							(REG_SPI_BASE(i) +0x64)
-#define SPI_W10(i) 							(REG_SPI_BASE(i) +0x68)
-#define SPI_W11(i) 							(REG_SPI_BASE(i) +0x6C)
-#define SPI_W12(i) 							(REG_SPI_BASE(i) +0x70)
-#define SPI_W13(i) 							(REG_SPI_BASE(i) +0x74)
-#define SPI_W14(i) 							(REG_SPI_BASE(i) +0x78)
-#define SPI_W15(i) 							(REG_SPI_BASE(i) +0x7C)
-
-#define SPI_EXT2(i)                           (REG_SPI_BASE(i)  + 0xF8)
-
-#define SPI_EXT3(i)                           (REG_SPI_BASE(i)  + 0xFC)
-#define SPI_INT_HOLD_ENA 0x00000003
-#define SPI_INT_HOLD_ENA_S 0
-#endif // SPI_REGISTER_H_INCLUDED

+ 0 - 221
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/uart.h

@@ -1,221 +0,0 @@
-/*
- * File	: uart.h
- * Copyright (C) 2013 - 2016, Espressif Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of version 3 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#ifndef UART_APP_H
-#define UART_APP_H
-
-#include "uart_register.h"
-#include "eagle_soc.h"
-#include "c_types.h"
-
-#define UART_TX_BUFFER_SIZE 256  //Ring buffer length of tx buffer
-#define UART_RX_BUFFER_SIZE 256 //Ring buffer length of rx buffer
-
-#define UART_BUFF_EN  0   //use uart buffer  , FOR UART0
-#define UART_SELFTEST  0  //set 1:enable the loop test demo for uart buffer, FOR UART0
-
-#define UART_HW_RTS   0   //set 1: enable uart hw flow control RTS, PIN MTDO, FOR UART0
-#define UART_HW_CTS  0    //set1: enable uart hw flow contrl CTS , PIN MTCK, FOR UART0
-
-
-
-
-#define UART0   0
-#define UART1   1
-
-
-typedef enum {
-    FIVE_BITS = 0x0,
-    SIX_BITS = 0x1,
-    SEVEN_BITS = 0x2,
-    EIGHT_BITS = 0x3
-} UartBitsNum4Char;
-
-typedef enum {
-    ONE_STOP_BIT             = 0x1,
-    ONE_HALF_STOP_BIT        = 0x2,
-    TWO_STOP_BIT             = 0x3
-} UartStopBitsNum;
-
-typedef enum {
-    NONE_BITS = 0x2,
-    ODD_BITS   = 1,
-    EVEN_BITS = 0
-} UartParityMode;
-
-typedef enum {
-    STICK_PARITY_DIS   = 0,
-    STICK_PARITY_EN    = 1
-} UartExistParity;
-
-typedef enum {
-    UART_None_Inverse = 0x0,
-    UART_Rxd_Inverse = UART_RXD_INV,
-    UART_CTS_Inverse = UART_CTS_INV,
-    UART_Txd_Inverse = UART_TXD_INV,
-    UART_RTS_Inverse = UART_RTS_INV,
-} UART_LineLevelInverse;
-
-
-typedef enum {
-    BIT_RATE_300 = 300,
-    BIT_RATE_600 = 600,
-    BIT_RATE_1200 = 1200,
-    BIT_RATE_2400 = 2400,
-    BIT_RATE_4800 = 4800,
-    BIT_RATE_9600   = 9600,
-    BIT_RATE_19200  = 19200,
-    BIT_RATE_38400  = 38400,
-    BIT_RATE_57600  = 57600,
-    BIT_RATE_74880  = 74880,
-    BIT_RATE_115200 = 115200,
-    BIT_RATE_230400 = 230400,
-    BIT_RATE_460800 = 460800,
-    BIT_RATE_921600 = 921600,
-    BIT_RATE_1843200 = 1843200,
-    BIT_RATE_3686400 = 3686400,
-} UartBautRate;
-
-typedef enum {
-    NONE_CTRL,
-    HARDWARE_CTRL,
-    XON_XOFF_CTRL
-} UartFlowCtrl;
-
-typedef enum {
-    USART_HardwareFlowControl_None = 0x0,
-    USART_HardwareFlowControl_RTS = 0x1,
-    USART_HardwareFlowControl_CTS = 0x2,
-    USART_HardwareFlowControl_CTS_RTS = 0x3
-} UART_HwFlowCtrl;
-
-typedef enum {
-    EMPTY,
-    UNDER_WRITE,
-    WRITE_OVER
-} RcvMsgBuffState;
-
-typedef struct {
-    uint32     RcvBuffSize;
-    uint8     *pRcvMsgBuff;
-    uint8     *pWritePos;
-    uint8     *pReadPos;
-    uint8      TrigLvl; //JLU: may need to pad
-    RcvMsgBuffState  BuffState;
-} RcvMsgBuff;
-
-typedef struct {
-    uint32   TrxBuffSize;
-    uint8   *pTrxBuff;
-} TrxMsgBuff;
-
-typedef enum {
-    BAUD_RATE_DET,
-    WAIT_SYNC_FRM,
-    SRCH_MSG_HEAD,
-    RCV_MSG_BODY,
-    RCV_ESC_CHAR,
-} RcvMsgState;
-
-typedef struct {
-    UartBautRate 	     baut_rate;
-    UartBitsNum4Char  data_bits;
-    UartExistParity      exist_parity;
-    UartParityMode 	    parity;    
-    UartStopBitsNum   stop_bits;
-    UartFlowCtrl         flow_ctrl;
-    RcvMsgBuff          rcv_buff;
-    TrxMsgBuff           trx_buff;
-    RcvMsgState        rcv_state;
-    int                      received;
-    int                      buff_uart_no;  //indicate which uart use tx/rx buffer
-} UartDevice;
-
-void uart_init(UartBautRate uart0_br, UartBautRate uart1_br);
-void uart0_sendStr(const char *str);
-
-
-///////////////////////////////////////
-#define UART_FIFO_LEN  128  //define the tx fifo length
-#define UART_TX_EMPTY_THRESH_VAL 0x10
-
-
- struct UartBuffer{
-    uint32     UartBuffSize;
-    uint8     *pUartBuff;
-    uint8     *pInPos;
-    uint8     *pOutPos;
-    STATUS  BuffState;
-    uint16    Space;  //remanent space of the buffer
-    uint8  TcpControl;
-    struct  UartBuffer     *  nextBuff;
-};
-
-struct UartRxBuff{
-    uint32     UartRxBuffSize;
-    uint8     *pUartRxBuff;
-    uint8     *pWritePos;
-    uint8     *pReadPos;
-    STATUS RxBuffState;
-    uint32    Space;  //remanent space of the buffer
-} ;
-
-typedef enum {
-    RUN = 0,
-    BLOCK = 1,
-} TCPState;
-
-//void ICACHE_FLASH_ATTR uart_test_rx();
-STATUS uart_tx_one_char(uint8 uart, uint8 TxChar);
-STATUS uart_tx_one_char_no_wait(uint8 uart, uint8 TxChar);
-void  uart1_sendStr_no_wait(const char *str);
-struct UartBuffer*  Uart_Buf_Init();
-
-
-#if UART_BUFF_EN
-LOCAL void  Uart_Buf_Cpy(struct UartBuffer* pCur, char* pdata , uint16 data_len);
-void  uart_buf_free(struct UartBuffer* pBuff);
-void  tx_buff_enq(char* pdata, uint16 data_len );
-LOCAL void  tx_fifo_insert(struct UartBuffer* pTxBuff, uint8 data_len,  uint8 uart_no);
-void  tx_start_uart_buffer(uint8 uart_no);
-uint16  rx_buff_deq(char* pdata, uint16 data_len );
-void  Uart_rx_buff_enq();
-#endif
-void  uart_rx_intr_enable(uint8 uart_no);
-void  uart_rx_intr_disable(uint8 uart_no);
-void uart0_tx_buffer(uint8 *buf, uint16 len);
-
-//==============================================
-#define FUNC_UART0_CTS 4
-#define FUNC_U0CTS                      4
-#define FUNC_U1TXD_BK                   2
-#define UART_LINE_INV_MASK  (0x3f<<19)
-void UART_SetWordLength(uint8 uart_no, UartBitsNum4Char len);
-void UART_SetStopBits(uint8 uart_no, UartStopBitsNum bit_num);
-void UART_SetLineInverse(uint8 uart_no, UART_LineLevelInverse inverse_mask);
-void UART_SetParity(uint8 uart_no, UartParityMode Parity_mode);
-void UART_SetBaudrate(uint8 uart_no,uint32 baud_rate);
-void UART_SetFlowCtrl(uint8 uart_no,UART_HwFlowCtrl flow_ctrl,uint8 rx_thresh);
-void UART_WaitTxFifoEmpty(uint8 uart_no , uint32 time_out_us); //do not use if tx flow control enabled
-void UART_ResetFifo(uint8 uart_no);
-void UART_ClearIntrStatus(uint8 uart_no,uint32 clr_mask);
-void UART_SetIntrEna(uint8 uart_no,uint32 ena_mask);
-void UART_SetPrintPort(uint8 uart_no);
-bool UART_CheckOutputFinished(uint8 uart_no, uint32 time_out_us);
-//==============================================
-
-#endif
-

+ 0 - 156
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/include/driver/uart_register.h

@@ -1,156 +0,0 @@
-/*
- * File	: uart_register.h
- * Copyright (C) 2013 - 2016, Espressif Systems
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of version 3 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-/*
- *  Copyright (c) 2010 - 2011 Espressif System
- *
- */
-
-#ifndef UART_REGISTER_H_
-#define UART_REGISTER_H_
-
-#define REG_UART_BASE(i)                (0x60000000 + (i)*0xf00)
-//version value:32'h062000
-
-#define UART_FIFO(i)                    (REG_UART_BASE(i) + 0x0)
-#define UART_RXFIFO_RD_BYTE                 0x000000FF
-#define UART_RXFIFO_RD_BYTE_S               0
-
-#define UART_INT_RAW(i)                 (REG_UART_BASE(i) + 0x4)
-#define UART_RXFIFO_TOUT_INT_RAW            (BIT(8))
-#define UART_BRK_DET_INT_RAW                (BIT(7))
-#define UART_CTS_CHG_INT_RAW                (BIT(6))
-#define UART_DSR_CHG_INT_RAW                (BIT(5))
-#define UART_RXFIFO_OVF_INT_RAW             (BIT(4))
-#define UART_FRM_ERR_INT_RAW                (BIT(3))
-#define UART_PARITY_ERR_INT_RAW             (BIT(2))
-#define UART_TXFIFO_EMPTY_INT_RAW           (BIT(1))
-#define UART_RXFIFO_FULL_INT_RAW            (BIT(0))
-
-#define UART_INT_ST(i)                  (REG_UART_BASE(i) + 0x8)
-#define UART_RXFIFO_TOUT_INT_ST             (BIT(8))
-#define UART_BRK_DET_INT_ST                 (BIT(7))
-#define UART_CTS_CHG_INT_ST                 (BIT(6))
-#define UART_DSR_CHG_INT_ST                 (BIT(5))
-#define UART_RXFIFO_OVF_INT_ST              (BIT(4))
-#define UART_FRM_ERR_INT_ST                 (BIT(3))
-#define UART_PARITY_ERR_INT_ST              (BIT(2))
-#define UART_TXFIFO_EMPTY_INT_ST            (BIT(1))
-#define UART_RXFIFO_FULL_INT_ST             (BIT(0))
-
-#define UART_INT_ENA(i)                 (REG_UART_BASE(i) + 0xC)
-#define UART_RXFIFO_TOUT_INT_ENA            (BIT(8))
-#define UART_BRK_DET_INT_ENA                (BIT(7))
-#define UART_CTS_CHG_INT_ENA                (BIT(6))
-#define UART_DSR_CHG_INT_ENA                (BIT(5))
-#define UART_RXFIFO_OVF_INT_ENA             (BIT(4))
-#define UART_FRM_ERR_INT_ENA                (BIT(3))
-#define UART_PARITY_ERR_INT_ENA             (BIT(2))
-#define UART_TXFIFO_EMPTY_INT_ENA           (BIT(1))
-#define UART_RXFIFO_FULL_INT_ENA            (BIT(0))
-
-#define UART_INT_CLR(i)                 (REG_UART_BASE(i) + 0x10)
-#define UART_RXFIFO_TOUT_INT_CLR            (BIT(8))
-#define UART_BRK_DET_INT_CLR                (BIT(7))
-#define UART_CTS_CHG_INT_CLR                (BIT(6))
-#define UART_DSR_CHG_INT_CLR                (BIT(5))
-#define UART_RXFIFO_OVF_INT_CLR             (BIT(4))
-#define UART_FRM_ERR_INT_CLR                (BIT(3))
-#define UART_PARITY_ERR_INT_CLR             (BIT(2))
-#define UART_TXFIFO_EMPTY_INT_CLR           (BIT(1))
-#define UART_RXFIFO_FULL_INT_CLR            (BIT(0))
-
-#define UART_CLKDIV(i)                  (REG_UART_BASE(i) + 0x14)
-#define UART_CLKDIV_CNT                     0x000FFFFF
-#define UART_CLKDIV_S                       0
-
-#define UART_AUTOBAUD(i)                (REG_UART_BASE(i) + 0x18)
-#define UART_GLITCH_FILT                    0x000000FF
-#define UART_GLITCH_FILT_S                  8
-#define UART_AUTOBAUD_EN                    (BIT(0))
-
-#define UART_STATUS(i)                  (REG_UART_BASE(i) + 0x1C)
-#define UART_TXD                            (BIT(31))
-#define UART_RTSN                           (BIT(30))
-#define UART_DTRN                           (BIT(29))
-#define UART_TXFIFO_CNT                     0x000000FF
-#define UART_TXFIFO_CNT_S                   16
-#define UART_RXD                            (BIT(15))
-#define UART_CTSN                           (BIT(14))
-#define UART_DSRN                           (BIT(13))
-#define UART_RXFIFO_CNT                     0x000000FF
-#define UART_RXFIFO_CNT_S                   0
-
-#define UART_CONF0(i)                   (REG_UART_BASE(i) + 0x20)
-#define UART_DTR_INV                        (BIT(24))
-#define UART_RTS_INV                        (BIT(23))
-#define UART_TXD_INV                        (BIT(22))
-#define UART_DSR_INV                        (BIT(21))
-#define UART_CTS_INV                        (BIT(20))
-#define UART_RXD_INV                        (BIT(19))
-#define UART_TXFIFO_RST                     (BIT(18))
-#define UART_RXFIFO_RST                     (BIT(17))
-#define UART_IRDA_EN                        (BIT(16))
-#define UART_TX_FLOW_EN                     (BIT(15))
-#define UART_LOOPBACK                       (BIT(14))
-#define UART_IRDA_RX_INV                    (BIT(13))
-#define UART_IRDA_TX_INV                    (BIT(12))
-#define UART_IRDA_WCTL                      (BIT(11))
-#define UART_IRDA_TX_EN                     (BIT(10))
-#define UART_IRDA_DPLX                      (BIT(9))
-#define UART_TXD_BRK                        (BIT(8))
-#define UART_SW_DTR                         (BIT(7))
-#define UART_SW_RTS                         (BIT(6))
-#define UART_STOP_BIT_NUM                   0x00000003
-#define UART_STOP_BIT_NUM_S                 4
-#define UART_BIT_NUM                        0x00000003
-#define UART_BIT_NUM_S                      2
-#define UART_PARITY_EN                      (BIT(1))
-#define UART_PARITY_EN_M                0x00000001
-#define UART_PARITY_EN_S                 1
-#define UART_PARITY                         (BIT(0))
-#define UART_PARITY_M                       0x00000001
-#define UART_PARITY_S                        0
-
-#define UART_CONF1(i)                   (REG_UART_BASE(i) + 0x24)
-#define UART_RX_TOUT_EN                     (BIT(31))
-#define UART_RX_TOUT_THRHD                  0x0000007F
-#define UART_RX_TOUT_THRHD_S                24
-#define UART_RX_FLOW_EN                     (BIT(23))
-#define UART_RX_FLOW_THRHD                  0x0000007F
-#define UART_RX_FLOW_THRHD_S                16
-#define UART_TXFIFO_EMPTY_THRHD             0x0000007F
-#define UART_TXFIFO_EMPTY_THRHD_S           8
-#define UART_RXFIFO_FULL_THRHD              0x0000007F
-#define UART_RXFIFO_FULL_THRHD_S            0
-
-#define UART_LOWPULSE(i)                (REG_UART_BASE(i) + 0x28)
-#define UART_LOWPULSE_MIN_CNT               0x000FFFFF
-#define UART_LOWPULSE_MIN_CNT_S             0
-
-#define UART_HIGHPULSE(i)               (REG_UART_BASE(i) + 0x2C)
-#define UART_HIGHPULSE_MIN_CNT              0x000FFFFF
-#define UART_HIGHPULSE_MIN_CNT_S            0
-
-#define UART_PULSE_NUM(i)               (REG_UART_BASE(i) + 0x30)
-#define UART_PULSE_NUM_CNT                  0x0003FF
-#define UART_PULSE_NUM_CNT_S                0
-
-#define UART_DATE(i)                    (REG_UART_BASE(i) + 0x78)
-#define UART_ID(i)                      (REG_UART_BASE(i) + 0x7C)
-
-#endif // UART_REGISTER_H_INCLUDED
-

+ 0 - 12
sdk/esp_iot_sdk_v1.4.0/examples/driver_lib/readme.txt

@@ -1,12 +0,0 @@
-STEP 1: Copy driver and include folders to your project sub-folder, such as app folder. Unused drivers can be removed in your project.
-
-STEP 2: Modify Makefile in app folder.
-    1). Search SUBDIRS, add driver as subdir:
-        SUBDIRS=    \
-	    user    \
-	    driver
-
-    2). Search COMPONENTS_eagle.app.v6, add libdriver.a:
-        COMPONENTS_eagle.app.v6 = \
-	   user/libuser.a  \
-	   driver/libdriver.a

+ 0 - 40
sdk/esp_iot_sdk_v1.4.0/examples/readme.txt

@@ -1,40 +0,0 @@
-1¡¢compile options
-
-(1) COMPILE
-    Possible value: gcc
-    Default value: 
-    If not set, use xt-xcc by default.
-
-(2) BOOT
-    Possible value: none/old/new
-      none: no need boot
-      old: use boot_v1.1
-      new: use boot_v1.2+
-    Default value: none
-
-(3) APP
-    Possible value: 0/1/2
-      0: original mode, generate eagle.app.v6.flash.bin and eagle.app.v6.irom0text.bin
-      1: generate user1
-      2: generate user2
-    Default value: 0
-
-(3) SPI_SPEED
-    Possible value: 20/26.7/40/80
-    Default value: 40
-
-(4) SPI_MODE
-    Possible value: QIO/QOUT/DIO/DOUT
-    Default value: QIO
-
-(4) SPI_SIZE_MAP
-    Possible value: 0/2/3/4/5/6
-    Default value: 0
-
-For example:
-    make COMPILE=gcc BOOT=new APP=1 SPI_SPEED=40 SPI_MODE=QIO SPI_SIZE_MAP=0
-
-2¡¢You can also use gen_misc to make and generate specific bin you needed.
-    Linux: ./gen_misc.sh
-    Windows: gen_misc.bat
-    Follow the tips and steps.

+ 0 - 122
sdk/esp_iot_sdk_v1.4.0/examples/smart_config/Makefile

@@ -1,122 +0,0 @@
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of object file images to be generated ()
-#   GEN_BINS - list of binaries to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-TARGET = eagle
-#FLAVOR = release
-FLAVOR = debug
-
-#EXTRA_CCFLAGS += -u
-
-ifndef PDIR # {
-GEN_IMAGES= eagle.app.v6.out
-GEN_BINS= eagle.app.v6.bin
-SPECIAL_MKTARGETS=$(APP_MKTARGETS)
-SUBDIRS=    \
-	user
-
-endif # } PDIR
-
-APPDIR = .
-LDDIR = ../ld
-
-CCFLAGS += -Os
-
-TARGET_LDFLAGS =		\
-	-nostdlib		\
-	-Wl,-EL \
-	--longcalls \
-	--text-section-literals
-
-ifeq ($(FLAVOR),debug)
-    TARGET_LDFLAGS += -g -O2
-endif
-
-ifeq ($(FLAVOR),release)
-    TARGET_LDFLAGS += -g -O0
-endif
-
-COMPONENTS_eagle.app.v6 = \
-	user/libuser.a
-
-LINKFLAGS_eagle.app.v6 = \
-	-L../lib        \
-	-nostdlib	\
-    -T$(LD_FILE)   \
-	-Wl,--no-check-sections	\
-    -u call_user_start	\
-	-Wl,-static						\
-	-Wl,--start-group					\
-	-lc					\
-	-lgcc					\
-	-lhal					\
-	-lphy	\
-	-lpp	\
-	-lnet80211	\
-	-llwip	\
-	-lwpa	\
-	-lmain	\
-	-ljson	\
-	-lssl	\
-	-lupgrade	\
-	-lsmartconfig \
-	$(DEP_LIBS_eagle.app.v6)					\
-	-Wl,--end-group
-
-DEPENDS_eagle.app.v6 = \
-                $(LD_FILE) \
-                $(LDDIR)/eagle.rom.addr.v6.ld
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-
-#UNIVERSAL_TARGET_DEFINES =		\
-
-# Other potential configuration flags include:
-#	-DTXRX_TXBUF_DEBUG
-#	-DTXRX_RXBUF_DEBUG
-#	-DWLAN_CONFIG_CCX
-CONFIGURATION_DEFINES =	-DICACHE_FLASH
-
-DEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-DDEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-
-.PHONY: FORCE
-FORCE:
-

+ 0 - 147
sdk/esp_iot_sdk_v1.4.0/examples/smart_config/gen_misc.bat

@@ -1,147 +0,0 @@
-@echo off
-
-echo gen_misc.bat version 20150511
-echo .
-
-echo Please follow below steps(1-5) to generate specific bin(s):
-echo STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)
-set input=default
-set /p input=enter(0/1/2, default 2):
-
-if %input% equ 0 (
-    set boot=old
-) else (
-if %input% equ 1 (
-    set boot=new
-) else (
-    set boot=none
-)
-)
-
-echo boot mode: %boot%
-echo.
-
-echo STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)
-set input=default
-set /p input=enter (0/1/2, default 0):
-
-if %input% equ 1 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=1
-        echo generate bin: user1.bin
-    )
-) else (
-if %input% equ 2 (
-    if %boot% equ none (
-        set app=0
-        echo choose no boot before
-        echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-    ) else (
-        set app=2
-        echo generate bin: user2.bin
-    )
-) else (
-    if %boot% neq none (
-        set boot=none
-        echo ignore boot
-    )
-    set app=0
-    echo generate bin: eagle.flash.bin+eagle.irom0text.bin
-))
-
-echo.
-
-echo STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)
-set input=default
-set /p input=enter (0/1/2/3, default 2):
-
-if %input% equ 0 (
-    set spi_speed=20
-) else (
-if %input% equ 1 (
-    set spi_speed=26.7
-) else (
-if %input% equ 3 (
-    set spi_speed=80
-) else (
-    set spi_speed=40
-)))
-
-echo spi speed: %spi_speed% MHz
-echo.
-
-echo STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)
-set input=default
-set /p input=enter (0/1/2/3, default 0):
-
-if %input% equ 1 (
-    set spi_mode=QOUT
-) else (
-if %input% equ 2 (
-    set spi_mode=DIO
-) else (
-if %input% equ 3 (
-    set spi_mode=DOUT
-) else (
-    set spi_mode=QIO
-)))
-
-echo spi mode: %spi_mode%
-echo.
-
-echo STEP 5: choose flash size and map
-echo     0= 512KB( 256KB+ 256KB)
-echo     2=1024KB( 512KB+ 512KB)
-echo     3=2048KB( 512KB+ 512KB)
-echo     4=4096KB( 512KB+ 512KB)
-echo     5=2048KB(1024KB+1024KB)
-echo     6=4096KB(1024KB+1024KB)
-set input=default
-set /p input=enter (0/1/2/3/4/5/6, default 0):
-
-if %input% equ 2 (
-  set spi_size_map=2
-  echo spi size: 1024KB
-  echo spi ota map: 512KB + 512KB
-) else (
-  if %input% equ 3 (
-    set spi_size_map=3
-    echo spi size: 2048KB
-    echo spi ota map: 512KB + 512KB
-  ) else (
-    if %input% equ 4 (
-      set spi_size_map=4
-      echo spi size: 4096KB
-      echo spi ota map: 512KB + 512KB
-    ) else (
-      if %input% equ 5 (
-        set spi_size_map=5
-        echo spi size: 2048KB
-        echo spi ota map: 1024KB + 1024KB
-      ) else (
-        if %input% equ 6 (
-          set spi_size_map=6
-          echo spi size: 4096KB
-          echo spi ota map: 1024KB + 1024KB
-        ) else (
-          set spi_size_map=0
-          echo spi size: 512KB
-          echo spi ota map: 256KB + 256KB
-        )
-      )
-    )
-  )
-)
-
-touch user/user_main.c
-
-echo.
-echo start...
-echo.
-
-make BOOT=%boot% APP=%app% SPI_SPEED=%spi_speed% SPI_MODE=%spi_mode% SPI_SIZE=%spi_size_map%
-

+ 0 - 150
sdk/esp_iot_sdk_v1.4.0/examples/smart_config/gen_misc.sh

@@ -1,150 +0,0 @@
-#!/bin/bash
-
-echo "gen_misc.sh version 20150511"
-echo ""
-
-echo "Please follow below steps(1-5) to generate specific bin(s):"
-echo "STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)"
-echo "enter(0/1/2, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    boot=none
-elif [ $input == 0 ]; then
-	boot=old
-elif [ $input == 1 ]; then
-    boot=new
-else
-    boot=none
-fi
-
-echo "boot mode: $boot"
-echo ""
-
-echo "STEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)"
-echo "enter (0/1/2, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-elif [ $input == 1 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-	app=1
-        echo "generate bin: user1.bin"
-    fi
-elif [ $input == 2 ]; then
-    if [ $boot == none ]; then
-    	app=0
-	echo "choose no boot before"
-	echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-    else
-    	app=2
-    	echo "generate bin: user2.bin"
-    fi
-else
-    if [ $boot != none ]; then
-    	boot=none
-	echo "ignore boot"
-    fi
-    app=0
-    echo "generate bin: eagle.flash.bin+eagle.irom0text.bin"
-fi
-
-echo ""
-
-echo "STEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)"
-echo "enter (0/1/2/3, default 2):"
-read input
-
-if [ -z "$input" ]; then
-    spi_speed=40
-elif [ $input == 0 ]; then
-    spi_speed=20
-elif [ $input == 1 ]; then
-    spi_speed=26.7
-elif [ $input == 3 ]; then
-    spi_speed=80
-else
-    spi_speed=40
-fi
-
-echo "spi speed: $spi_speed MHz"
-echo ""
-
-echo "STEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)"
-echo "enter (0/1/2/3, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_mode=QIO
-elif [ $input == 1 ]; then
-    spi_mode=QOUT
-elif [ $input == 2 ]; then
-    spi_mode=DIO
-elif [ $input == 3 ]; then
-    spi_mode=DOUT
-else
-    spi_mode=QIO
-fi
-
-echo "spi mode: $spi_mode"
-echo ""
-
-echo "STEP 5: choose spi size and map"
-echo "    0= 512KB( 256KB+ 256KB)"
-echo "    2=1024KB( 512KB+ 512KB)"
-echo "    3=2048KB( 512KB+ 512KB)"
-echo "    4=4096KB( 512KB+ 512KB)"
-echo "    5=2048KB(1024KB+1024KB)"
-echo "    6=4096KB(1024KB+1024KB)"
-echo "enter (0/2/3/4/5/6, default 0):"
-read input
-
-if [ -z "$input" ]; then
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-elif [ $input == 2 ]; then
-    spi_size_map=2
-    echo "spi size: 1024KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 3 ]; then
-    spi_size_map=3
-    echo "spi size: 2048KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 4 ]; then
-    spi_size_map=4
-    echo "spi size: 4096KB"
-    echo "spi ota map:  512KB + 512KB"
-elif [ $input == 5 ]; then
-    spi_size_map=5
-    echo "spi size: 2048KB"
-    echo "spi ota map:  1024KB + 1024KB"
-elif [ $input == 6 ]; then
-    spi_size_map=6
-    echo "spi size: 4096KB"
-    echo "spi ota map:  1024KB + 1024KB"
-else
-    spi_size_map=0
-    echo "spi size: 512KB"
-    echo "spi ota map:  256KB + 256KB"
-fi
-
-echo ""
-
-touch user/user_main.c
-
-echo ""
-echo "start..."
-echo ""
-
-make COMPILE=gcc BOOT=$boot APP=$app SPI_SPEED=$spi_speed SPI_MODE=$spi_mode SPI_SIZE_MAP=$spi_size_map

+ 0 - 5
sdk/esp_iot_sdk_v1.4.0/examples/smart_config/include/user_config.h

@@ -1,5 +0,0 @@
-#ifndef __USER_CONFIG_H__
-#define __USER_CONFIG_H__
-
-#endif
-

+ 0 - 45
sdk/esp_iot_sdk_v1.4.0/examples/smart_config/user/Makefile

@@ -1,45 +0,0 @@
-
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of images to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-ifndef PDIR
-GEN_LIBS = libuser.a
-endif
-
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-#DEFINES += 
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-INCLUDES += -I ./
-INCLUDES += -I ../../include/ets
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-

+ 0 - 68
sdk/esp_iot_sdk_v1.4.0/examples/smart_config/user/user_main.c

@@ -1,68 +0,0 @@
-/******************************************************************************
- * Copyright 2013-2014 Espressif Systems (Wuxi)
- *
- * FileName: user_main.c
- *
- * Description: entry file of user application
- *
- * Modification history:
- *     2014/1/1, v1.0 create this file.
-*******************************************************************************/
-#include "ets_sys.h"
-#include "osapi.h"
-
-#include "user_interface.h"
-#include "smartconfig.h"
-
-void ICACHE_FLASH_ATTR
-smartconfig_done(sc_status status, void *pdata)
-{
-    switch(status) {
-        case SC_STATUS_WAIT:
-            os_printf("SC_STATUS_WAIT\n");
-            break;
-        case SC_STATUS_FIND_CHANNEL:
-            os_printf("SC_STATUS_FIND_CHANNEL\n");
-            break;
-        case SC_STATUS_GETTING_SSID_PSWD:
-            os_printf("SC_STATUS_GETTING_SSID_PSWD\n");
-			sc_type *type = pdata;
-            if (*type == SC_TYPE_ESPTOUCH) {
-                os_printf("SC_TYPE:SC_TYPE_ESPTOUCH\n");
-            } else {
-                os_printf("SC_TYPE:SC_TYPE_AIRKISS\n");
-            }
-            break;
-        case SC_STATUS_LINK:
-            os_printf("SC_STATUS_LINK\n");
-            struct station_config *sta_conf = pdata;
-	
-	        wifi_station_set_config(sta_conf);
-	        wifi_station_disconnect();
-	        wifi_station_connect();
-            break;
-        case SC_STATUS_LINK_OVER:
-            os_printf("SC_STATUS_LINK_OVER\n");
-            if (pdata != NULL) {
-                uint8 phone_ip[4] = {0};
-
-                os_memcpy(phone_ip, (uint8*)pdata, 4);
-                os_printf("Phone ip: %d.%d.%d.%d\n",phone_ip[0],phone_ip[1],phone_ip[2],phone_ip[3]);
-            }
-            smartconfig_stop();
-            break;
-    }
-	
-}
-
-void user_rf_pre_init(void)
-{
-}
-
-void user_init(void)
-{
-    os_printf("SDK version:%s\n", system_get_sdk_version());
-	smartconfig_set_type(SC_TYPE_ESPTOUCH); //SC_TYPE_ESPTOUCH,SC_TYPE_AIRKISS,SC_TYPE_ESPTOUCH_AIRKISS
-    wifi_set_opmode(STATION_MODE);
-    smartconfig_start(smartconfig_done);
-}

+ 0 - 122
sdk/esp_iot_sdk_v1.4.0/examples/wps/Makefile

@@ -1,122 +0,0 @@
-#############################################################
-# Required variables for each makefile
-# Discard this section from all parent makefiles
-# Expected variables (with automatic defaults):
-#   CSRCS (all "C" files in the dir)
-#   SUBDIRS (all subdirs with a Makefile)
-#   GEN_LIBS - list of libs to be generated ()
-#   GEN_IMAGES - list of object file images to be generated ()
-#   GEN_BINS - list of binaries to be generated ()
-#   COMPONENTS_xxx - a list of libs/objs in the form
-#     subdir/lib to be extracted and rolled up into
-#     a generated lib/image xxx.a ()
-#
-TARGET = eagle
-#FLAVOR = release
-FLAVOR = debug
-
-#EXTRA_CCFLAGS += -u
-
-ifndef PDIR # {
-GEN_IMAGES= eagle.app.v6.out
-GEN_BINS= eagle.app.v6.bin
-SPECIAL_MKTARGETS=$(APP_MKTARGETS)
-SUBDIRS=    \
-	user	\
-	driver
-
-endif # } PDIR
-
-APPDIR = .
-LDDIR = ../ld
-
-CCFLAGS += -Os
-
-TARGET_LDFLAGS =		\
-	-nostdlib		\
-	-Wl,-EL \
-	--longcalls \
-	--text-section-literals
-
-ifeq ($(FLAVOR),debug)
-    TARGET_LDFLAGS += -g -O2
-endif
-
-ifeq ($(FLAVOR),release)
-    TARGET_LDFLAGS += -g -O0
-endif
-
-COMPONENTS_eagle.app.v6 = \
-	user/libuser.a	\
-	driver/libdriver.a
-
-LINKFLAGS_eagle.app.v6 = \
-	-L../lib        \
-	-nostdlib	\
-    -T$(LD_FILE)   \
-	-Wl,--no-check-sections	\
-    -u call_user_start	\
-	-Wl,-static						\
-	-Wl,--start-group					\
-	-lc					\
-	-lgcc					\
-	-lhal					\
-	-lphy	\
-	-lpp	\
-	-lnet80211	\
-	-llwip	\
-	-lwpa	\
-	-lmain	\
-	-lwps	\
-	-lcrypto	\
-	$(DEP_LIBS_eagle.app.v6)					\
-	-Wl,--end-group
-
-DEPENDS_eagle.app.v6 = \
-                $(LD_FILE) \
-                $(LDDIR)/eagle.rom.addr.v6.ld
-
-#############################################################
-# Configuration i.e. compile options etc.
-# Target specific stuff (defines etc.) goes in here!
-# Generally values applying to a tree are captured in the
-#   makefile at its root level - these are then overridden
-#   for a subtree within the makefile rooted therein
-#
-
-#UNIVERSAL_TARGET_DEFINES =		\
-
-# Other potential configuration flags include:
-#	-DTXRX_TXBUF_DEBUG
-#	-DTXRX_RXBUF_DEBUG
-#	-DWLAN_CONFIG_CCX
-CONFIGURATION_DEFINES =	-DICACHE_FLASH
-
-DEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-DDEFINES +=				\
-	$(UNIVERSAL_TARGET_DEFINES)	\
-	$(CONFIGURATION_DEFINES)
-
-
-#############################################################
-# Recursion Magic - Don't touch this!!
-#
-# Each subtree potentially has an include directory
-#   corresponding to the common APIs applicable to modules
-#   rooted at that subtree. Accordingly, the INCLUDE PATH
-#   of a module can only contain the include directories up
-#   its parent path, and not its siblings
-#
-# Required for each makefile to inherit from the parent
-#
-
-INCLUDES := $(INCLUDES) -I $(PDIR)include
-PDIR := ../$(PDIR)
-sinclude $(PDIR)Makefile
-
-.PHONY: FORCE
-FORCE:
-

Некоторые файлы не были показаны из-за большого количества измененных файлов