这是一个获取模组开机原因的简单示例,在程序开发工程中难免会遇到模组重启,这时候通过获取开机原因,以便判断异常重启的原因,这对调试程序异常十分有利。本案例使用移远通信EG800Z-CN开发板和UniRTOS,通过EPAT日志查看开机原因。
功能特性
基于专用API的精准开机溯源
-
实时开机原因识别:程序启动后立即调用底层功能函数,精准获取并解析本次系统上电的原因。
-
全面原因覆盖:支持识别多种开机触发源,包括但不限于:主电源上电(Power-On)、软件指令重启(Soft Reset)等。
-
单次高效查询:仅需一次函数调用即可完成原因获取,无需持续轮询,资源消耗极低。
开发准备
硬件要求
- EG800Z-CN开发板,点此购买开发板
- USB数据线(TYPE-C),点此购买
软件要求
快速上手
下载项目
示例代码位于UniRTOS 官方创客仓库,点此访问下载
添加项目到UniRTOS SDK
CSDK新增Demo,固件编译和烧录请参考UniRTOS板块的快速启动栏或UniRTOS文档中心的快速入门部分
硬件连接
使用USB数据线连接开发板和电脑即可。
日志展示
代码概览
主要功能接口
unir_test_demo_init - 入口与初始化函数
-
功能: 这是整个 UART 演示功能的入口点。它的主要职责是创建并启动一个独立的任务(线程),让具体逻辑在后台运行,而不阻塞主程序。
-
关键操作:
- 任务创建: 调用qosa_task_create来创建一个名为 uart_demo 的新任务。这个新任务将执行unir_pwrkey_demo_boot_cause函数。
-
重要性: 这是用户需要在自己的应用初始化流程中调用的函数,以启动 UART 功能。
unir_pwrkey_demo_boot_cause -获取开机原因并输出日志
-
功能:获取开机原因,根据结果打印信息
-
关键操作:
-
获取原因:调用qosa_power_get_boot_cause,得到开机原因返回值
-
日志打印:根据返回值,选择对应的结果,输出日志
-
常见问题
程序一直在自己重启?
编写的unir_pwrkey_demo_process函数中调用重启函数导致的,请自行根据测试需求选择,无需使用时进行注释。



