更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_magickey.c 文件参考

浏览源代码.

函数

STATIC VOID OsMagicHelp (VOID)
 
STATIC VOID OsMagicTaskShow (VOID)
 执行 shell task -a 命令 更多...
 
STATIC VOID OsMagicPanic (VOID)
 
STATIC VOID OsMagicMemCheck (VOID)
 快捷键触发内存检查 更多...
 
INT32 CheckMagicKey (CHAR key, UINT16 consoleId)
 检查魔法键 更多...
 

变量

STATIC MagicKeyOp g_magicMemCheckOp
 
STATIC MagicKeyOp g_magicPanicOp
 
STATIC MagicKeyOp g_magicTaskShowOp
 
STATIC MagicKeyOp g_magicHelpOp
 
STATIC MagicKeyOpg_magicOpTable [MAGIC_KEY_NUM]
 

函数说明

◆ CheckMagicKey()

INT32 CheckMagicKey ( CHAR  key,
UINT16  consoleId 
)

检查魔法键

在文件 los_magickey.c122 行定义.

123{
124#ifdef LOSCFG_ENABLE_MAGICKEY //魔法键开关
125 INT32 i;
126 STATIC UINT32 magicKeySwitch = 0;
127
128 if (key == 0x03) { /* ctrl + c */
129 KillPgrp(consoleId);
130 return 0;
131 } else if (key == 0x12) { /* ctrl + r */
132 // 在连接UART或者USB转虚拟串口的情况下,输入“ctrl + r” 键,打开魔法键检测功能,输出 “Magic key on”;再输入一次后,
133 // 则关闭魔法键检测功能,输出“Magic key off”。
134 magicKeySwitch = ~magicKeySwitch;
135 if (magicKeySwitch != 0) {
136 PrintExcInfo("Magic key on\n");
137 } else {
138 PrintExcInfo("Magic key off\n");
139 }
140 return 1;
141 }
142 if (magicKeySwitch != 0) {//打开情况下,输出魔法键各回调函数
143 for (i = 0; i < MAGIC_KEY_NUM; i++) {
144 if (g_magicOpTable[i] != NULL && key == g_magicOpTable[i]->magicKey) {
145 (g_magicOpTable[i])->opHandler();//执行回调函数 OsMagicHelp ,OsMagicTaskShow ==
146 return 1;
147 }
148 }
149 }
150#endif
151 return 0;
152}
VOID KillPgrp(UINT16 consoleId)
杀死进程组
Definition: console.c:442
STATIC MagicKeyOp * g_magicOpTable[MAGIC_KEY_NUM]
Definition: los_magickey.c:82
VOID PrintExcInfo(const CHAR *fmt,...)
打印异常信息
Definition: los_printf.c:263
signed int INT32
Definition: los_typedef.h:60
unsigned int UINT32
Definition: los_typedef.h:57
函数调用图:

◆ OsMagicHelp()

STATIC VOID OsMagicHelp ( VOID  )

在文件 los_magickey.c90 行定义.

91{
92 INT32 i;
93 PRINTK("HELP: ");
94 for (i = 0; g_magicOpTable[i] != NULL; ++i) {
95 PRINTK("%s ", g_magicOpTable[i]->helpMsg);
96 }
97 PRINTK("\n");
98 return;
99}

◆ OsMagicMemCheck()

STATIC VOID OsMagicMemCheck ( VOID  )

快捷键触发内存检查

在文件 los_magickey.c113 行定义.

114{
115 if (LOS_MemIntegrityCheck(m_aucSysMem1) == LOS_OK) {
116 PrintExcInfo("system memcheck over, all passed!\n");
117 }
118 return;
119}
UINT8 * m_aucSysMem1
系统动态内存池地址的起始地址 @note_thinking 能否不要用 0,1来命名核心变量 ???
Definition: los_memory.c:108
UINT32 LOS_MemIntegrityCheck(const VOID *pool)
对指定内存池做完整性检查
Definition: los_memory.c:1903
函数调用图:

◆ OsMagicPanic()

STATIC VOID OsMagicPanic ( VOID  )

在文件 los_magickey.c107 行定义.

108{
109 LOS_Panic("Magic key :\n");
110 return;
111}
NORETURN VOID LOS_Panic(const CHAR *fmt,...)
Kernel panic function.
函数调用图:

◆ OsMagicTaskShow()

STATIC VOID OsMagicTaskShow ( VOID  )

执行 shell task -a 命令

在文件 los_magickey.c101 行定义.

102{
103 (VOID)OsShellCmdTskInfoGet(OS_ALL_TASK_MASK, NULL, OS_PROCESS_INFO_ALL);
104 return;
105}
UINT32 OsShellCmdTskInfoGet(UINT32 taskID, VOID *seqfile, UINT16 flag)
函数调用图:

变量说明

◆ g_magicHelpOp

STATIC MagicKeyOp g_magicHelpOp
初始值:
= {
.opHandler = OsMagicHelp,
.helpMsg = "Show all magic op key(ctrl+z) ",
.magicKey = 0x1a
}
STATIC VOID OsMagicHelp(VOID)
Definition: los_magickey.c:90

在文件 los_magickey.c66 行定义.

◆ g_magicMemCheckOp

STATIC MagicKeyOp g_magicMemCheckOp
初始值:
= {
.opHandler = OsMagicMemCheck,
.helpMsg = "Check system memory(ctrl+e) ",
.magicKey = 0x05
}
STATIC VOID OsMagicMemCheck(VOID)
快捷键触发内存检查
Definition: los_magickey.c:113

在文件 los_magickey.c48 行定义.

◆ g_magicOpTable

STATIC MagicKeyOp* g_magicOpTable[MAGIC_KEY_NUM]
初始值:
= {
NULL
}
STATIC MagicKeyOp g_magicMemCheckOp
Definition: los_magickey.c:48
STATIC MagicKeyOp g_magicPanicOp
Definition: los_magickey.c:54
STATIC MagicKeyOp g_magicHelpOp
Definition: los_magickey.c:66
STATIC MagicKeyOp g_magicTaskShowOp
Definition: los_magickey.c:60

在文件 los_magickey.c82 行定义.

◆ g_magicPanicOp

STATIC MagicKeyOp g_magicPanicOp
初始值:
= {
.opHandler = OsMagicPanic,
.helpMsg = "System panic(ctrl+p) ",
.magicKey = 0x10
}
STATIC VOID OsMagicPanic(VOID)
Definition: los_magickey.c:107

在文件 los_magickey.c54 行定义.

◆ g_magicTaskShowOp

STATIC MagicKeyOp g_magicTaskShowOp
初始值:
= {
.opHandler = OsMagicTaskShow,
.helpMsg = "Show task information(ctrl+t) ",
.magicKey = 0x14
}
STATIC VOID OsMagicTaskShow(VOID)
执行 shell task -a 命令
Definition: los_magickey.c:101

在文件 los_magickey.c60 行定义.