Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
rt-thread
提交
623ddc62
R
rt-thread
项目概览
BaiXuePrincess
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
623ddc62
编写于
5月 06, 2019
作者:
E
EvalZero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[components][pm]adapt to the new power management interface
上级
943c5ccc
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
25 addition
and
99 deletion
+25
-99
bsp/es32f0334/drivers/drv_pm.c
bsp/es32f0334/drivers/drv_pm.c
+12
-49
bsp/es32f0654/drivers/drv_pm.c
bsp/es32f0654/drivers/drv_pm.c
+12
-49
examples/pm/timer_app.c
examples/pm/timer_app.c
+1
-1
未找到文件。
bsp/es32f0334/drivers/drv_pm.c
浏览文件 @
623ddc62
...
@@ -16,52 +16,26 @@
...
@@ -16,52 +16,26 @@
#ifdef RT_USING_PM
#ifdef RT_USING_PM
static
void
_drv_pm_enter
(
struct
rt_pm
*
pm
)
static
void
_drv_pm_enter
(
struct
rt_pm
*
pm
,
uint8_t
mode
)
{
{
rt_uint32_t
mode
;
mode
=
pm
->
current_mode
;
switch
(
mode
)
switch
(
mode
)
{
{
case
PM_
RUN_MODE_NORMAL
:
case
PM_
SLEEP_MODE_NONE
:
break
;
break
;
case
PM_SLEEP_MODE_
SLEEP
:
case
PM_SLEEP_MODE_
IDLE
:
__WFI
();
__WFI
();
break
;
break
;
case
PM_SLEEP_MODE_TIMER
:
case
PM_SLEEP_MODE_LIGHT
:
pmu_stop2_enter
();
break
;
case
PM_SLEEP_MODE_SHUTDOWN
:
pmu_standby_enter
(
PMU_STANDBY_PORT_NONE
);
break
;
default:
RT_ASSERT
(
0
);
break
;
}
}
static
void
_drv_pm_exit
(
struct
rt_pm
*
pm
)
{
rt_uint32_t
mode
;
RT_ASSERT
(
pm
!=
RT_NULL
);
mode
=
pm
->
current_mode
;
switch
(
mode
)
{
case
PM_RUN_MODE_NORMAL
:
break
;
break
;
case
PM_SLEEP_MODE_SLEEP
:
case
PM_SLEEP_MODE_DEEP
:
pmu_stop2_enter
();
break
;
break
;
case
PM_SLEEP_MODE_TIMER
:
case
PM_SLEEP_MODE_STANDBY
:
pmu_standby_enter
(
PMU_STANDBY_PORT_NONE
);
break
;
break
;
case
PM_SLEEP_MODE_SHUTDOWN
:
case
PM_SLEEP_MODE_SHUTDOWN
:
...
@@ -73,32 +47,21 @@ static void _drv_pm_exit(struct rt_pm *pm)
...
@@ -73,32 +47,21 @@ static void _drv_pm_exit(struct rt_pm *pm)
}
}
}
}
#if PM_RUN_MODE_COUNT > 1
static
void
_drv_pm_frequency_change
(
struct
rt_pm
*
pm
,
rt_uint32_t
frequency
)
{
return
;
}
#endif
static
int
drv_hw_pm_init
(
void
)
static
int
drv_hw_pm_init
(
void
)
{
{
static
const
struct
rt_pm_ops
_ops
=
static
const
struct
rt_pm_ops
_ops
=
{
{
_drv_pm_enter
,
_drv_pm_enter
,
_drv_pm_exit
,
RT_NULL
,
#if PM_RUN_MODE_COUNT > 1
_drv_pm_frequency_change
,
#endif
RT_NULL
,
RT_NULL
,
RT_NULL
,
RT_NULL
,
RT_NULL
RT_NULL
};
};
rt_uint8_t
timer_mask
;
rt_uint8_t
timer_mask
=
0
;
/* initialize timer mask */
/* initialize timer mask
(no need tickless)
*/
timer_mask
=
1UL
<<
PM_SLEEP_MODE_TIMER
;
// timer_mask = 1UL << PM_SLEEP_MODE_DEEP
;
/* initialize system pm module */
/* initialize system pm module */
rt_system_pm_init
(
&
_ops
,
timer_mask
,
RT_NULL
);
rt_system_pm_init
(
&
_ops
,
timer_mask
,
RT_NULL
);
...
...
bsp/es32f0654/drivers/drv_pm.c
浏览文件 @
623ddc62
...
@@ -16,52 +16,26 @@
...
@@ -16,52 +16,26 @@
#ifdef RT_USING_PM
#ifdef RT_USING_PM
static
void
_drv_pm_enter
(
struct
rt_pm
*
pm
)
static
void
_drv_pm_enter
(
struct
rt_pm
*
pm
,
uint8_t
mode
)
{
{
rt_uint32_t
mode
;
mode
=
pm
->
current_mode
;
switch
(
mode
)
switch
(
mode
)
{
{
case
PM_
RUN_MODE_NORMAL
:
case
PM_
SLEEP_MODE_NONE
:
break
;
break
;
case
PM_SLEEP_MODE_
SLEEP
:
case
PM_SLEEP_MODE_
IDLE
:
__WFI
();
__WFI
();
break
;
break
;
case
PM_SLEEP_MODE_TIMER
:
case
PM_SLEEP_MODE_LIGHT
:
pmu_stop2_enter
();
break
;
case
PM_SLEEP_MODE_SHUTDOWN
:
pmu_standby_enter
(
PMU_STANDBY_PORT_NONE
);
break
;
default:
RT_ASSERT
(
0
);
break
;
}
}
static
void
_drv_pm_exit
(
struct
rt_pm
*
pm
)
{
rt_uint32_t
mode
;
RT_ASSERT
(
pm
!=
RT_NULL
);
mode
=
pm
->
current_mode
;
switch
(
mode
)
{
case
PM_RUN_MODE_NORMAL
:
break
;
break
;
case
PM_SLEEP_MODE_SLEEP
:
case
PM_SLEEP_MODE_DEEP
:
pmu_stop2_enter
();
break
;
break
;
case
PM_SLEEP_MODE_TIMER
:
case
PM_SLEEP_MODE_STANDBY
:
pmu_standby_enter
(
PMU_STANDBY_PORT_NONE
);
break
;
break
;
case
PM_SLEEP_MODE_SHUTDOWN
:
case
PM_SLEEP_MODE_SHUTDOWN
:
...
@@ -73,32 +47,21 @@ static void _drv_pm_exit(struct rt_pm *pm)
...
@@ -73,32 +47,21 @@ static void _drv_pm_exit(struct rt_pm *pm)
}
}
}
}
#if PM_RUN_MODE_COUNT > 1
static
void
_drv_pm_frequency_change
(
struct
rt_pm
*
pm
,
rt_uint32_t
frequency
)
{
return
;
}
#endif
static
int
drv_hw_pm_init
(
void
)
static
int
drv_hw_pm_init
(
void
)
{
{
static
const
struct
rt_pm_ops
_ops
=
static
const
struct
rt_pm_ops
_ops
=
{
{
_drv_pm_enter
,
_drv_pm_enter
,
_drv_pm_exit
,
RT_NULL
,
#if PM_RUN_MODE_COUNT > 1
_drv_pm_frequency_change
,
#endif
RT_NULL
,
RT_NULL
,
RT_NULL
,
RT_NULL
,
RT_NULL
RT_NULL
};
};
rt_uint8_t
timer_mask
;
rt_uint8_t
timer_mask
=
0
;
/* initialize timer mask */
/* initialize timer mask
(no need tickless)
*/
timer_mask
=
1UL
<<
PM_SLEEP_MODE_
TIMER
;
timer_mask
=
1UL
<<
PM_SLEEP_MODE_
DEEP
;
/* initialize system pm module */
/* initialize system pm module */
rt_system_pm_init
(
&
_ops
,
timer_mask
,
RT_NULL
);
rt_system_pm_init
(
&
_ops
,
timer_mask
,
RT_NULL
);
...
...
examples/pm/timer_app.c
浏览文件 @
623ddc62
...
@@ -39,7 +39,7 @@ static int timer_app_init(void)
...
@@ -39,7 +39,7 @@ static int timer_app_init(void)
rt_timer_start
(
timer1
);
rt_timer_start
(
timer1
);
/* keep in timer mode */
/* keep in timer mode */
rt_pm_request
(
PM_SLEEP_MODE_
TIMER
);
rt_pm_request
(
PM_SLEEP_MODE_
DEEP
);
return
0
;
return
0
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录