合宙 模块-重启问题

目录

简介

在使用luat二次开发时,经常会遇见死机,无限重启等问题。导致脚本程序无法正常进行,再次烧录困难等。下面就讲解一下如何发现到如何解决这个问题。

分析重启原因

分析重启原因首先要知道重启开机原因,才能进行下一步判断。在Luat脚本里添加一段打印重启开机原因脚本:

reason=rtos.poweron_reason()
print(“开机原因:”..reason)

开机原因表:

POWERON事件代码解释
rtos. POWERON_KEY0按键开机
rtos. POWERON_CHARGER1充电开机
rtos. POWERON_ALARM2闹钟开机
rtos. POWERON_RESTART3软件重启开机
rtos. POWERON_EXCEPTION6异常开机
rtos. POWERON_HOST7HOST工具控制重启开机
rtos. POWERON_WATCHDOG8其他原因

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 16disp像素色深必须是16位修改代码
i2c.write: data must be number,string,tablei2c数据必须是数值、字符串或table修改数据类型
i2c.read: size must < %di2c读取错误,数据长度超限
bad argument #%d (%s)audio错误的参数修改传入的参数
calling " LUA_QS " on bad self (%s)audio错误的调用
name conflict for module " LUA_QS, libname命名冲突修改名称
too many results to unpackunpack方法传参错误
attempt to use a closed file文件已关闭,无法调用打开文件
file is already closed文件已关闭打开文件
wrong number of arguments传参 参数 个数错误检查传参内容
string slice too long字符串过长
attempt to use an invalid ICONV_TYPENAMEIconv不支持的类型
BUG: Unable to fetch CJSON configurationcjson配置错误
JSON parser does not support UTF-16 or UTF-32JSON不支持utf-16或utf-32字符编码
Memory allocation error in CJSON protected call无法为CJSON分配内存
invalid pinGPIO配置错误,不存在该pin检查代码和硬件设计手册
invalid PIO operationGPIO非法操作
uart.setup can’t be called on virtual UARTsUART无法初始化检查代码,uart.setup相关配置
invalid numberUART错误的端口号检查代码,uart.setup相关配置
invalid formatUart.setup错误的配置参数检查代码,uart.setup相关配置

常见问题

  • 烧录脚本后一直重启
    1.可能是脚本BUG,仔细检查脚本逻辑,有无死循环等
    2.开发板供电不稳等,仔细参考硬件设计:Air724UG电源参考设计

相关资料以及购买链接

相关开发板购买链接
Air724UG开发板
Air724 开发板使用说明
相关软件资料下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值