sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2007-08-01 10:26
引用第10楼jasonshi于2007-07-31 16:05发表的  :
也就是说整个唤醒过程都得自己写了?


不是吧 没那么复杂哦

唤醒时每个函数的powerup应该是系统自动调用
[url]http://sniper167.bokee.com[/url]
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2007-07-31 16:05
也就是说整个唤醒过程都得自己写了?
liulord
驱动牛犊
驱动牛犊
  • 注册日期2007-07-31
  • 最后登录2009-05-18
  • 粉丝0
  • 关注0
  • 积分22分
  • 威望155点
  • 贡献值0点
  • 好评度25点
  • 原创分0分
  • 专家分0分
22楼#
发布于:2007-07-31 10:42
pm里面的注释说调用的是startup.c,也就是你启动的那部分代码,这时候你就要在启动的时候检测你cpu的sleep状态标志,然后跳转startup的code到你自己写的数据恢复部分,从而唤醒,否则可能会变成重启的。
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2007-07-30 14:37
唤醒后所有的设备都还可以用吗?我知道suspend的时候,会把所有驱动的poweroff调用一遍,唤醒时应该有个什么函数再把poweron调一次才对吧。
sniper167
驱动中牛
驱动中牛
  • 注册日期2006-07-12
  • 最后登录2016-01-09
  • 粉丝1
  • 关注0
  • 积分13分
  • 威望411点
  • 贡献值0点
  • 好评度321点
  • 原创分0分
  • 专家分0分
24楼#
发布于:2007-07-30 10:20
请教了一哥们
他说休眠时,执行到OEMPOWEROFF中间某个地方就停了
如果出现一个中断把cpu唤醒  就会接着从OEMPOWEROFF中停了的那个地方接着往下执行

jason兄可以参考OEMPOWEROFF的代码  前半段都是在保存一些东西 估计执行完CPUPowerOff就停了  唤醒后继续执行 后面都是一些恢复的操作
[url]http://sniper167.bokee.com[/url]
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
25楼#
发布于:2007-07-30 09:16
可是挂起操作最终也调用OEMPOWEROFF,所有我没在OEMPOWEROFF中关掉CPU,只是把频率降到最低。我想在需要的时候唤醒,那这种情况应该怎么办呢?
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
26楼#
发布于:2007-07-27 19:33
唤醒当然不是那个函数能做了,POWEROFF以后CPU都不动了,无法执行代码,唯一能唤醒的就是中断,如果CPU已经断电,就得再加电才能动.
学海无涯
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
27楼#
发布于:2007-07-27 10:44
斑竹,我的CPU还有电,我想问的是调用系统哪个函数来唤醒系统?因为系统suspend时,把所有的驱动的POWEROFF都调用了一次,最后走到OEMPOWEROFF,那么唤醒是不是也应该有个函数把所有的poweron都调用一次呢?
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
28楼#
发布于:2007-07-26 20:37
这要看你的系统是怎么设计的(包括硬件与软件).

如果CPU此时只是进入IDLE状态,就是只是停了,但还是上电的,那用一个中断就可以唤醒它.
如果CPU都没电了,那你在进入这种状态之前就应该把当前的进程上下文保存下来,CPU再加电时做恢复,就比较麻烦了.
学海无涯
jasonshi
驱动小牛
驱动小牛
  • 注册日期2004-10-11
  • 最后登录2011-07-01
  • 粉丝2
  • 关注0
  • 积分23分
  • 威望446点
  • 贡献值3点
  • 好评度256点
  • 原创分0分
  • 专家分0分
29楼#
发布于:2007-07-26 08:53
谢谢斑竹,果真release可以走到。再请教一下suspend后怎么唤醒呢?
microsun
论坛版主
论坛版主
  • 注册日期2002-11-11
  • 最后登录2014-07-18
  • 粉丝0
  • 关注0
  • 积分1052分
  • 威望1159点
  • 贡献值0点
  • 好评度848点
  • 原创分0分
  • 专家分0分
30楼#
发布于:2007-07-25 21:44
好像你这个DEBUG版,我从来没有在DEBUG版上调过POWEROFF功能,你试试RELEASE版是不是好的,按说到这个地方应该就能进OEMPOWEROFF了.
学海无涯
上一页 下一页
游客

返回顶部