请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
主题中讨论的其他器件:TPS65217工具/软件:Linux
我们器件的硬件架构基于 Beagle Bone Black。
我们使用基于4.1.18修订版的定制内核。 我们的 SDK 基于2.00.02.11。
我们遇到了 一定数量的电路板问题、即在其断电过程中会发生 KERENEL 紧急情况。 这意味着有一些"好" 板、还有一些"坏"板。
我们将 PMIC TPS65217与连接的电池配合使用。
RTC 被设计为在 外部电源(Vac)断开且 PMIC 关闭(VSYS)之前继续振荡
因此 、在执行命令 systemctl power_off 后、我希望看到 RTC 正常工作、所有其他部分不工作。
这是断电期间的日志
正在开始将硬件时钟同步到系统时钟...
[ OK ]停止目标蓝牙。
正在停止 KeepTruckin BT121服务...
正在停止蓝牙服务...
[ 确定 ]停止目标图形界面。
[ 确定 ]停止目标多用户系统。
正在停止 LBB 蓝牙初始化...
正在停止 KeepTruckin 电源监控服务...
正在停止 OpenBSD Secure Shell 服务器...
正在停止常规后台程序处理守护程序...
正在停止自检-定期系统检查...
[ OK ]已停止自检-定期系统检查。
正在停止登录服务...
[ 确定 ]停止目标登录提示。
正在停止 tty1上的 Getty...
停下 正在停止 LSB:在引导时启动 busybox udhcpd ...
正在停止 LSB:设置 cpufreq 内核参数...
正在停止 LSB:高级 IEEE 802.11管理守护程序...
停止 D 总线系统信息总线。
正在停止系统日志服务...
[ 确定 ]已停止 OpenBSD Secure Shell 服务器。
[ 确定 ]停止常规后台程序处理守护程序。
[ 确定 ]登录服务已停止。
[ 确定 ] D 总线系统信息总线已停止
[ 确定 ]已停止系统日志服务。
[ 确定 ]已在 tty1上停止 Getty。
[ 确定 ]已停止 ttyS0上的串行 Getty。
[ 确定 ]停止 KeepTruckin 电源监控服务。
[ 确定 ]已停止蓝牙服务。
[ 确定 ]停止 KeepTruckin BT121服务。
[ 确定 ]已停止 LBB 蓝牙 Init。
[ 确定 ]停止 LSB:在引导时启动总线框 udhcpd。
[ OK ] stopped LSB:设置 cpufreq 内核参数。
[ 确定 ]已停止 LSB:高级 IEEE 802.11管理守护程序。
[ 确定 ]停止的目标网络处于联机状态。
正在停止 LSB:加载启用 cpufreq 缩放所需的内核模块...
正在停止 LBB 固件更新程序...
[ 确定 ]已删除片 system-serial\x2dgetty.slice。
[ 确定 ]已删除片 system-Getty.slice。
正在停止/etc/rc.local 兼容性...
[ 确定 ]已停止/etc/rc.local 兼容性。
正在停止允许用户会话...
[ 确定 ]目标网络已停止。
[ OK ] stopped LSB:加载启用 cpufreq 缩放所需的内核模块。
[ 确定 ]已停止 LBB Firmware Updater。
[ 确定 ]已停止允许用户会话。
[ 确定 ]已开始将硬件时钟同步到系统时钟。
正在停止 LBB 文件系统初始化...
[ 确定 ]停止目标远程文件系统。
[ 确定 ]停止目标远程文件系统(预)。
[ 确定 ]已停止 LBB 文件系统初始化。
[ 确定 ]停止目标基本系统。
[ 确定 ]停止目标层面。
[ 确定 ]已删除层用户和会话层。
[ 确定 ]停止的目标路径。
[ OK ]停止目标计时器。
[ 确定 ]目标套接字已停止。
[ 确定 ]关闭的 D-Bus 系统消息总线插座。
[ 确定 ]已关闭 Syslog 套接字。
[ 确定 ]停止目标系统初始化。
正在停止恢复/保存当前时钟...
正在停止更新 utmp 关于系统引导/关机...
[ 确定 ]停止目标加密卷。
正在停止应用内核变量...
[ 确定 ]停止应用内核变量。
正在停止加载内核模块...
[ OK ]停止加载内核模块。
正在停止 LSB:提升网络接口....
[ 确定 ]停止目标交换。
[ 确定 ]停止恢复/保存当前时钟。
[ 确定 ]停止更新 utmp 关于系统引导/关机。
正在停止创建易失性文件和目录...
[ 确定 ]停止创建易失性文件和目录。
[ 确定 ]已停止 LSB:提升网络接口。
正在停止加载/保存随机种子...
[ 确定 ]停止目标本地文件系统。
卸载/sys/kernel/debug...
[ 确定 ]停止加载/保存随机种子。
[ 确定 ]卸载/sys/kernel/debug.
[ 确定 ]已达到目标卸载所有文件系统。
[ 确定 ]停止目标本地文件系统(预)。
正在停止在/dev/dev...中创建静态设备节点
[ 确定 ]已停止在/dev/中 创建静态设备节点。
正在停止重新装载根文件系统和内核文件系统...
[ 确定 ]已停止重新装载根和内核文件系统。
[ 确定 ]达到目标关闭。
[236.298390] 重新启动:关闭电源
[241.777022] 内核严重错误-未同步:尝试终止初始化! exitcode=0x00000000
[241.777022]
[241.786308] -[结束内核紧急状态-未同步:尝试终止初始化! exitcode=0x00000000
[241.786308]
我将 JTAG 连接到电路板、这些是我发现的结果。
在 rtc-omap.c 中、有2个相关的断电函数: OMAP-RTC_POWER_OFF 调用 OMAP-RTC_POWER_OFF_PROGRAM。 如果我在 OMAP-RTC_POWER_OFF_PROGRAM 内的 HW 断点停止、则正常开发板也会进入内核紧急状态。 因此、可能是在设置或计数 ALARM2中断的时间。