大家好!
小弟最近在搞wince 关机即(Suspend),流程是这样的,通过按键驱动来向GWES发送VK_OFF,然后会调用OEMPOwerOff,在这个函数里面会执行一些关机前的保存工作,接着就会调用OALCPUPOwerOff()使CPU进入最低功耗的模式,我的疑问是:
1:按照惯例,此时会把SDRAM置为Self-Refresh,并保持对SDRAM的供电,使其在关机时能够保持数据,但这样的功耗是不小的,大约3mA左右,不明白为什么关机时还要供电?这样有什么好处呢?? 我现在设计成此刻停止对其供电的,这样关机供耗就能将下来了
2:现在我每次启动都要把NOR FLASH中的image copy到SDRAM中,然后再跳过去执行,不知大家执行这样一次的CodeReboot需要多久才能到桌面出来???我 的是debug版本的,还带KITL
请大家多多指教!!
谢谢!!
1,如果不需要sleep状态,关机的时候就不需要进入SDRAM的SELF-REFRESH,也不需要给它供电,可以设置整个电路板完全断电,电流就下来了,不过这样的话每次开机就要从头来,不能恢复到之前的状态,我是指应用程序曾经在运行的状态。
2,从NOR FLASH的启动到桌面时间的长短要看系统加载的组件有多少,镜像有多大,驱动有多少等等,最快的四五秒就有进入桌面的,慢的话十几秒,关键是看要加载的东西。
首先 Suspend 只是挂起,即休眠,跟超低功耗的WINCE关机差距还很大;
建议楼主 百度或GOOGLE下 wince的电源管理,应该有很多不错的文章。
楼主可以看看这篇文章,讲得非常详细:
http://www.hzlitai.com.cn/article/ARM9-article/system/1634.html
楼主的硬件平台式什么? 是否支持超低功耗的DEEP SLEEP?
虽然wince默认仅定义了On, UserIdle, SystemIdle, Suspend 四种电源管理模式,
但如果你的处理器支持,完全需要加入DEEP SLEEP,从而实现更低功耗的DEEP SLEEP。
另外启动时间,的确和OS的大小,以及加载的组件多少等有直接关系;另外你是DEBUG模式,打印信息太多,估计得1分左右。
谢谢Veabol兄的指点.
1:之前我就看到有这样一说:如果cpu芯片提供的最低功耗模 式是PowerDown模式,处理工作比较复杂,因为唤醒后是从reset处开始执行,要恢复挂起时候的环境,使得应用程序不知道自己被挂起过
我的CPU就是上面的情形,不知上面红色的部分的意思是否就是你说的"我是指应用程序曾经在运行的状态。"
不知象你那样作可以有什么好处呢??
2:假使要loder个32M的image,是否也就10几秒??
谢谢kyzf兄!
1:我的是Atmel9261,最低功耗模式就是可以将CPU主供电部分断掉,只留唤醒电路,2.5uA
2:我这里用的是默认的4种工作模式,感觉不需要在修改了,另外我的启动到桌面5分钟,串口kitl
1、我说的那种情况的好处就是耗电基本为0,如果你想恢复挂起前的状态就一定需要SDRAM的自刷新了。
2、从FLASH LOAD image的大小对启动时间的影响不大,使用NAND FLASH的时候可能也就差个一两秒,甚至更少,NOR的你要自己试了,没用过。启动时间的差异主要系统启动时装载的内容方面,比如如果使用NAND 的FAT盘符,每多一个FAT盘符至少要增加一秒的启动时间。
1:原来要SDRAM自刷新只是为了能恢复到关机之前的状态,我还以为这样还有什么别的特殊用途呢,那我就完全不需要了,这样就有点象PC机每次的开机CodeReboot了,呵呵
2:恩,你说的很在理,但是我每次通过bootloader打映输出,总是要在copy那部份停留很长时间的,
听说实现了MultiBin可以加快系统启动速度,真的行吗??