wince 6.0 休眠唤醒问题

mn_ytt 2015-07-30 04:46:40
第一次发帖,希望大家给点思路,谢谢了
问题:
正常情况下唤醒和休眠都是没有问题的,但是运行个别软件(摄像头, 截图, uc浏览器)后休眠唤不醒,如果唤不醒,进入休眠时

DNW显示无法唤醒时打印这样一条语句:

[31m[BAT:ERR] : [0m[31mAnother driver may be using the ADC resource.

定位后

BatteryPDDPowerHandler(BOOL bOff)
{
#ifdef BAT_CH0
DWORD dwIPIndex;
DWORD dwBytes;
#endif

BATMSG(BATT_FUNC, (TEXT("+%s\r\n"), _T(__FUNCTION__)));

#ifdef BAT_CH0

if(bOff == FALSE)
{

if(g_hPwrControl == INVALID_HANDLE_VALUE)
{
// Open a POWERCONTROL device
g_hPwrControl = CreateFile( L"PWC0:", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
if (INVALID_HANDLE_VALUE == g_hPwrControl)
{
BATERR(TRUE, (TEXT("Failed to open PWC0!\r\n")));
RETAILMSG(1,(TEXT("+++++++++++++++++[Failed to open PWC0!] +++++++++++++++++\n")));
goto CLEAN_UP;
}
}

// turn on
dwIPIndex = PWR_IP_BATT_ADC;
if(!DeviceIoControl(g_hPwrControl, IOCTL_PWRCON_SET_POWER_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL))
{
BATERR(TRUE, (TEXT("Failed to turn on TSADC!\r\n")));
}

dwIPIndex = CLK_IP3_TSADC;
if(!DeviceIoControl(g_hPwrControl, IOCTL_PWRCON_SET_CLOCK_ON, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL))
{
BATERR(TRUE, (TEXT("Failed to enable TSADC clock!\r\n")));
}

// A/D conversion delay (D)
// T1(Delay) : D * (1 / FILCLK)
// T2(X-conversion) : (D + 5) * (1 / PCLK)
// T3(Y-conversion) : (D + 5) * (1 / PCLK)
// A/D conversion time = T1 + T2 + T3
}
else
{
// power is automatically turned off on sleep mode
dwIPIndex = PWR_IP_BATT_ADC;
if(!DeviceIoControl(g_hPwrControl, IOCTL_PWRCON_SET_POWER_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL))
{
BATMSG(BATT_INFO, (TEXT("Failed to turn off PWR_IP_BATT_ADC!\r\n")));
BATERR(BATT_INFO, (TEXT("Another driver may be using the ADC resource.\r\n")));
}

#if 0 // clock is automatically disabled on sleep mode
dwIPIndex = CLK_IP3_TSADC;
if(!DeviceIoControl(g_hPwrControl, IOCTL_PWRCON_SET_CLOCK_OFF, &dwIPIndex, sizeof(DWORD), NULL, 0, &dwBytes, NULL))
{
BATERR(TRUE, (TEXT("Failed to disable TSADC clock!\r\n")));
}
#endif
}

#endif // BAT_CH0

CLEAN_UP:

RETAILMSG(1,(TEXT("+++++++++++++++++[BatteryPDDPowerHandler] +++++++++++++++++\n")));
BATMSG(BATT_FUNC, (TEXT("-%s\r\n"), _T(__FUNCTION__)));
}

红色部分就是:正常时可以运行, 运行部分程序休眠后出错
...全文
859 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujinqiang 2016-05-29
  • 打赏
  • 举报
回复
查查相关代码里面是不是屏蔽了中断 从休眠中唤醒时需要触发中断的
91program 2016-05-26
  • 打赏
  • 举报
回复
Another driver may be using the ADC resource. 说明电源处理部分受到其它硬件/驱动的影响,但是具体到个人是什么影响的需要实际分析。 在 BSP 中查找一下 PWR_IP_BATT_ADC,看看还有哪里用,可能.....
jbcbj 2016-05-26
  • 打赏
  • 举报
回复
和我的问题差不多,也是S5PV210平台的,目前发现是USB驱动影响的,看我帖子: http://bbs.csdn.net/topics/391954534?page=1#post-401186462
xqhrs232 2015-08-06
  • 打赏
  • 举报
回复
你这什么平台?用的那个芯片?
mn_ytt 2015-08-06
  • 打赏
  • 举报
回复
分都散不出去,大家没事踩踩嘛,关心下新人嘛……
mn_ytt 2015-08-06
  • 打赏
  • 举报
回复
引用 3 楼 xqhrs232 的回复:
你这什么平台?用的那个芯片?
三星的 S5PV210
mn_ytt 2015-08-06
  • 打赏
  • 举报
回复
三星的 S5PV210
mn_ytt 2015-07-30
  • 打赏
  • 举报
回复
弄个休眠,一大堆的问题,烦死了。。。

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧