Explorar el Código

update: http/mqtt/websockt库也支持精细化定制,云编译配置也更新了,air601需要主动开启相关库才添加进去

Wendal Chen hace 1 año
padre
commit
26e4978ed4

+ 9 - 3
app/port/luat_base_air101.c

@@ -189,9 +189,15 @@ static const luaL_Reg loadedlibs[] = {
 #endif
 #ifdef LUAT_USE_NETWORK
   {"socket", luaopen_socket_adapter},
+#ifdef LUAT_USE_HTTP
   {"http", luaopen_http},
+#endif
+#ifdef LUAT_USE_MQTT
   {"mqtt", luaopen_mqtt},
+#endif
+#ifdef LUAT_USE_WEBSOCKET
   {"websocket", luaopen_websocket},
+#endif
 #ifdef LUAT_USE_W5500
   {"w5500", luaopen_w5500},
 #endif
@@ -204,6 +210,9 @@ static const luaL_Reg loadedlibs[] = {
 #ifdef LUAT_USE_ULWIP
   {"ulwip", luaopen_ulwip},
 #endif
+#ifdef LUAT_USE_ERRDUMP
+  {"errDump", luaopen_errdump},
+#endif
 #endif
 #ifdef LUAT_USE_LORA
   {"lora", luaopen_lora},
@@ -235,9 +244,6 @@ static const luaL_Reg loadedlibs[] = {
 #ifdef LUAT_USE_WLAN
   {"wlan", luaopen_wlan},
 #endif
-#ifdef LUAT_USE_ERRDUMP
-  {"errDump", luaopen_errdump},
-#endif
 #ifdef LUAT_USE_PROFILER
   {"profiler", luaopen_profiler},
 #endif

+ 28 - 23
app/port/luat_conf_bsp.h

@@ -38,31 +38,35 @@
 // SDIO 仅支持TF/SD卡的挂载
 #define LUAT_USE_SDIO 1
 // 段码屏/段式屏, 按需启用
-#define LUAT_USE_LCDSEG 1
+// #define LUAT_USE_LCDSEG 1
 // OTP
 #define LUAT_USE_OTP 1
-#define LUAT_USE_TOUCHKEY 1
-#define LUAT_USE_SPI_SLAVE 1
+// #define LUAT_USE_TOUCHKEY 1
+// #define LUAT_USE_SPI_SLAVE 1
 
 // #define LUAT_USE_ICONV 1
 
-// wlan库相关, 仅AIR601
-// #define LUAT_USE_WLAN
+// wlan库相关
+// #define LUAT_USE_WLAN 1
+// #define LUAT_USE_NETWORK 1
+// #define LUAT_USE_HTTP 1
+// #define LUAT_USE_MQTT 1
+// #define LUAT_USE_WEBSOCKET 1
+// #define LUAT_USE_SNTP 1
+// #define LUAT_USE_HTTPSRV 1
+// #define LUAT_USE_FTP 1
+// #define LUAT_USE_ERRDUMP 1
 
 // 外置网络支持
-// #define LUAT_USE_W5500
+// #define LUAT_USE_W5500 1
 // #define LUAT_USE_ULWIP 1
 
 // 开启TLS
-#define LUAT_USE_TLS
-#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
+// #define LUAT_USE_TLS 1
+// #define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 1
 // #define LUAT_USE_CRYPTO_AES_MBEDTLS 1
 
 // 其他网络功能
-// #define LUAT_USE_SNTP
-// #define LUAT_USE_HTTPSRV
-// #define LUAT_USE_FTP
-// #define LUAT_USE_ERRDUMP 1
 
 // #define LUAT_USE_FOTA 1
 
@@ -72,6 +76,7 @@
 // 常用工具库, 按需启用, cjson和pack是强烈推荐启用的
 #define LUAT_USE_CRYPTO  1
 #define LUAT_USE_CJSON  1
+// #define LUAT_USE_JSON2 1
 #define LUAT_USE_ZBUFF  1
 #define LUAT_USE_PACK  1
 #define LUAT_USE_LIBGNSS  1
@@ -111,9 +116,6 @@
 // // 使用 TLSF 内存池, 实验性, 内存利用率更高一些
 // #define LUAT_USE_TLSF 1
 
-// 禁用AES的硬件加速版本, 改用mbedtls的软件版本
-// 硬件加速的版本只支持AES128,若使用AES256就报错了
-#define LUAT_USE_CRYPTO_AES_MBEDTLS  1
 
 // 音频相关
 // #define LUAT_USE_I2S 1
@@ -342,25 +344,27 @@
 //<-- custom
 //------------------------------------------------------------------------------
 
-#if defined(AIR601) || defined(AIR690)
-#ifndef LUAT_USE_WLAN
- #define LUAT_USE_WLAN 1
+#if defined(LUAT_USE_HTTP) || defined(LUAT_USE_MQTT) || defined(LUAT_USE_FTP) || defined(LUAT_USE_SNTP) || defined(LUAT_USE_ERRDUMP)
+#ifndef LUAT_USE_NETWORK
+#define LUAT_USE_NETWORK
 #endif
 #endif
 
-#if defined(LUAT_USE_WLAN) || defined(LUAT_USE_W5500) || defined(LUAT_USE_ULWIP)
+#if defined(LUAT_USE_W5500) || defined(LUAT_USE_ULWIP)
 #ifndef LUAT_USE_NETWORK
 #define LUAT_USE_NETWORK
 #endif
-#ifndef LUAT_USE_DNS
-#define LUAT_USE_DNS 1
-#endif
 #endif
-#if defined(LUAT_USE_WLAN) || defined(LUAT_USE_ULWIP)
+
+#if defined(LUAT_USE_NETWORK) || defined(LUAT_USE_ULWIP)
 #ifndef LUAT_USE_LWIP
 #define LUAT_USE_LWIP
 #endif
+#ifndef LUAT_USE_DNS
+#define LUAT_USE_DNS 1
+#endif
 #endif
+
 #ifdef LUAT_USE_W5500
 #ifndef LUAT_USE_DHCP
 #define LUAT_USE_DHCP
@@ -391,6 +395,7 @@
 #define LUAT_RET int
 #define LUAT_RT_RET_TYPE	void
 #define LUAT_RT_CB_PARAM void *param
+// #define LUAT_USE_LOG2 1
 
 // 单纯为了生成文档的宏
 #define LUAT_USE_PIN 1

+ 4 - 0
app/port/luat_conf_bsp_air601.h

@@ -110,6 +110,10 @@
 #define LUAT_USE_DNS
 #define LUAT_USE_SNTP
 #define LUAT_USE_HTTPSRV
+#define LUAT_USE_HTTP
+#define LUAT_USE_MQTT
+#define LUAT_USE_WEBSOCKET
+#define LUAT_USE_FTP
 
 // 外置网络支持
 // #define LUAT_USE_W5500_XXX

+ 0 - 5
buildx.lua

@@ -29,11 +29,6 @@ function chip()
         flash_size = 2*1024*1024
     end
 
-    -- 如果是air601/690,那么wlan肯定是开启的
-    if is_air601 or is_air690 then
-        WLAN_CONF = true
-    end
-
     -- 然后, 根据flash大小, 计算flash的分区
     local flash_fs_size = LUAT_FS_SIZE * 1024                  -- 这个直接取宏定义的值
     local flash_script_size = LUAT_SCRIPT_SIZE * 1024          -- 这个直接取宏定义的值

+ 42 - 21
cloudbuild/air101.meta.json

@@ -231,35 +231,56 @@
             {
                 "icon": "zmdi-input-composite",
                 "name": "@NETWORKS",
-                "content": "网络外设",
+                "content": "网络相关",
                 "rsize": 0,
                 "children": [
                     {
-                        "name": "w5500",
-                        "content": "驱动w5500以太网",
-                        "rsize": 23240,
-                        "fsize": 464592,
+                        "name": "wlan",
+                        "content": "开启wifi功能",
+                        "rsize": 200000,
+                        "fsize": 275108,
                         "dft": false
                     },
                     {
-                        "name": "sntp",
-                        "content": "网络对时",
-                        "rsize": 23240,
-                        "fsize": 464592,
+                        "name": "network",
+                        "content": "开启socket库, 支持TCP/UDP连接",
+                        "rsize": 50000,
+                        "fsize": 275108,
                         "dft": false
                     },
                     {
-                        "name": "ftp",
-                        "content": "FTP客户端",
-                        "rsize": 23240,
-                        "fsize": 464592,
+                        "name": "http",
+                        "content": "开启http库",
+                        "rsize": 20000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "mqtt",
+                        "content": "开启mqtt库, 支持http 1.0/1.1, 不支持http 2.0",
+                        "rsize": 20000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "websocket",
+                        "content": "开启websocket库",
+                        "rsize": 10000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "httpsrv",
+                        "content": "http server库, 支持监听一个端口提供http服务",
+                        "rsize": 3000,
+                        "fsize": 27108,
                         "dft": false
                     },
                     {
                         "name": "tls",
-                        "content": "网络层TLS/SSL支持",
-                        "rsize": 65240,
-                        "fsize": 464592,
+                        "content": "启用加密支持, 可使用https/mqtts/tcpssl等,但只能建立一个加密连接",
+                        "rsize": 65000,
+                        "fsize": 40108,
                         "dft": false,
                         "children": [
                             {
@@ -279,15 +300,15 @@
                         ]
                     },
                     {
-                        "name": "wlan",
-                        "content": "[试用]wlan库,wifi支持,注意天线必须加上ESD防护",
-                        "rsize": 123240,
-                        "fsize": 464592,
+                        "name": "ftp",
+                        "content": "支持FTP操作",
+                        "rsize": 3000,
+                        "fsize": 275108,
                         "dft": false
                     },
                     {
                         "name": "errdump",
-                        "content": "错误上报,需要开启wlan或者w5500才能编译通过",
+                        "content": "错误上报",
                         "rsize": 4240,
                         "fsize": 464592,
                         "dft": false

+ 41 - 20
cloudbuild/air103.meta.json

@@ -281,35 +281,56 @@
             {
                 "icon": "zmdi-input-composite",
                 "name": "@NETWORKS",
-                "content": "网络外设",
+                "content": "网络相关",
                 "rsize": 0,
                 "children": [
                     {
-                        "name": "w5500",
-                        "content": "驱动w5500以太网",
-                        "rsize": 23240,
-                        "fsize": 464592,
+                        "name": "wlan",
+                        "content": "开启wifi功能",
+                        "rsize": 200000,
+                        "fsize": 275108,
                         "dft": false
                     },
                     {
-                        "name": "sntp",
-                        "content": "网络对时",
-                        "rsize": 23240,
-                        "fsize": 464592,
+                        "name": "network",
+                        "content": "开启socket库, 支持TCP/UDP连接",
+                        "rsize": 50000,
+                        "fsize": 275108,
                         "dft": false
                     },
                     {
-                        "name": "ftp",
-                        "content": "FTP客户端",
-                        "rsize": 23240,
-                        "fsize": 464592,
+                        "name": "http",
+                        "content": "开启http库",
+                        "rsize": 20000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "mqtt",
+                        "content": "开启mqtt库, 支持http 1.0/1.1, 不支持http 2.0",
+                        "rsize": 20000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "websocket",
+                        "content": "开启websocket库",
+                        "rsize": 10000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "httpsrv",
+                        "content": "http server库, 支持监听一个端口提供http服务",
+                        "rsize": 3000,
+                        "fsize": 27108,
                         "dft": false
                     },
                     {
                         "name": "tls",
-                        "content": "网络层TLS/SSL支持",
+                        "content": "启用加密支持, 可使用https/mqtts/tcpssl等,但只能建立一个加密连接",
                         "rsize": 65000,
-                        "fsize": 464592,
+                        "fsize": 40108,
                         "dft": false,
                         "children": [
                             {
@@ -329,15 +350,15 @@
                         ]
                     },
                     {
-                        "name": "wlan",
-                        "content": "[试用]wlan库,wifi支持,注意天线必须加上ESD防护",
-                        "rsize": 123240,
-                        "fsize": 464592,
+                        "name": "ftp",
+                        "content": "支持FTP操作",
+                        "rsize": 3000,
+                        "fsize": 275108,
                         "dft": false
                     },
                     {
                         "name": "errdump",
-                        "content": "错误上报,需要开启wlan或者w5500才能编译通过",
+                        "content": "错误上报",
                         "rsize": 4240,
                         "fsize": 464592,
                         "dft": false

+ 43 - 8
cloudbuild/air601.meta.json

@@ -17,9 +17,9 @@
                     "dft": 112
                 },
                 "rom": {
-                    "min": 518336,
-                    "max": 518336,
-                    "dft": 518336,
+                    "min": 782336,
+                    "max": 782336,
+                    "dft": 782336,
                     "rsize": 271352
                 }
             },
@@ -51,7 +51,7 @@
                 "children": [
                     {
                         "name": "@note_1",
-                        "content": "本BSP强制开启WLAN功能,即WIIF功能, 并包含socket/http/mqtt/websocket库",
+                        "content": "本BSP不再强制开启wifi及网络功能,支持完全自定义",
                         "rsize": 0,
                         "fsize": 275108,
                         "dft": false
@@ -64,25 +64,60 @@
                         "dft": false
                     }
                 ]
-            },            {
-                
+            },            
+            {
                 "icon": "zmdi-input-composite",
                 "name": "@NETWORKS",
                 "content": "网络相关",
                 "rsize": 0,
                 "children": [
+                    {
+                        "name": "wlan",
+                        "content": "开启wifi功能",
+                        "rsize": 200000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "network",
+                        "content": "开启socket库, 支持TCP/UDP连接",
+                        "rsize": 50000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "http",
+                        "content": "开启http库",
+                        "rsize": 20000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "mqtt",
+                        "content": "开启mqtt库, 支持http 1.0/1.1, 不支持http 2.0",
+                        "rsize": 20000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
+                    {
+                        "name": "websocket",
+                        "content": "开启websocket库",
+                        "rsize": 10000,
+                        "fsize": 275108,
+                        "dft": false
+                    },
                     {
                         "name": "httpsrv",
                         "content": "http server库, 支持监听一个端口提供http服务",
                         "rsize": 3000,
-                        "fsize": 275108,
+                        "fsize": 27108,
                         "dft": false
                     },
                     {
                         "name": "tls",
                         "content": "启用加密支持, 可使用https/mqtts/tcpssl等,但只能建立一个加密连接",
                         "rsize": 65000,
-                        "fsize": 275108,
+                        "fsize": 40108,
                         "dft": false,
                         "children": [
                             {