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.
引用 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是系统还在单线程的时候打印出来的话,中间差了好多时间
另外一个系统(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这个地方出了问题?
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.