Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos A
提交
e1b36bfe
K
Kernel Liteos A
项目概览
OpenHarmony
/
Kernel Liteos A
1 年多 前同步成功
通知
464
Star
414
Fork
55
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel Liteos A
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e1b36bfe
编写于
9月 30, 2021
作者:
O
openharmony_ci
提交者:
Gitee
9月 30, 2021
浏览文件
操作
浏览文件
下载
差异文件
!594 临终遗言重定向内容缺失task相关信息,对应的shell命令中申请的内存需要cacheline对齐
Merge pull request !594 from zhushengle/excinfo
上级
c7da2369
48ca854b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
22 addition
and
3 deletion
+22
-3
arch/arm/arm/src/los_exc.c
arch/arm/arm/src/los_exc.c
+4
-1
kernel/common/los_excinfo.c
kernel/common/los_excinfo.c
+3
-2
kernel/common/los_printf.c
kernel/common/los_printf.c
+15
-0
未找到文件。
arch/arm/arm/src/los_exc.c
浏览文件 @
e1b36bfe
...
...
@@ -1053,10 +1053,12 @@ STATIC VOID OsCheckAllCpuStatus(VOID)
g_currHandleExcCpuID
=
currCpuID
;
g_currHandleExcPID
=
OsCurrProcessGet
()
->
processID
;
LOS_SpinUnlock
(
&
g_excSerializerSpin
);
#ifndef LOSCFG_SAVE_EXCINFO
if
(
g_excFromUserMode
[
currCpuID
]
==
FALSE
)
{
target
=
(
UINT32
)(
OS_MP_CPU_ALL
&
~
CPUID_TO_AFFI_MASK
(
currCpuID
));
HalIrqSendIpi
(
target
,
LOS_MP_IPI_HALT
);
}
#endif
}
else
if
(
g_excFromUserMode
[
currCpuID
]
==
TRUE
)
{
/* Both cores raise exceptions, and the current core is a user-mode exception.
* Both cores are abnormal and come from the same process
...
...
@@ -1081,11 +1083,12 @@ STATIC VOID OsCheckAllCpuStatus(VOID)
while
(
1
)
{}
}
}
#ifndef LOSCFG_SAVE_EXCINFO
/* use halt ipi to stop other active cores */
if
(
g_excFromUserMode
[
ArchCurrCpuid
()]
==
FALSE
)
{
WaitAllCpuStop
(
currCpuID
);
}
#endif
}
#endif
...
...
kernel/common/los_excinfo.c
浏览文件 @
e1b36bfe
...
...
@@ -170,16 +170,17 @@ VOID OsRecordExcInfoTime(VOID)
#ifdef LOSCFG_SHELL
INT32
OsShellCmdReadExcInfo
(
INT32
argc
,
CHAR
**
argv
)
{
#define EXCINFO_ALIGN_SIZE 64
UINT32
recordSpace
=
GetRecordSpace
();
(
VOID
)
argc
;
(
VOID
)
argv
;
CHAR
*
buf
=
(
CHAR
*
)
LOS_MemAlloc
((
void
*
)
OS_SYS_MEM_ADDR
,
recordSpace
+
1
);
CHAR
*
buf
=
(
CHAR
*
)
LOS_MemAllocAlign
((
VOID
*
)
OS_SYS_MEM_ADDR
,
recordSpace
+
1
,
EXCINFO_ALIGN_SIZE
);
if
(
buf
==
NULL
)
{
return
LOS_NOK
;
}
(
void
)
memset_s
(
buf
,
recordSpace
+
1
,
0
,
recordSpace
+
1
);
(
VOID
)
memset_s
(
buf
,
recordSpace
+
1
,
0
,
recordSpace
+
1
);
log_read_write_fn
hook
=
GetExcInfoRW
();
if
(
hook
!=
NULL
)
{
...
...
kernel/common/los_printf.c
浏览文件 @
e1b36bfe
...
...
@@ -202,12 +202,22 @@ __attribute__ ((noinline)) VOID dprintf(const CHAR *fmt, ...)
va_list
ap
;
va_start
(
ap
,
fmt
);
OsVprintf
(
fmt
,
ap
,
CONSOLE_OUTPUT
);
#ifdef LOSCFG_SAVE_EXCINFO
if
(
OsGetSystemStatus
()
==
OS_SYSTEM_EXC_CURR_CPU
)
{
WriteExcBufVa
(
fmt
,
ap
);
}
#endif
va_end
(
ap
);
}
VOID
LkDprintf
(
const
CHAR
*
fmt
,
va_list
ap
)
{
OsVprintf
(
fmt
,
ap
,
CONSOLE_OUTPUT
);
#ifdef LOSCFG_SAVE_EXCINFO
if
(
OsGetSystemStatus
()
==
OS_SYSTEM_EXC_CURR_CPU
)
{
WriteExcBufVa
(
fmt
,
ap
);
}
#endif
}
#ifdef LOSCFG_SHELL_DMESG
...
...
@@ -273,6 +283,11 @@ VOID LOS_LkPrint(INT32 level, const CHAR *func, INT32 line, const CHAR *fmt, ...
va_start
(
ap
,
fmt
);
OsVprintf
(
fmt
,
ap
,
CONSOLE_OUTPUT
);
#ifdef LOSCFG_SAVE_EXCINFO
if
(
OsGetSystemStatus
()
==
OS_SYSTEM_EXC_CURR_CPU
)
{
WriteExcBufVa
(
fmt
,
ap
);
}
#endif
va_end
(
ap
);
}
#endif
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录