#ifndef LUAT_CONF_BSP #define LUAT_CONF_BSP #define LUAT_BSP_VERSION "V1026" //------------------------------------------------------ // 以下custom --> 到 <-- custom 之间的内容,是供用户配置的 // 同时也是云编译可配置的部分. 提交代码时切勿删除会修改标识 //custom --> //------------------------------------------------------ // Air101 与 Air103 的Flash大小有差异,需要区分 // 可选值, AIR101 AIR103 AIR601 Air690 分别对应3种模块 #define AIR101 // 启用64位虚拟机 // #define LUAT_CONF_VM_64bit // 其中文件系统区固定48k, 脚本区默认64k, 两者加起来就是默认值 64+48=112 // 若需要增加脚本区的大小, 那么大小必须是64的整数倍, 例如变成 128,192,256 #define LUAT_FS_SIZE 48 //文件系统大小 #define LUAT_SCRIPT_SIZE 64 //脚本大小 //---------------------------- // 外设,按需启用, 最起码启用uart和wdt库 #define LUAT_USE_UART 1 #define LUAT_USE_GPIO 1 #define LUAT_USE_I2C 1 #define LUAT_USE_SPI 1 #define LUAT_USE_ADC 1 #define LUAT_USE_PWM 1 #define LUAT_USE_WDT 1 #define LUAT_USE_PM 1 #define LUAT_USE_MCU 1 #define LUAT_USE_RTC 1 // SDIO 仅支持TF/SD卡的挂载 #define LUAT_USE_SDIO 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_WLAN_RAW 1 // #define LUAT_USE_ICONV 1 // 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 1 // #define LUAT_USE_ULWIP 1 // 开启TLS // #define LUAT_USE_TLS 1 // #define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 1 // #define LUAT_USE_CRYPTO_AES_MBEDTLS 1 // 其他网络功能 // #define LUAT_USE_FOTA 1 #define LUAT_USE_IOTAUTH 1 //---------------------------- // 常用工具库, 按需启用, 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 #define LUAT_USE_FS 1 #define LUAT_USE_SENSOR 1 #define LUAT_USE_SFUD 1 // #define LUAT_USE_STATEM 1 // 性能测试,跑完就是玩,不要与lvgl一起启用,生产环境的固件别加这个库 // #define LUAT_USE_COREMARK 1 // #define LUAT_USE_IR 1 // FDB 提供kv数据库, 与nvm库类似 // #define LUAT_USE_FDB 1 // fskv提供与fdb库兼容的API,旨在替换fdb库 #define LUAT_USE_FSKV 1 #define LUAT_USE_OTA 1 #define LUAT_USE_I2CTOOLS 1 #define LUAT_USE_LORA 1 #define LUAT_USE_MLX90640 1 // #define LUAT_USE_MAX30102 1 // zlib压缩,更快更小的实现 #define LUAT_USE_MINIZ 1 // FASTLZ的内存需求小,压缩比不如miniz // #define LUAT_USE_FASTLZ 1 // RSA 加解密,加签验签 #define LUAT_USE_RSA 1 // #define LUAT_USE_XXTEA 1 // 国密算法 SM2/SM3/SM4 // #define LUAT_USE_GMSSL 1 // #define LUAT_USE_SQLITE3 1 // #define LUAT_USE_WS2812 1 // #define LUAT_USE_HT1621 1 // // 使用 TLSF 内存池, 实验性, 内存利用率更高一些 // #define LUAT_USE_TLSF 1 // 音频相关 // #define LUAT_USE_I2S 1 // #define LUAT_USE_MEDIA 1 //---------------SDIO-FATFS特别配置 // sdio库对接的是fatfs // fatfs的长文件名和非英文文件名支持需要180k的ROM, 非常奢侈 // 从v0006开始默认关闭之, 需要用到就打开吧 // #define LUAT_USE_FATFS // #define LUAT_USE_FATFS_CHINESE 1 //---------------------------- // 高通字体, 需配合芯片使用 // #define LUAT_USE_GTFONT 1 // #define LUAT_USE_GTFONT_UTF8 1 // #define LUAT_USE_YMODEM 1 // #define LUAT_USE_MQTTCORE 1 // #define LUAT_USE_LIBCOAP 1 // #define LUAT_USE_ERCOAP 1 //---------------------------- // 高级功能, 推荐使用REPL, 因为SHELL已废弃 // #define LUAT_USE_SHELL 1 // #define LUAT_USE_DBG // NIMBLE 是蓝牙功能, 名为BLE, 但绝非低功耗. // #define LUAT_USE_NIMBLE 1 // 多虚拟机支持,实验性,一般不启用 // #define LUAT_USE_VMX 1 // #define LUAT_USE_NES // #define LUAT_USE_PROTOBUF 1 // #define LUAT_USE_REPL 1 //--------------------- // UI // LCD 是彩屏, 若使用LVGL就必须启用LCD // #define LUAT_USE_LCD // #define LUAT_USE_TJPGD // EINK 是墨水屏 // #define LUAT_USE_EINK //--------------------- // U8G2 // 单色屏, 支持i2c/spi // #define LUAT_USE_DISP // #define LUAT_USE_U8G2 /**************FONT*****************/ // #define LUAT_USE_FONTS /**********U8G2&LCD&EINK FONT*************/ // #define USE_U8G2_OPPOSANSM_ENGLISH 1 // #define USE_U8G2_OPPOSANSM8_CHINESE // #define USE_U8G2_OPPOSANSM10_CHINESE // #define USE_U8G2_OPPOSANSM12_CHINESE // #define USE_U8G2_OPPOSANSM16_CHINESE // #define USE_U8G2_OPPOSANSM24_CHINESE // #define USE_U8G2_OPPOSANSM32_CHINESE // SARASA // #define USE_U8G2_SARASA_ENGLISH // #define USE_U8G2_SARASA_M8_CHINESE // #define USE_U8G2_SARASA_M10_CHINESE // #define USE_U8G2_SARASA_M12_CHINESE // #define USE_U8G2_SARASA_M14_CHINESE // #define USE_U8G2_SARASA_M16_CHINESE // #define USE_U8G2_SARASA_M18_CHINESE // #define USE_U8G2_SARASA_M20_CHINESE // #define USE_U8G2_SARASA_M22_CHINESE // #define USE_U8G2_SARASA_M24_CHINESE // #define USE_U8G2_SARASA_M26_CHINESE // #define USE_U8G2_SARASA_M28_CHINESE /**********LVGL FONT*************/ // #define LV_FONT_OPPOSANS_M_8 // #define LV_FONT_OPPOSANS_M_10 // #define LV_FONT_OPPOSANS_M_12 // #define LV_FONT_OPPOSANS_M_16 // ------------------------------------- // PSRAM // 需要外挂PSRAM芯片, 否则不要启用, 必死机 // air101虽然支持psram,但与spi存在复用冲突 // air103支持psram与spi同时使用,复用不冲突 // #define LUAT_USE_PSRAM 1 // LVGL推荐把部分方法放入内存, 按需采用 // #define LV_ATTRIBUTE_FAST_MEM __attribute__((section (".ram_run"))) // ROTABLE技术是节省内存的关键技术, 启用PSRAM后内存不缺, 禁用可提高性能 // #define LUAT_CONF_DISABLE_ROTABLE 1 //--------------------------------------- //--------------------- // LVGL // 主推的UI库, 功能强大但API繁琐 // #define LUAT_USE_LVGL 1 #define LUAT_USE_LVGL_INDEV 1 // 输入设备 #define LUAT_USE_LVGL_ARC //圆弧 无依赖 #define LUAT_USE_LVGL_BAR //进度条 无依赖 #define LUAT_USE_LVGL_BTN //按钮 依赖容器CONT #define LUAT_USE_LVGL_BTNMATRIX //按钮矩阵 无依赖 #define LUAT_USE_LVGL_CALENDAR //日历 无依赖 #define LUAT_USE_LVGL_CANVAS //画布 依赖图片IMG #define LUAT_USE_LVGL_CHECKBOX //复选框 依赖按钮BTN 标签LABEL #define LUAT_USE_LVGL_CHART //图表 无依赖 #define LUAT_USE_LVGL_CONT //容器 无依赖 #define LUAT_USE_LVGL_CPICKER //颜色选择器 无依赖 #define LUAT_USE_LVGL_DROPDOWN //下拉列表 依赖页面PAGE 标签LABEL #define LUAT_USE_LVGL_GAUGE //仪表 依赖进度条BAR 仪表(弧形刻度)LINEMETER #define LUAT_USE_LVGL_IMG //图片 依赖标签LABEL #define LUAT_USE_LVGL_IMGBTN //图片按钮 依赖按钮BTN #define LUAT_USE_LVGL_KEYBOARD //键盘 依赖图片按钮IMGBTN #define LUAT_USE_LVGL_LABEL //标签 无依赖 #define LUAT_USE_LVGL_LED //LED 无依赖 #define LUAT_USE_LVGL_LINE //线 无依赖 #define LUAT_USE_LVGL_LIST //列表 依赖页面PAGE 按钮BTN 标签LABEL #define LUAT_USE_LVGL_LINEMETER //仪表(弧形刻度) 无依赖 #define LUAT_USE_LVGL_OBJMASK //对象蒙版 无依赖 #define LUAT_USE_LVGL_MSGBOX //消息框 依赖图片按钮IMGBTN 标签LABEL #define LUAT_USE_LVGL_PAGE //页面 依赖容器CONT #define LUAT_USE_LVGL_SPINNER //旋转器 依赖圆弧ARC 动画ANIM #define LUAT_USE_LVGL_ROLLER //滚筒 无依赖 #define LUAT_USE_LVGL_SLIDER //滑杆 依赖进度条BAR #define LUAT_USE_LVGL_SPINBOX //数字调整框 无依赖 #define LUAT_USE_LVGL_SWITCH //开关 依赖滑杆SLIDER #define LUAT_USE_LVGL_TEXTAREA //文本框 依赖标签LABEL 页面PAGE #define LUAT_USE_LVGL_TABLE //表格 依赖标签LABEL #define LUAT_USE_LVGL_TABVIEW //页签 依赖页面PAGE 图片按钮IMGBTN #define LUAT_USE_LVGL_TILEVIEW //平铺视图 依赖页面PAGE #define LUAT_USE_LVGL_WIN //窗口 依赖容器CONT 按钮BTN 标签LABEL 图片IMG 页面PAGE // 新字体系列 // #define LUAT_FONTS_SARASA_BOLD_M8_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M10_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M12_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M14_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M16_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M18_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M20_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M22_CHINESE // #define LUAT_FONTS_SARASA_BOLD_M24_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M8_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M10_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M12_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M14_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M16_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M18_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M20_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M22_CHINESE // #define LUAT_FONTS_SARASA_LIGHT_M24_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M8_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M10_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M12_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M14_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M16_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M18_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M20_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M22_CHINESE // #define LUAT_FONTS_SARASA_REGULAR_M24_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M8_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M10_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M12_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M14_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M16_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M18_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M20_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M22_CHINESE // #define LUAT_FONTS_SARASA_SEMIBOLD_M24_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M8_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M10_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M12_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M14_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M16_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M18_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M20_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M22_CHINESE // #define LUAT_FONTS_SARASA_EXTRALIGHT_M24_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M8_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M10_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M12_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M14_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M16_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M18_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M20_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M22_CHINESE // #define LUAT_FONTS_OPPO_BOLD_M24_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M8_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M10_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M12_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M14_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M16_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M18_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M20_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M22_CHINESE // #define LUAT_FONTS_OPPO_HEAVY_M24_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M8_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M10_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M12_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M14_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M16_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M18_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M20_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M22_CHINESE // #define LUAT_FONTS_OPPO_LIGHT_M24_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M8_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M10_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M12_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M14_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M16_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M18_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M20_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M22_CHINESE // #define LUAT_FONTS_OPPO_MEDIUM_M24_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M8_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M10_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M12_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M14_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M16_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M18_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M20_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M22_CHINESE // #define LUAT_FONTS_OPPO_REGULAR_M24_CHINESE //------------------------------------------------------------------------------- //<-- custom //------------------------------------------------------------------------------ #define LUAT_USE_LWIP 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_W5500) || defined(LUAT_USE_ULWIP) #ifndef LUAT_USE_NETWORK #define LUAT_USE_NETWORK #endif #endif #if defined(LUAT_USE_NETWORK) || defined(LUAT_USE_ULWIP) #ifndef LUAT_USE_DNS #define LUAT_USE_DNS 1 #endif #endif #if defined(LUAT_USE_W5500) || defined(LUAT_USE_ULWIP) #ifndef LUAT_USE_DHCP #define LUAT_USE_DHCP #endif #endif #define LV_DISP_DEF_REFR_PERIOD 30 #define LUAT_LV_DEBUG 0 #define LV_MEM_CUSTOM 1 // 内存优化: 减少内存消耗, 会稍微减低性能 // #define LUAT_USE_MEMORY_OPTIMIZATION_CODE_MMAP 1 //---------------------------------- // 使用VFS(虚拟文件系统)和内置库文件, 必须启用 #define LUAT_USE_FS_VFS 1 #define LUAT_USE_VFS_INLINE_LIB 1 //---------------------------------- #define LV_HOR_RES_MAX (160) #define LV_VER_RES_MAX (80) #define LV_COLOR_DEPTH 16 #define LV_COLOR_16_SWAP 1 #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 #define LUAT_GPIO_PIN_MAX (48) #define LUAT_CONF_SPI_HALF_DUPLEX_ONLY 1 #ifdef LUAT_USE_SHELL #undef LUAT_USE_REPL #endif #ifdef LUAT_USE_MEDIA #ifndef LUAT_USE_I2S #define LUAT_USE_I2S 1 #endif #endif #ifndef LUAT_USE_PSRAM #if defined(LUAT_USE_PSRAM_1M) || defined(LUAT_USE_PSRAM_2M) || defined(LUAT_USE_PSRAM_4M) || defined(LUAT_USE_PSRAM_8M) #define LUAT_USE_PSRAM 1 #endif #endif #ifdef LUAT_USE_SOFT_UART #undef LUAT_USE_SOFT_UART #endif #endif