鸿蒙内核liteos_a添加reboot命令实现设备重启 精华
tobeqj
发布于 2020-10-26 20:47
浏览
4收藏
在鸿蒙内核的调试过程经常需要重启设备烧固件。
由于设备没有reset物理按键,需要经常长按POWER键进行强制关机,调试起来比较麻烦。
于是在shell中添加reboot命令实现类似Android设备的重启命令。
查找芯片手册,找到实现软件重启需要用到的寄存器
从Address Mapping章节找到CRU的基址:0x200000000
寄存器CRU_GLB_SRST_FST_VALUE所在偏移量 0x0100
根据手册得到CRU基址+CRU_GLB_SRST_FST_VALUE寄存器 = 0x20000000 + 0x0100 = 0x20000100
往0x20000100写入0xfdb9即可
转换成代码:
hmos/vendor/rockchip/rk3126c/board/include/asm/platform.h 添加寄存器宏定义
hmos/vendor/rockchip/rk3126c/board/board.c 添加reset方法实现,写0xfdb9到reset寄存器
hmos/kernel/liteos_a/fs/vfs/vfs_cmd/vfs_shellcmd.c 尾部添加reboot shell 命令以及对应入口函数osShellCmdReset
编译liteos.bin并烧写,进入命令行 敲help 显示刚刚添加的两个命令reboot和reset
输入reboot命令验证重启功能正常
不同芯片可根据芯片手册找到对应的reset寄存器实现重启。
分类
赞
1
收藏 4
回复
1
2
4
相关推荐
好。。。。。。。。。。。
8错8错 马一个