11038|15

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

ERROR: Power Handler function yield to low priority thread. [复制链接]

我的机器在suspend==>resume的过程中出现唤不醒的情况。
串口信息是:
BSPPowerOn
PCF: HW_PowerUp
Backlight SET OK!
:: BACKLIGHT ON !
[HSMMC0] Power Up the HSMMC Host Controller
ERROR: Power Handler function yield to low priority thread.
[HSMMC0] Card is Inserted!
网上有一些帖子说到:
You can't make a system call of any kind in a power handler routine. You

could implement this requirement by making the driver power manager aware

and performing the operation when the PM tells you to change state.

在power handler routine中不能调用系统函数,比如sleep()

我这样做了,问题依然存在。应该是对问题理解不够,请明白的哥们帮忙指点下,谢谢。

最新回复

楼主是这个问题么?  详情 回复 发表于 2010-5-25 13:57
点赞 关注

回复
举报

66

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
我之前也是这个问题。后来真找到时power handler routine里调用了系统函数RegOpenKeyEx。把那个函数替换掉就OK了!
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你没有这样做,否则不会出现这个error的。
对于这个问题的解决,在所有的powerdown或者up里面不能有任何的系统调用,不仅仅是sleep,还有EnterCriticalSection等都会造成这个结果的。只要有系统调用就很可能会产生这个问题。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
教你个方法,把那些最可能调用了系统函数的驱动不编进NK,一个一个的试,很快就找到原因的。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢jnu_kinke,我去看看。有不明白再请教
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

6
 
[HSMMC0] Power Up the HSMMC Host Controller
ERROR: Power Handler function yield to low priority thread.
[HSMMC0] Card is Inserted!
是不是我的HSMMC驱动的问题
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 dwall_blue 的回复:
[HSMMC0] Power Up the HSMMC Host Controller
ERROR: Power Handler function yield to low priority thread.
[HSMMC0] Card is Inserted!
是不是我的HSMMC驱动的问题

不一定,HSMMC0] Card is Inserted!是IST打印出来的话,而Power Up the HSMMC Host Controller是系统还在单线程的时候打印出来的话,中间差了好多时间

原因肯定是调用api
上次跟你出现了相同的问题,加了sleep()函数,错误信息也是完全一样,呵呵,郁闷了很久

肯定是摸个powerhandle除了问题,挨个找一下就可以了,呵呵,很快
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

8
 
不能唤醒应该不是因为ERROR: Power Handler function yield to low priority thread.
我们的机器关机的时候也有这条信息,但是可以唤醒,楼上几位的说法我去查下,似乎powerdown函数里边是有些东西
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 veabol 的回复:
不能唤醒应该不是因为ERROR: Power Handler function yield to low priority thread.
我们的机器关机的时候也有这条信息,但是可以唤醒,楼上几位的说法我去查下,似乎powerdown函数里边是有些东西

应该是的,我把一个一个试着不加载,也是一样存在着问题。我的另外一款机器,打印信息一样提示这个错误,可是可以起来。硬件上有个主要的区别是:内存本来是64M的现在是128M。
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

10
 
另外一个系统(BSP相近的)启动信息:
[HSMMC0] Power Up the HSMMC Host Controller
ERROR: Power Handler function yield to low priority thread.
[HSMMC0] Card is Removed!
HcdPdd_InitiatePowerUp
[A_HW] IOControl(IOCTL_POWER_SET) : D4 => D0
[A_HW] IOControl : Turning Codec On

Init Audio!!!
Backlight SET OK!
是不是HcdPdd_InitiatePowerUp这个地方出了问题?
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

11
 
问题出现在USB身上,谢谢大家
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 10 楼 dwall_blue 的回复:
问题出现在USB身上,谢谢大家

USB出了什么问题,能够与大家共享一下?
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

13
 
USB问题多多啊,我的关机闹钟在插USB的情况下就有问题。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用 12 楼 veabol 的回复:
USB问题多多啊,我的关机闹钟在插USB的情况下就有问题。

呵呵
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

15
 
BOOL HW_USBClocks(CEDEVICE_POWER_STATE    cpsNew)
{


    if (cpsNew == D0) //power on
    {

        USBFN_MSG( (TEXT("HW_USBClocks::D0 \r\n")));
        //if(pIOPregs->GPFDAT & (1<<2)) //check cable connection, for powerconsumption
    {
        // Set the Normal mode
    pIOPregs->GPHCON = (pIOPregs->GPHCON & ~(0x3<<28)) | (0x1<<28);
    pIOPregs->GPHUDP = (pIOPregs->GPHUDP & ~(0x3<<28));
    pIOPregs->GPHDAT = (pIOPregs->GPHDAT & ~(0x1<<14)) | (0x1<<14);
    pIOPregs->MISCCR &= ~(1<<12);
    // Enable the PHY Power
    pCLKPWR->PWRCFG |= (1<<4);
    // First USB PHY has to be reset, and after 10us, func and host has to be reset.

            pCLKPWR->USB_CLKCON = (0<<31)|(1<<2)|(0<<1)|(0<<0); //pullup disable

    pCLKPWR->USB_RSTCON = (0<<2)|(0<<1)|(1<<0);
            Sleep(2);
    pCLKPWR->USB_RSTCON = (1<<2)|(0<<1)|(0<<0);
            Sleep(2);
    pCLKPWR->USB_RSTCON = (0<<2)|(0<<1)|(0<<0);
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

16
 
楼主是这个问题么?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表