合宙 模块-重启问题
目录
重启
简介
分析重启原因
常见问题
相关资料以及购买链接
简介
在使用luat二次开发时,经常会遇见死机,无限重启等问题。导致脚本程序无法正常进行,再次烧录困难等。下面就讲解一下如何发现到如何解决这个问题。
分析重启原因
分析重启原因首先要知道重启开机原因,才能进行下一步判断。在Luat脚本里添加一段打印重启开机原因脚本:
reason=rtos.poweron_reason()
print(“开机原因:”..reason)
开机原因表:
POWERON事件 | 代码 | 解释 |
---|---|---|
rtos. POWERON_KEY | 0 | 按键开机 |
rtos. POWERON_CHARGER | 1 | 充电开机 |
rtos. POWERON_ALARM | 2 | 闹钟开机 |
rtos. POWERON_RESTART | 3 | 软件重启开机 |
rtos. POWERON_EXCEPTION | 6 | 异常开机 |
rtos. POWERON_HOST | 7 | HOST工具控制重启开机 |
rtos. POWERON_WATCHDOG | 8 | 其他原因 |
1.开机原因:0
所以,如果模块重启前有频繁的通信操作,且没有固定的语句报错(无规律性),重启后上报的poweron reason为0,此时应该重点排查供电问题。如果存在瞬间电压跌落,可能会导致模块出现异常。
2.开机原因:3,6, 8
当poweron reason为3时,通常有两种情况:代码主动执行rtos.restart()或者sys.restart()实现软重启;代码运行出错(语法错误,内存不足、AT执行超时等多种可能性),底层自动重启;
当poweron reason为6时,只有这一种情况:底层出错,请上报bug;
当poweron reason为8时,通常是这种情况:Lua代码跑飞,底层亦无响应时,由外部看门狗芯片重启模块。
为了调试方便,建议开发者首先在任意lua文件中加入如下代码:
require”sys”require”log”sys.timerLoopStart(function() log.info("RAM free size:", 1024 - collectgarbage("count"), "KB")log.info("ROM free size:", rtos.get_fs_free_size(), "KB") end, 5000)For luaScript:require”sys”sys.timer_loop_start(function() print("RAM free size:", 1024 - collectgarbage("count"), "KB")print("ROM free size:", rtos.get_fs_free_size(), "KB") end, 5000)
加入如上代码后,模块在运行时,即可间隔5秒打印一次RAM、ROM使用情况。
代码报错:
序号错误提示 | 错误原因 | 解决方法 |
---|---|---|
attempt to index %s | 变量/函数 索引错误 | 修改代码 |
attempt to call %s | 变量/函数 引用错误 | 修改代码 |
disp.init: error param width(%d) height(%d) | disp初始化时,设置了错误的宽、高 | 修改为正确数值 |
disp.init: pixel depth must be 16 | disp像素色深必须是16位 | 修改代码 |
i2c.write: data must be number,string,table | i2c数据必须是数值、字符串或table | 修改数据类型 |
i2c.read: size must < %d | i2c读取错误,数据长度超限 | |
bad argument #%d (%s) | audio错误的参数 | 修改传入的参数 |
calling " LUA_QS " on bad self (%s) | audio错误的调用 | |
name conflict for module " LUA_QS, libname | 命名冲突 | 修改名称 |
too many results to unpack | unpack方法传参错误 | |
attempt to use a closed file | 文件已关闭,无法调用 | 打开文件 |
file is already closed | 文件已关闭 | 打开文件 |
wrong number of arguments | 传参 参数 个数错误 | 检查传参内容 |
string slice too long | 字符串过长 | |
attempt to use an invalid ICONV_TYPENAME | Iconv不支持的类型 | |
BUG: Unable to fetch CJSON configuration | cjson配置错误 | |
JSON parser does not support UTF-16 or UTF-32JSON | 不支持utf-16或utf-32字符编码 | |
Memory allocation error in CJSON protected call | 无法为CJSON分配内存 | |
invalid pin | GPIO配置错误,不存在该pin | 检查代码和硬件设计手册 |
invalid PIO operation | GPIO非法操作 | |
uart.setup can’t be called on virtual UARTs | UART无法初始化 | 检查代码,uart.setup相关配置 |
invalid number | UART错误的端口号 | 检查代码,uart.setup相关配置 |
invalid format | Uart.setup错误的配置参数 | 检查代码,uart.setup相关配置 |
常见问题
- 烧录脚本后一直重启
1.可能是脚本BUG,仔细检查脚本逻辑,有无死循环等
2.开发板供电不稳等,仔细参考硬件设计:Air724UG电源参考设计
相关资料以及购买链接
相关开发板购买链接
Air724UG开发板
Air724 开发板使用说明
相关软件资料下载
合宙 模块-重启问题相关推荐
- 合宙模块LUA相关资料汇总
1. 目录 1. 目录 [2. LUA二次开发](#2. LUA二次开发) 2.1 [新手教程](#2.1 新手教程) 2.2 [进阶教程](#2.2 进阶教程) 2.3 [LUA开发环境](#2.3 ...
- 上海合宙Luat 模块 Air724开发板 入门指南(1)
Air724 是上海合宙物联网于2020年3月下旬发布的一款基于UIS8910DM芯片组的物联网通讯模块. 模块通讯性能优越,符合Cat1通讯标准,支持最大下行速率 10Mbps 和最大上行速率5Mb ...
- 合宙 724UG 模块学习
1.合宙 4G模块724UG学习:luat 开发环境搭建 一.724UG模块windows环境搭建 1.环境搭建材料 均为合宙官网下载 lua编程软件官方建议vscode 点击下载 [驱动程序] Wi ...
- 合宙Air700E/4G模块使用AT指令查询基础信息
Air700E使用AT指令查询基础信息 前言 AT指令使用 AT 确认AT固件 AT+CGMR 请求制造商版本 AT+CGMM 返回制造商型号编码 AT+CGSN=x 查询产品序列号 AT+CGSN= ...
- 4g通信模块怎么连接sim卡_4G模块|合宙重磅推出虚拟SIM卡技术,告别卡座
2018年5月11日下午4时许合宙团队正式发布了支持虚拟SIM卡技术的Luat底层版本V0021一经发布便深受开发者的热烈欢迎,咨询者络绎不绝,针对大家关心的几个常见问题特组织回复如下: 1, 合宙虚 ...
- 合宙Luat | 电源设计——模块应用必看的2个要点
在模块应用设计中,电源设计是很重要的一部分. 由于射频发射时,会在短时间有一个较大电流的突发脉冲.在突发脉冲阶段内,电源必须能够提供高的峰值电流,不然有可能会引起供电电压的跌落. 而很多初学的朋友 ...
- X、合宙Air模块Luat开发:全网首发,通过iic直接驱动OLED,720Sl开始有显时代
目录 点击这里查看所有博文 本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持). 先不管支不支 ...
- 8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用
目录 点击这里查看所有博文 本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持). 先不管支不支持,如果 ...
- 合宙-Air724模块的程序下载和二次开发下载方法
一.资料准备 参考:Luat社区 (openluat.com) 合宙官方: 银尔达官方提供如下: 下载相应的资料即可,资料链接如下: https://doc.openluat.com/wiki/27? ...
最新文章
- 【视频】vue 插值表达式之三元运算符的使用
- 企业非法集资风险预测_2020CCF--企业非法集资风险预测83.35baseline
- C++学习之路 | PTA乙级—— 1030 完美数列 (25 分)(精简)
- win7无法连接打印机拒绝访问_“Windows无法连接打印机,操作失败,错误为0x000003e3”...
- Caddy、 SSLDocker、Nginx 性能比较及使用体验
- cr2032和br2032区别_钮扣电池CR2016和CR2032有什么区别?
- 【Proteus】如何在Proteus中将网络标号批量标号
- float/文档流/清除浮动
- Python常用模块 之 datetime模块——处理时间和日期
- 多线程编程中条件变量和的spurious wakeup 虚假唤醒
- js颜色排序动画js特效
- 静态NAT64实验配置
- Android集成Bmob后端云
- CVF转IVF可能遇到的问题
- Lotus 新手运维手册
- 12星座绝情榜,你的绝情指数是多少呢?
- 【算法分析】实验 1. 基于贪心的会议安排问题
- window 10系统修改C盘用户名过程
- 认识和选用常用的几种 GPRS 模块
- Excel/WPS 按条件合并多行