Explorar o código

Merge remote-tracking branch 'refs/remotes/origin/master'

Dozingfiretruck hai 10 meses
pai
achega
14a11ce7fb

+ 1 - 1
components/camera/luat_camera.h

@@ -88,7 +88,7 @@ int l_camera_handler(lua_State *L, void* ptr);
 #endif
 /**
  * @brief 配置spi camera并且初始化camera
- * @param id camera接收数据总线ID,ec618上有2条,0和1
+ * @param id camera接收数据总线ID,见选型手册,例如AIR780EXXX是0
  * @param conf camera相关配置
  * @param callback camera接收中断回调,注意这是在中断里的回调
  * @param param 中断回调时用户的参数

+ 1 - 1
components/cc/luat_lib_cc.c

@@ -7,7 +7,7 @@
 @demo    cc
 @tag LUAT_USE_VOLTE
 @usage
--- 当前仅Air780EPV支持VoLTE通话功能
+-- 选型手册上支持VoLTE通话功能的模组支持
 */
 
 #include "luat_base.h"

+ 10 - 2
components/lcd/luat_lcd.c

@@ -224,7 +224,11 @@ int luat_lcd_sleep(luat_lcd_conf_t* conf) {
     if (conf->pin_pwr != LUAT_GPIO_NONE)
         luat_gpio_set(conf->pin_pwr, Luat_GPIO_LOW);
     luat_rtos_task_sleep(5);
-    lcd_write_cmd_data(conf,conf->opts->sleep_cmd?conf->opts->sleep_cmd:LUAT_LCD_DEFAULT_SLEEP, NULL, 0);
+    if (conf->opts->sleep_ctrl) {
+    	conf->opts->sleep_ctrl(conf, 1);
+    } else {
+    	lcd_write_cmd_data(conf,conf->opts->sleep_cmd?conf->opts->sleep_cmd:LUAT_LCD_DEFAULT_SLEEP, NULL, 0);
+    }
     return 0;
 }
 
@@ -232,7 +236,11 @@ int luat_lcd_wakeup(luat_lcd_conf_t* conf) {
     if (conf->pin_pwr != LUAT_GPIO_NONE)
         luat_gpio_set(conf->pin_pwr, Luat_GPIO_HIGH);
     luat_rtos_task_sleep(5);
-    lcd_write_cmd_data(conf,conf->opts->wakeup_cmd?conf->opts->wakeup_cmd:LUAT_LCD_DEFAULT_WAKEUP, NULL, 0);
+    if (conf->opts->sleep_ctrl) {
+    	conf->opts->sleep_ctrl(conf, 0);
+    } else {
+    	lcd_write_cmd_data(conf,conf->opts->wakeup_cmd?conf->opts->wakeup_cmd:LUAT_LCD_DEFAULT_WAKEUP, NULL, 0);
+    }
     return 0;
 }
 

+ 2 - 0
components/lcd/luat_lcd.h

@@ -128,6 +128,7 @@ typedef struct luat_lcd_opts {
     int (*write_cmd_data)(luat_lcd_conf_t* conf,const uint8_t cmd, const uint8_t *data, uint8_t data_len);
     int (*read_cmd_data)(luat_lcd_conf_t* conf,const uint8_t cmd, const uint8_t *data, uint8_t data_len, uint8_t dummy_bit);
     int (*lcd_draw)(luat_lcd_conf_t* conf, int16_t x1, int16_t y1, int16_t x2, int16_t y2, luat_color_t* color);
+    int (*sleep_ctrl)(luat_lcd_conf_t* conf, uint8_t on_off);
 } luat_lcd_opts_t;
 
 extern luat_lcd_opts_t lcd_opts_gc9106l;
@@ -198,6 +199,7 @@ void luat_lcd_IF_init(luat_lcd_conf_t* conf);
 int luat_lcd_IF_write_cmd_data(luat_lcd_conf_t* conf,const uint8_t cmd, const uint8_t *data, uint8_t data_len);
 int luat_lcd_IF_read_cmd_data(luat_lcd_conf_t* conf,const uint8_t cmd, uint8_t *data, uint8_t data_len, uint8_t dummy_bit);
 int luat_lcd_IF_draw(luat_lcd_conf_t* conf, int16_t x1, int16_t y1, int16_t x2, int16_t y2, luat_color_t* color);
+int luat_lcd_IF_sleep(luat_lcd_conf_t* conf, uint8_t on_off);
 /**
  * @brief luat_lcd_init放到service里跑,避免luat_lcd_init里漫长的delay带来的影响
  * @param conf lcd配置

+ 2 - 0
components/lcd/luat_lcd_jd9261t.c

@@ -43,6 +43,8 @@ static int jd9261t_inited_init(luat_lcd_conf_t* conf)
 
 luat_lcd_opts_t lcd_opts_jd9261t_inited = {
     .name = "jd9261t_inited",
+    .sleep_cmd = 0xff,			//不需要发命令
+    .wakeup_cmd = 0xff,			//不需要发命令
     .init_cmds_len = 0,
     .init_cmds = NULL,
     .direction0 = 0x00,

+ 1 - 1
components/lvgl/binding/luat_lib_lvgl.c

@@ -174,7 +174,7 @@ static int l_lv_theme_set_act(lua_State *L) {
 }
 
 /*
-LVGL休眠控制,暂停/恢复刷新定时器,目前只有105和EC618可以用
+LVGL休眠控制,暂停/恢复刷新定时器,目前只有Air105和Air780EXXX可以用
 @api lvgl.sleep(enable)
 @boolean true暂停 false恢复
 @usage

+ 4 - 4
components/mobile/luat_lib_mobile.c

@@ -206,7 +206,7 @@ static int l_mobile_number(lua_State* L) {
 /**
 获取当前SIM卡槽,或者切换卡槽
 @api mobile.simid(id)
-@int SIM卡的编号, 例如0, 1, 如果支持双卡,比如EC618,可以填2来自适应,但是会占用掉4个IO(gpio4/5/6/23)。如果不填就直接读取当前卡槽
+@int SIM卡的编号, 例如0, 1, 如果支持双卡,例如Air780EXXX,可以填2来自适应,但是会占用掉4个IO(gpio4/5/6/23)。如果不填就直接读取当前卡槽
 @boolean 是否优先用SIM0,只有SIM卡编号写2自适应才有用!!!。true优先用SIM0,false则由具体平台决定,支持双卡双待SIM0优先,不支持的是上一次检测到的优先,默认是false,必须在开机就配置,否则就无效了
 @return int 当前sim卡槽编号,若失败返回-1
 @usage
@@ -916,15 +916,15 @@ static int l_mobile_data_traffic(lua_State* L) {
 @int 配置值,根据具体配置的item决定
 @return boolean 是否成功
 @usage
---针对不同平台有不同的配置,谨慎使用,目前只有EC618/EC718系列
+--针对不同平台有不同的配置,谨慎使用,目前只有Air780EXXX系列支持
 
--- EC618配置小区重选信号差值门限,不能大于15dbm,必须在飞行模式下才能用
+-- Air780EXXX配置小区重选信号差值门限,不能大于15dbm,必须在飞行模式下才能用
 mobile.flymode(0,true)
 mobile.config(mobile.CONF_RESELTOWEAKNCELL, 15)
 mobile.config(mobile.CONF_STATICCONFIG, 1) --开启网络静态优化
 mobile.flymode(0,false)
 
--- EC618设置SIM写入次数的统计
+-- Air780EXXX设置SIM写入次数的统计
 -- 关闭统计
 mobile.config(mobile.CONF_SIM_WC_MODE, 0)
 -- 开启统计, 默认也是开启的.

+ 9 - 9
components/mobile/luat_mobile.h

@@ -41,7 +41,7 @@ int luat_mobile_get_imei(int sim_id, char* buff, size_t buf_len);
  * @brief 获取SN,如果用户没有调用luat_mobile_set_sn接口写过SN,默认值为空
  * 
  * @param buff[OUT] SN数据
- * @param buf_len 用户传入缓存的大小,EC618平台底层支持的最大长度为32字节,如果底层数据量大于buf_len,只会传出buf_len大小的数据
+ * @param buf_len 用户传入缓存的大小,Air780EXXX平台底层支持的最大长度为32字节,如果底层数据量大于buf_len,只会传出buf_len大小的数据
  * @return int <= 0错误 >0实际传出的大小
  */
 int luat_mobile_get_sn(char* buff, size_t buf_len);
@@ -50,7 +50,7 @@ int luat_mobile_get_sn(char* buff, size_t buf_len);
  * @brief 设置SN
  * 
  * @param buff SN数据,必须是ascii值大于等于0x21小于等于0x7e的可见ascii字符
- * @param buf_len SN数据长度;EC618平台底层支持的最大长度为32字节,如果buf_len大于32,只会保存前32字节的数据
+ * @param buf_len SN数据长度;Air780EXXX平台底层支持的最大长度为32字节,如果buf_len大于32,只会保存前32字节的数据
  * @return int = 0成功, = -1失败
  */
 int luat_mobile_set_sn(char* buff, uint8_t buf_len);
@@ -176,7 +176,7 @@ uint8_t luat_mobile_get_default_pdn_ipv6(void);
 int luat_mobile_get_apn(int sim_id, int cid, char* buff, size_t buf_len);
 
 /**
- * @brief 用户控制APN激活过程。只有使用了本函数后,才能通过手动激活用户的APN并加装网卡。只有EC618/EC7XX支持
+ * @brief 用户控制APN激活过程。只有使用了本函数后,才能通过手动激活用户的APN并加装网卡。只有Air780EXXX支持,不建议使用
  */
 void luat_mobile_user_ctrl_apn(void);
 /**
@@ -184,7 +184,7 @@ void luat_mobile_user_ctrl_apn(void);
  */
 void luat_mobile_user_ctrl_apn_stop(void);
 /**
- * @brief 手动设置APN激活所需的最小信息,如果需要更详细的设置,可以自行修改本函数。,只有EC618/EC7XX支持
+ * @brief 手动设置APN激活所需的最小信息,如果需要更详细的设置,可以自行修改本函数。只有Air780EXXX支持,不建议使用
  *
  * @param sim_id sim位置,对于双卡双待的设备,选0或者1,其他设备随意
  * @param cid cid位置 2~6
@@ -197,7 +197,7 @@ int luat_mobile_set_apn_base_info(int sim_id, int cid, uint8_t type, uint8_t* ap
 
 
 /**
- * @brief 手动设置APN激活所需的加密信息,如果需要更详细的设置,可以自行修改本函数。大部分情况下不需要加密信息,定向卡可能需要。只有EC618/EC7XX支持
+ * @brief 手动设置APN激活所需的加密信息,如果需要更详细的设置,可以自行修改本函数。大部分情况下不需要加密信息,定向卡可能需要。只有Air780EXXX支持,不建议使用
  *
  * @param sim_id sim位置,对于双卡双待的设备,选0或者1,其他设备随意
  * @param cid cid位置 2~6
@@ -211,7 +211,7 @@ int luat_mobile_set_apn_base_info(int sim_id, int cid, uint8_t type, uint8_t* ap
 int luat_mobile_set_apn_auth_info(int sim_id, int cid, uint8_t protocol, uint8_t *user_name, uint8_t user_name_len, uint8_t *password, uint8_t password_len);
 
 /**
- * @brief 手动激活/去激活APN。只有EC618/EC7XX支持
+ * @brief 手动激活/去激活APN。只有Air780EXXX支持,不建议使用
  *
  * @param sim_id sim位置,对于双卡双待的设备,选0或者1,其他设备随意
  * @param cid cid位置 2~6
@@ -221,7 +221,7 @@ int luat_mobile_set_apn_auth_info(int sim_id, int cid, uint8_t protocol, uint8_t
 int luat_mobile_active_apn(int sim_id, int cid, uint8_t state);
 
 /**
- * @brief 手动激活网卡。只有EC618支持
+ * @brief 手动激活网卡。只有Air780EXXX支持,不建议使用
  *
  * @param sim_id sim位置,对于双卡双待的设备,选0或者1,其他设备随意
  * @param cid cid位置 2~6
@@ -230,7 +230,7 @@ int luat_mobile_active_apn(int sim_id, int cid, uint8_t state);
 int luat_mobile_active_netif(int sim_id, int cid);
 
 /**
- * @brief 用户设置APN的基本信息,并且自动激活,注意不能和上述手动操作APN的API共用,专网卡如果不能用公网apn激活默认承载的必须用这个
+ * @brief 用户设置APN的基本信息,并且自动激活,注意不能和上述手动操作APN的API共用,专网卡如果不能用公网apn激活默认承载的必须用这个,推荐使用
  *
  * @param sim_id sim位置,对于双卡双待的设备,选0或者1,其他设备随意
  * @param cid cid位置 1~6
@@ -528,7 +528,7 @@ typedef enum LUAT_MOBILE_EVENT
 	LUAT_MOBILE_EVENT_CSCON, /**< RRC状态,0 idle 1 active*/
 	LUAT_MOBILE_EVENT_BEARER,/**< PDP承载状态*/
 	LUAT_MOBILE_EVENT_SMS,	/**< SMS短信 >*/
-	LUAT_MOBILE_EVENT_NAS_ERROR,/**< NAS异常消息,air780e, air780ep有效*/
+	LUAT_MOBILE_EVENT_NAS_ERROR,/**< NAS异常消息,air780exxx系列有效*/
 	LUAT_MOBILE_EVENT_IMS_REGISTER_STATUS, /**< IMS注册状态,volte必须在注册成功情况下使用*/
 	LUAT_MOBILE_EVENT_CC,	/**< 通话相关消息*/
 	LUAT_MOBILE_EVENT_USB_ETH_ON,

+ 2 - 2
components/multimedia/luat_lib_multimedia_audio.c

@@ -505,7 +505,7 @@ static int l_audio_raw_on(lua_State *L) {
 播放或者停止播放一个文件,播放完成后,会回调一个audio.DONE消息,可以用pause来暂停或者恢复,其他API不可用。考虑到读SD卡速度比较慢而拖累luavm进程的速度,所以尽量使用本API
 @api audio.play(id, path, errStop)
 @int 音频通道
-@string/table 文件名,如果为空,则表示停止播放,如果是table,则表示连续播放多个文件,主要应用于云喇叭,目前只有EC618支持,并且会用到errStop参数
+@string/table 文件名,如果为空,则表示停止播放,如果是table,则表示连续播放多个文件,主要应用于云喇叭,目前只有Air780EXXX支持,并且会用到errStop参数
 @boolean 是否在文件解码失败后停止解码,只有在连续播放多个文件时才有用,默认true,遇到解码错误自动停止
 @return boolean 成功返回true,否则返回false
 @usage
@@ -625,7 +625,7 @@ static int l_audio_play_wait_end(lua_State *L) {
 }
 
 /*
-获取最近一次播放结果,不是所有平台都支持的,目前只有EC618支持
+获取最近一次播放结果,不是所有平台都支持的,目前只有Air780EXXX支持
 @api audio.getError(id)
 @int 音频通道
 @return boolean 是否全部播放成功,true成功,false有文件播放失败

+ 1 - 1
components/multimedia/luat_lib_multimedia_codec.c

@@ -27,7 +27,7 @@
 @api codec.create(type, isDecoder, quality)
 @int 多媒体类型,目前支持codec.MP3 codec.AMR
 @boolean 是否是解码器,true解码器,false编码器,默认true,是解码器
-@int 编码等级,部分bsp有内部编码器,可能需要提前输入编码等级,比如air780ep的内部amr编码器
+@int 编码等级,部分bsp有内部编解码器,可能需要提前输入编解码等级,不知道的就填7
 @return userdata 成功返回一个数据结构,否则返回nil
 @usage
 -- 创建解码器

+ 1 - 1
components/network/netdrv/binding/luat_lib_netdrv.c

@@ -260,7 +260,7 @@ static const rotable_Reg_t reg_netdrv[] =
     //@const CH390 number 南京沁恒CH390系列,支持CH390D/CH390H, SPI通信
     { "CH390",          ROREG_INT(1)},
     { "CH395",          ROREG_INT(2)}, // 考虑兼容Air724UG/Air820UG的老客户
-    { "W5500",          ROREG_INT(3)}, // 考虑兼容Air780E/Air105的老客户
+    { "W5500",          ROREG_INT(3)}, // 考虑兼容Air780EXXX/Air105的老客户
     { "UART",           ROREG_INT(16)}, // UART形式的网卡, 不带MAC, 直接IP包
     { "SPINET",         ROREG_INT(32)}, // SPI形式的网卡, 可以带MAC, 也可以不带
     { "WHALE",          ROREG_INT(64)}, // 通用WHALE设备

+ 3 - 3
components/repl/luat_lib_repl.c

@@ -13,11 +13,11 @@ Air105           UART0   1500000 8 None 1
 ESP32C3          UART0   921600  8 None 1 -- 注意, 简约版(无CH343)不支持
 ESP32C2          UART0   921600  8 None 1
 ESP32S2          UART0   921600  8 None 1
-Air780E          虚拟串口 任意             -- 暂不支持从物理UART调用
+Air780EXXX       虚拟串口 任意             -- 暂不支持从物理UART调用
 
 使用方法:
-1. 非Air780E系列可以使用任意串口工具, 打开对应的串口, 记得勾选"回车换行"
-2. Air780E请配合LuaTools使用, 菜单里有 "简易串口工具" 可发送, 记得勾选"回车换行"
+1. 非Air780EXXX系列可以使用任意串口工具, 打开对应的串口, 记得勾选"回车换行"
+2. Air780EXXX请配合LuaTools使用, 菜单里有 "简易串口工具" 可发送, 记得勾选"回车换行"
 2. 发送lua语句, 并以回车换行结束
 
 语句支持情况:

+ 33 - 5
components/tp/luat_tp_jd9261t.c

@@ -18,6 +18,34 @@ typedef struct
 
 static jd9261t_tp_ctrl_t jd9261t_tp;
 
+static int tp_i2c_send(luat_tp_config_t* luat_tp_config, int addr, void* buff, size_t len, uint8_t stop)
+{
+    if (luat_tp_config->soft_i2c != NULL){
+        return i2c_soft_send(luat_tp_config->soft_i2c, addr, buff, len, stop);
+    }else{
+        return luat_i2c_send(luat_tp_config->i2c_id, addr, buff, len, stop);
+    }
+}
+
+static int tp_i2c_recv(luat_tp_config_t* luat_tp_config, int addr, void* buff, size_t len)
+{
+    if (luat_tp_config->soft_i2c != NULL){
+        return i2c_soft_recv(luat_tp_config->soft_i2c, addr, buff, len);
+    }else{
+        return luat_i2c_recv(luat_tp_config->i2c_id, addr, buff, len);
+    }
+}
+
+static int tp_i2c_xfer(luat_tp_config_t* luat_tp_config, int addr, uint8_t *reg, size_t reg_len, uint8_t *buff, size_t len)
+{
+    if (luat_tp_config->soft_i2c != NULL){
+    	i2c_soft_send(luat_tp_config->soft_i2c, addr, reg, reg_len, 0);
+        return i2c_soft_recv(luat_tp_config->soft_i2c, addr, buff, len);
+    }else{
+        return luat_i2c_transfer(luat_tp_config->i2c_id, addr, reg, reg_len, buff, len);
+    }
+}
+
 static int tp_jd9261t_read(luat_tp_config_t* luat_tp_config, luat_tp_data_t *luat_tp_data)
 {
 	uint16_t tp_x, tp_y;
@@ -28,10 +56,10 @@ static int tp_jd9261t_read(luat_tp_config_t* luat_tp_config, luat_tp_data_t *lua
 	buff[1] = 0x01;
 	buff[2] = 0x11;
 	buff[3] = 0x20;
-	res = luat_i2c_send(luat_tp_config->i2c_id, 0x68, buff, 4, 1);
+	res = tp_i2c_send(luat_tp_config, 0x68, buff, 4, 1);
 	if (res)
 	{
-		res = luat_i2c_send(luat_tp_config->i2c_id, 0x68, buff, 4, 1);
+		res = tp_i2c_send(luat_tp_config, 0x68, buff, 4, 1);
 		if (res)
 		{
 			LLOGE("TP read point failed");
@@ -39,10 +67,10 @@ static int tp_jd9261t_read(luat_tp_config_t* luat_tp_config, luat_tp_data_t *lua
 		}
 	}
 	luat_rtos_task_sleep(1);
-	res = luat_i2c_recv(luat_tp_config->i2c_id, 0x68, buff, 60);
+	res = tp_i2c_recv(luat_tp_config, 0x68, buff, 60);
 	if (res)
 	{
-		res = luat_i2c_recv(luat_tp_config->i2c_id, 0x68, buff, 60);
+		res = tp_i2c_recv(luat_tp_config, 0x68, buff, 60);
 		if (res)
 		{
 			LLOGE("TP read point failed");
@@ -124,7 +152,7 @@ static int tp_jd9261t_inited_init(luat_tp_config_t* luat_tp_config)
         luat_i2c_setup(luat_tp_config->i2c_id, I2C_SPEED_SLOW);
     }
 
-	if (luat_i2c_transfer(luat_tp_config->i2c_id, 0x68, ID, 4, ID, 2))
+	if (tp_i2c_xfer(luat_tp_config->i2c_id, 0x68, ID, 4, ID, 2))
 	{
 		LLOGE("TP not detect");
 	}

+ 1 - 1
components/wlan/luat_lib_wlan.c

@@ -12,7 +12,7 @@
 提醒:
 对于仅支持wifiscan的模块, 仅 init/scan/scanResult 函数是可用的
 
-例如: Air780E/Air600E/Air780EG等仅支持wifiscan
+例如: Air780EXXX等仅支持wifiscan
 ]]
 
 */

+ 6 - 6
luat/modules/luat_lib_adc.c

@@ -49,7 +49,7 @@ static int l_adc_open(lua_State *L) {
 }
 
 /**
-设置ADC的测量范围,注意这个和具体芯片有关,目前只支持air105/Air780E系列
+设置ADC的测量范围,注意这个和具体芯片有关,目前只支持air105/Air780EXXX系列
 @api adc.setRange(range)
 @int range参数,与具体设备有关,比如air105填adc.ADC_RANGE_1_8和adc.ADC_RANGE_3_6
 @return nil
@@ -62,9 +62,9 @@ adc.setRange(adc.ADC_RANGE_1_8)
 adc.setRange(adc.ADC_RANGE_3_6)
 
 
--- EC618系列(Air780E等)/EC718E系列(Air780EP/Air780EPV等)支持以下2种
-adc.setRange(adc.ADC_RANGE_1_2) -- 关闭分压
-adc.setRange(adc.ADC_RANGE_3_8) -- 启用分压
+-- Air780EXXX支持多种,但是建议用以下2种
+adc.setRange(adc.ADC_RANGE_MIN) -- 关闭分压
+adc.setRange(adc.ADC_RANGE_MAX) -- 启用分压
  */
 static int l_adc_set_range(lua_State *L) {
 	luat_adc_global_config(ADC_SET_GLOBAL_RANGE, luaL_checkinteger(L, 1));
@@ -152,9 +152,9 @@ static const rotable_Reg_t reg_adc[] =
 	{ "ADC_RANGE_3_6",   ROREG_INT(1)},
 	//@const ADC_RANGE_1_8 number air105的ADC分压电阻关闭,范围0~1.88V
 	{ "ADC_RANGE_1_8",   ROREG_INT(0)},
-	//@const ADC_RANGE_3_8 number air780E开启ADC0,1分压电阻,范围0~3.8V
+	//@const ADC_RANGE_3_8 number air780E开启ADC0,1分压电阻,范围0~3.8V,将要废弃,不建议使用
 	{ "ADC_RANGE_3_8",   ROREG_INT(LUAT_ADC_AIO_RANGE_3_8)},
-	//@const ADC_RANGE_1_2 number air780E关闭ADC0,1分压电阻,范围0~1.2V
+	//@const ADC_RANGE_1_2 number air780E关闭ADC0,1分压电阻,范围0~1.2V,将要废弃,不建议使用
 	{ "ADC_RANGE_1_2",   ROREG_INT(0)},
 	//@const ADC_RANGE_MAX number ADC开启内部分压后所能到达最大量程,由具体芯片决定
 	{ "ADC_RANGE_MAX",   ROREG_INT(LUAT_ADC_AIO_RANGE_MAX)},

+ 1 - 1
luat/modules/luat_lib_fota.c

@@ -68,7 +68,7 @@ end)
 @usage
 -- 初始化fota流程
 local result = fota.init(0, 0x00300000, spi_device)	--由于105的flash从0x01000000开始,所以0就是外部spiflash
-local result = fota.init()	--ec618系列/EC7XX系列使用固定内部地址,所以不需要参数了
+local result = fota.init()	--Air780EXXX系列使用固定内部地址,所以不需要参数了
 local result = fota.init(0xe0000000, 0, spi_device, 27)	--EC7XX系列允许使用外部flash更新,但是地址必须加上0xe0000000的偏移
 */
 static int l_fota_init(lua_State* L)

+ 5 - 5
luat/modules/luat_lib_gpio.c

@@ -187,7 +187,7 @@ int l_gpio_handler(lua_State *L, void* ptr) {
 @any mode 输入输出模式:<br>数字0/1代表输出模式<br>nil代表输入模式<br>function代表中断模式,如果填gpio.count,则为中断计数功能,中断时不回调
 @int pull 上拉下拉模式, 可以是上拉模式 gpio.PULLUP 或下拉模式 gpio.PULLDOWN, 或者开漏模式 0. 需要根据实际硬件选用
 @int irq 中断触发模式,默认gpio.BOTH。中断触发模式<br>上升沿gpio.RISING<br>下降沿gpio.FALLING<br>上升和下降都触发gpio.BOTH 
-@int alt 复用选项,目前只有EC618平台需要这个参数,有些GPIO可以复用到不同引脚上,可以选择复用选项(0或者4)从而复用到对应的引脚上
+@int alt 复用选项,目前只有Air780EXXX平台需要这个参数,有些GPIO可以复用到不同引脚上,可以选择复用选项(0或者4)从而复用到对应的引脚上
 @return any 输出模式返回设置电平的闭包, 输入模式和中断模式返回获取电平的闭包
 @usage
 
@@ -215,12 +215,12 @@ end, gpio.PULLUP, gpio.RISING)
 gpio.setup(7, gpio.count)
 
 -- alt_func 于2023.7.2新增
--- 本功能仅对部分平台有效, 且仅用于调整GPIO复用,其他复用方式请使用muc.iomux函数
+-- 本功能仅对AIR780EXXX有效,仅用于调整GPIO复用,不能用于外设复用调整
 -- 以下示例代码, 将I2S_DOUT复用成gpio18
 -- AIR780E的PIN33(模块管脚序号), 对应paddr 38, 默认功能是I2S_DOUT, 复用成gpio18
 -- 方向输出,且初始化电平为低,使用硬件默认上下拉配置
--- Air780E(EC618系列的GPIO复用请查阅 https://air780e.cn 首页硬件资料表格中的Air780E&Air780EG&Air780EX&Air700E_GPIO_table_20231227.pdf)
--- Air780EP(EC718P系列的GPIO复用请查阅 https://air780ep.cn 首页硬件资料表格中的Air780E&Air780EG&Air780EX&Air700E_GPIO_table_20231227.pdf)
+-- Air780E(GPIO复用请查阅 https://air780e.cn 首页硬件资料表格中的Air780E&Air780EG&Air780EX&Air700E_GPIO_table_20231227.pdf)
+-- Air780EP(GPIO复用请查阅 https://air780ep.cn 首页硬件资料表格中的Air780E&Air780EG&Air780EX&Air700E_GPIO_table_20231227.pdf)
 gpio.setup(18, 0, nil, nil, 4)
 
 -- 提醒: 
@@ -228,7 +228,7 @@ gpio.setup(18, 0, nil, nil, 4)
 -- 当管脚为输出模式,才能通过gpio.set()设置电平
 -- 当管脚为输出模式,通过gpio.get()总会得到0
 -- 中断回调的val参数不代表触发方向, 仅代表中断后某个时间点的电平
--- 对Cat.1模块,EC618系列只有AONGPIO才能双向触发,其他系列所有GPIO都能双向触发,具体看硬件手册
+-- 对Cat.1模块,Air780E只有GPIO20~22才能双向触发,其他系列所有GPIO都能双向触发,具体看硬件手册
 -- 默认设置下,中断是没有防抖时间的,可以通过gpio.set_debounce(pin, 50)来设置防抖时间
 
 -- pull参数的额外说明, 上拉/下拉配置

+ 1 - 1
luat/modules/luat_lib_i2s.c

@@ -153,7 +153,7 @@ static int l_i2s_send(lua_State *L) {
 }
 
 /*
-接收i2s数据,注意在数据在回调时已经存放在zbuff里,目前只有air780e系列支持
+接收i2s数据,注意在数据在回调时已经存放在zbuff里,目前只有air780exxx系列支持
 @api i2s.recv(id, buffer, len)
 @int 通道id
 @zbuff 数据缓存区

+ 2 - 2
luat/modules/luat_lib_mcu.c

@@ -235,7 +235,7 @@ LUAT_WEAK int luat_uart_pre_setup(int uart_id, uint8_t use_alt_type){return -1;}
 LUAT_WEAK int luat_i2c_set_iomux(int id, uint8_t value){return -1;}
 #endif
 /*
-mcu死机时处理模式,目前只有EC618平台适用
+mcu死机时处理模式
 @api mcu.hardfault(mode)
 @int 处理模式,0死机停机,1死机后重启,2死机后尽量将错误信息提交给外部工具后重启 3.死机时写入关键信息到flash后立刻重启
 @usage
@@ -381,7 +381,7 @@ static int l_mcu_ticks2(lua_State* L) {
 @boolean 低速32K晶振参考时钟是否输出
 @usage
 -- 本函数于2024.5.17新增
--- 当前仅Air780EP系列支持
+-- 当前仅Air780EXXX系列支持
 mcu.XTALRefOutput(true, false)	--高速晶振参考时钟输出,低速32K不输出
 */
 static int l_mcu_xtal_ref_output(lua_State* L) {

+ 15 - 15
luat/modules/luat_lib_pm.c

@@ -35,7 +35,7 @@
         wakeup脚可唤醒
         唤醒后程序从头运行,休眠前的运行时数据全丢
 
-对部分模块,例如Air780E, DEEP/HIB对用户代码没有区别
+对部分模块,例如Air780EXXX, DEEP/HIB对用户代码没有区别
 
 除pm.shutdown()外, RTC总是运行的, 除非掉电
 ]]
@@ -43,10 +43,10 @@
 -- 定时器唤醒, 请使用 pm.dtimerStart()
 -- wakeup唤醒
     -- 如Air101/Air103, 有独立的wakeup脚, 不需要配置,可直接控制唤醒
-    -- 如Air780E系列, 有多个wakeup可用, 通过gpio.setup(32)配置虚拟GPIO进行唤醒配置
+    -- 如Air780EXXX系列, 有多个wakeup可用, 通过gpio.setup()配置虚拟GPIO进行唤醒配置,参考demo/gpio/virtualIO
 
 pm.request(pm.IDLE) -- 通过切换不同的值请求进入不同的休眠模式
--- 对应Air780E系列, 执行后并不一定马上进入休眠模式, 如无后续数据传输需求,可先进入飞行模式,然后快速休眠
+-- 对应Air780EXXX系列, 执行后并不一定马上进入休眠模式, 如无后续数据传输需求,可先进入飞行模式,然后快速休眠
 */
 #include "lua.h"
 #include "lauxlib.h"
@@ -121,7 +121,7 @@ static int l_pm_request(lua_State *L) {
 @usage
 -- 添加底层定时器
 pm.dtimerStart(0, 300 * 1000) -- 5分钟后唤醒
--- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)
+-- 针对Air780EXXX有如下限制
 -- id = 0 或者 id = 1 是, 最大休眠时长是2.5小时
 -- id >= 2是, 最大休眠时长是740小时
  */
@@ -260,7 +260,7 @@ static int l_pm_last_reson(lua_State *L) {
 @usage
 -- 请求进入休眠模式
 pm.force(pm.HIB)
--- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等), 该操作会关闭USB通信
+-- 针对Air780EXXX, 该操作会关闭USB通信
 -- 唤醒后如需开启USB, 请打开USB电压
 --pm.power(pm.USB, true)
  */
@@ -280,7 +280,7 @@ pm.request(pm.HIB)
 if pm.check() then
     log.info("pm", "it is ok to hib")
 else
-    -- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等), 该操作会关闭USB通信
+    -- 针对Air780EXXX, 该操作会关闭USB通信
     pm.force(pm.HIB) -- 强制休眠
     -- 唤醒后如需开启USB, 请打开USB电压
     --sys.wait(100)
@@ -342,12 +342,12 @@ pm.power(pm.USB, false)
 -- Air780EG,为内置的GPS芯片上电. 注意, Air780EG的GPS和GPS_ANT是一起控制的,所以合并了.
 pm.power(pm.GPS, true)
 
--- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)开启pwrkey开机防抖
+-- Air780EXXX开启pwrkey开机防抖
 -- 注意: 开启后, 复位键就变成关机了!!! pwrkey要长按2秒才能开机
 -- pm.power(pm.PWK_MODE, true)
 
--- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)PSM+低功耗设置
--- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)节能模式,0~3,0完全关闭,1性能优先,2平衡,3极致功耗
+-- Air780EXXX PSM+低功耗设置
+-- Air780EXXX节能模式,0~3,0完全关闭,1~2普通低功耗,3超低功耗,深度休眠
 -- 详情访问: https://airpsm.cn
 -- pm.power(pm.WORK_MODE, 1)
  */
@@ -372,7 +372,7 @@ IO高电平电压控制
 @int 电平值,单位毫伏
 @return boolean 处理结果true成功,false失败
 @usage
--- 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)设置IO电平, 范围 1650 ~ 2000,2650~3400 , 单位毫伏, 步进50mv
+-- Air780EXXX设置IO电平, 范围 1650 ~ 2000,2650~3400 , 单位毫伏, 步进50mv
 -- 注意, 这里的设置优先级会高于硬件IOSEL脚的配置
 -- 但开机时依然先使用硬件配置,直至调用本API进行配置, 所以io电平会变化
 -- pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)    -- 所有GPIO高电平输出3.3V
@@ -462,15 +462,15 @@ static const rotable_Reg_t reg_pm[] =
     { "GPS_ANT",        ROREG_INT(LUAT_PM_POWER_GPS_ANT)},
     //@const CAMERA number camera电源,CAM_VCC输出
     { "CAMERA",         ROREG_INT(LUAT_PM_POWER_CAMERA)},
-    //@const DAC_EN number Air780E和Air600E,Air780EP的DAC_EN(新版硬件手册的LDO_CTL,同一个PIN,命名变更),注意audio的默认配置会自动使用这个脚来控制CODEC的使能
+    //@const DAC_EN number Air780EXXX的DAC_EN(新版硬件手册的LDO_CTL,同一个PIN,命名变更),注意audio的默认配置会自动使用这个脚来控制CODEC的使能
     { "DAC_EN",         ROREG_INT(LUAT_PM_POWER_DAC_EN_PIN)},
-    //@const LDO_CTL number Air780E和Air600E,Air780EP的LDO_CTL(老版硬件手册的DAC_EN,同一个PIN,命名变更),Air780EP的LDO_CTL, 注意audio的默认配置会自动使用这个脚来控制CODEC的使能
+    //@const LDO_CTL number Air780EXXX的LDO_CTL(老版硬件手册的DAC_EN,同一个PIN,命名变更),Air780EXXX的LDO_CTL, 注意audio的默认配置会自动使用这个脚来控制CODEC的使能
     { "LDO_CTL",         ROREG_INT(LUAT_PM_POWER_LDO_CTL_PIN)},
-    //@const PWK_MODE number 是否开启移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)的powerkey滤波模式,true开,注意滤波模式下reset变成直接关机
+    //@const PWK_MODE number 是否Air780EXXX的powerkey滤波模式,true开,注意滤波模式下reset变成直接关机
     { "PWK_MODE",       ROREG_INT(LUAT_PM_POWER_POWERKEY_MODE)},
-    //@const WORK_MODE number 移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)的节能模式,0~3,0完全关闭,1性能优先,2平衡,3极致功耗
+    //@const WORK_MODE number Air780EXXX的节能模式,0~3,0完全关闭,1~2普通低功耗,3超低功耗,深度休眠
     { "WORK_MODE",    ROREG_INT(LUAT_PM_POWER_WORK_MODE)},
-	//@const IOVL number 所有GPIO高电平电压控制,当前仅移芯CAT1平台系列(Air780E/Air700E/Air780EP等等)可用
+	//@const IOVL number 所有GPIO高电平电压控制,当前仅Air780EXXX可用
     { "IOVOL_ALL_GPIO",    ROREG_INT(LUAT_PM_ALL_GPIO)},
 
 	{ NULL,             ROREG_INT(0) }

+ 3 - 3
luat/modules/luat_lib_uart.c

@@ -731,7 +731,7 @@ static int l_uart_exist(lua_State *L)
 
 
 /*
-buff形式读串口,一次读出全部数据存入buff中,如果buff空间不够会自动扩展,目前air105,air780e支持这个操作
+buff形式读串口,一次读出全部数据存入buff中,如果buff空间不够会自动扩展,目前air105,Air780EXXX支持这个操作
 @api    uart.rx(id, buff)
 @int 串口id, uart0写0, uart1写1
 @zbuff zbuff对象
@@ -787,7 +787,7 @@ static int l_uart_rx(lua_State *L)
 }
 
 /*
-读串口Rx缓存中剩余数据量,目前air105,air780e支持这个操作
+读串口Rx缓存中剩余数据量,目前air105,Air780EXXX支持这个操作
 @api    uart.rxSize(id)
 @int 串口id, uart0写0, uart1写1
 @return int 返回读到的长度
@@ -819,7 +819,7 @@ LUAT_WEAK void luat_uart_clear_rx_cache(int uart_id)
 
 }
 /*
-清除串口Rx缓存中剩余数据量,目前air105,air780e支持这个操作
+清除串口Rx缓存中剩余数据量,目前air105,Air780EXXX支持这个操作
 @api    uart.rxClear(id)
 @int 串口id, uart0写0, uart1写1
 @usage