Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos A
提交
e1472b49
K
Kernel Liteos A
项目概览
OpenHarmony
/
Kernel Liteos A
1 年多 前同步成功
通知
468
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看板
提交
e1472b49
编写于
8月 14, 2021
作者:
O
openharmony_ci
提交者:
Gitee
8月 14, 2021
浏览文件
操作
浏览文件
下载
差异文件
!548 fix: 以g_sysSchedStartTime是否为0判断时间轴是否生效存在极限场景导致调度时间不生效
Merge pull request !548 from zhushengle/sched_time
上级
fb5df47b
67ac8c4c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
9 addition
and
7 deletion
+9
-7
kernel/base/include/los_sched_pri.h
kernel/base/include/los_sched_pri.h
+3
-3
kernel/base/sched/sched_sq/los_sched.c
kernel/base/sched/sched_sq/los_sched.c
+5
-4
kernel/include/los_typedef.h
kernel/include/los_typedef.h
+1
-0
未找到文件。
kernel/base/include/los_sched_pri.h
浏览文件 @
e1472b49
...
...
@@ -56,11 +56,11 @@ extern UINT64 g_sysSchedStartTime;
STATIC
INLINE
UINT64
OsGetCurrSchedTimeCycle
(
VOID
)
{
if
(
g_sysSchedStartTime
==
0
)
{
return
g_sysSchedStartTime
;
if
(
g_sysSchedStartTime
!=
OS_64BIT_MAX
)
{
return
(
HalClockGetCycles
()
-
g_sysSchedStartTime
)
;
}
return
(
HalClockGetCycles
()
-
g_sysSchedStartTime
)
;
return
0
;
}
STATIC
INLINE
VOID
OsSchedIrqUpdateUsedTime
(
VOID
)
...
...
kernel/base/sched/sched_sq/los_sched.c
浏览文件 @
e1472b49
...
...
@@ -48,7 +48,6 @@
#endif
#define OS_32BIT_MAX 0xFFFFFFFFUL
#define OS_64BIT_MAX 0xFFFFFFFFFFFFFFFFULL
#define OS_SCHED_FIFO_TIMEOUT 0x7FFFFFFF
#define OS_PRIORITY_QUEUE_NUM 32
#define PRIQUEUE_PRIOR0_BIT 0x80000000U
...
...
@@ -73,7 +72,7 @@ typedef struct {
STATIC
Sched
*
g_sched
=
NULL
;
STATIC
UINT64
g_schedTickMaxResponseTime
;
UINT64
g_sysSchedStartTime
=
0
;
UINT64
g_sysSchedStartTime
=
OS_64BIT_MAX
;
#ifdef LOSCFG_SCHED_TICK_DEBUG
#define OS_SCHED_DEBUG_DATA_NUM 1000
...
...
@@ -253,7 +252,7 @@ UINT32 OsSchedSetTickTimerType(UINT32 timerType)
STATIC
VOID
OsSchedSetStartTime
(
UINT64
currCycle
)
{
if
(
g_sysSchedStartTime
==
0
)
{
if
(
g_sysSchedStartTime
==
OS_64BIT_MAX
)
{
g_sysSchedStartTime
=
currCycle
;
}
}
...
...
@@ -889,7 +888,9 @@ VOID OsSchedStart(VOID)
SCHEDULER_LOCK
(
intSave
);
OsTickStart
();
if
(
cpuid
==
0
)
{
OsTickStart
();
}
LosTaskCB
*
newTask
=
OsGetTopTask
();
LosProcessCB
*
newProcess
=
OS_PCB_FROM_PID
(
newTask
->
processID
);
...
...
kernel/include/los_typedef.h
浏览文件 @
e1472b49
...
...
@@ -188,6 +188,7 @@ typedef size_t BOOL;
#define OS_ERROR (UINT32)(-1)
#define OS_INVALID (UINT32)(-1)
#define OS_INVALID_VALUE ((UINT32)0xFFFFFFFF)
#define OS_64BIT_MAX 0xFFFFFFFFFFFFFFFFULL
#define asm __asm
#ifdef typeof
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录