目录

  • 重启

  • 简介

  • 分析重启原因

  • 常见问题

  • 相关资料以及购买链接

简介

在使用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 开发板使用说明
相关软件资料下载

合宙 模块-重启问题相关推荐

  1. 合宙模块LUA相关资料汇总

    1. 目录 1. 目录 [2. LUA二次开发](#2. LUA二次开发) 2.1 [新手教程](#2.1 新手教程) 2.2 [进阶教程](#2.2 进阶教程) 2.3 [LUA开发环境](#2.3 ...

  2. 上海合宙Luat 模块 Air724开发板 入门指南(1)

    Air724 是上海合宙物联网于2020年3月下旬发布的一款基于UIS8910DM芯片组的物联网通讯模块. 模块通讯性能优越,符合Cat1通讯标准,支持最大下行速率 10Mbps 和最大上行速率5Mb ...

  3. 合宙 724UG 模块学习

    1.合宙 4G模块724UG学习:luat 开发环境搭建 一.724UG模块windows环境搭建 1.环境搭建材料 均为合宙官网下载 lua编程软件官方建议vscode 点击下载 [驱动程序] Wi ...

  4. 合宙Air700E/4G模块使用AT指令查询基础信息

    Air700E使用AT指令查询基础信息 前言 AT指令使用 AT 确认AT固件 AT+CGMR 请求制造商版本 AT+CGMM 返回制造商型号编码 AT+CGSN=x 查询产品序列号 AT+CGSN= ...

  5. 4g通信模块怎么连接sim卡_4G模块|合宙重磅推出虚拟SIM卡技术,告别卡座

    2018年5月11日下午4时许合宙团队正式发布了支持虚拟SIM卡技术的Luat底层版本V0021一经发布便深受开发者的热烈欢迎,咨询者络绎不绝,针对大家关心的几个常见问题特组织回复如下: 1, 合宙虚 ...

  6. 合宙Luat | 电源设计——模块应用必看的2个要点

    在模块应用设计中,电源设计是很重要的一部分. 由于射频发射时,会在短时间有一个较大电流的突发脉冲.在突发脉冲阶段内,电源必须能够提供高的峰值电流,不然有可能会引起供电电压的跌落.   而很多初学的朋友 ...

  7. X、合宙Air模块Luat开发:全网首发,通过iic直接驱动OLED,720Sl开始有显时代

    目录 点击这里查看所有博文   本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持).   先不管支不支 ...

  8. 8、合宙Air模块Luat开发:基于官方库的二次封装,使串口更加易用

    目录 点击这里查看所有博文 本系列博客,理论上适用于合宙的Air202.Air268.Air720x.Air720S以及最近发布的Air720U(我还没拿到样机,应该也能支持). 先不管支不支持,如果 ...

  9. 合宙-Air724模块的程序下载和二次开发下载方法

    一.资料准备 参考:Luat社区 (openluat.com) 合宙官方: 银尔达官方提供如下: 下载相应的资料即可,资料链接如下: https://doc.openluat.com/wiki/27? ...

最新文章

  1. 【视频】vue 插值表达式之三元运算符的使用
  2. 企业非法集资风险预测_2020CCF--企业非法集资风险预测83.35baseline
  3. C++学习之路 | PTA乙级—— 1030 完美数列 (25 分)(精简)
  4. win7无法连接打印机拒绝访问_“Windows无法连接打印机,操作失败,错误为0x000003e3”...
  5. Caddy、 SSLDocker、Nginx 性能比较及使用体验
  6. cr2032和br2032区别_钮扣电池CR2016和CR2032有什么区别?
  7. 【Proteus】如何在Proteus中将网络标号批量标号
  8. float/文档流/清除浮动
  9. Python常用模块 之 datetime模块——处理时间和日期
  10. 多线程编程中条件变量和的spurious wakeup 虚假唤醒
  11. js颜色排序动画js特效
  12. 静态NAT64实验配置
  13. Android集成Bmob后端云
  14. CVF转IVF可能遇到的问题
  15. Lotus 新手运维手册
  16. 12星座绝情榜,你的绝情指数是多少呢?
  17. 【算法分析】实验 1. 基于贪心的会议安排问题
  18. window 10系统修改C盘用户名过程
  19. 认识和选用常用的几种 GPRS 模块
  20. Excel/WPS 按条件合并多行

热门文章

  1. Xcode简明教程(使用Xcode编写C++语言程序)
  2. 完全背包变式 一本通 1293:买书
  3. node.js实现文件转换图片
  4. 20211018 数据结构和算法
  5. JUC - ReentrantReadWriteLock 源码分析
  6. 敏之澳电商:拼多多流量怎么提升好?
  7. 微信小程序类似于点赞取消点赞计数功能
  8. Codeforces Round #697 (Div. 3) G. Strange Beauty 线性筛变形思维
  9. uni-app引入腾讯地图
  10. 电子对抗装备软件的测试策略与方法