最近开始负责wince kernel部分了,现在项目也比较多。不过现在做完一个项目的kernel部分的驱动,现在压力轻了许多,其他两个项目的kernel部分的code,改起来也就比较容易了。呵呵。
系统启动时间短,对于产品的来说,是一个重要的地方。想办法,降低各个drivers的启动加载时间,是我们的做底层driver的一个重要的工作要点吧。
首先,我们要降低derivers的启动加载时间,那我们首先要知道一个项目里的,各个drivers的启动时间的具体情况。查看wince的drivers的各个drivers的加载时间,我用的是celog 工具。
celog的工具的使用(我这几天看帮助文档所学的点皮毛,记录一下,以免自己以后忘记)
1:打开所在项目的bsp,-----》project-----》properties--》configuration Properties ---->Build Options
选中1》Enalbe event tracking during boot (IMGCELOGENABLE=1)
2》Flush tracked events to release directory(IMGAUTOFLUSH=1)
2.根据帮助文档上的说明和自己的需要,修改注册表
/WINCE600/PLATFORM/项目/FILES/platform.reg 如下
IF IMGCELOGENABLE
[HKEY_LOCAL_MACHINE/System/CeLog]
"Transport"="LocalFile"
"FileName"="celog.clg"
"FlushTimeout"=dword:7D
"ZoneCE"=dword:00010000;CELZONE_DEBUG|CELZONE_BOOT_TIME|CELZONE_LOADER
"BufferSize"=dword:00100000
"ThreadPriority"=dword:0
;for more information please check CeLog Zones from microsoft help document.
ENDIF IMGCELOGENABLE
3.重新sysgen和build bsp
4 .分析celog)
可以只适用如下的命令:
进入项目的命令行编译环境(build----->open release directory in window )
readlog -d -x celog.clg celog.text 或者readlog -x celog.clg celog.text (我是将deviece上获得的celog.cfg拷贝到release 目录的)
分析后结果如下:readlog -x celog.clg celog.text 命令
celog.text的部分内容如下:
--:--:--.---.--- : ====================== Data loss counter: 906492 bytes lost ======================
--:--:--.---.--- : Marker, counter frequency=2082000 Hz, default thread quantum=100
--:--:--.---.--- : Sync End Marker
0:00:04.995.517 : device.dll: Activating Drivers/BuiltIn/DrvDetect
0:00:04.997.307 : device.dll: Activating Notify
0:00:05.006.477 : device.dll: Activating Drivers/BuiltIn/TAPI
0:00:05.076.564 : device.dll: Activating Drivers/BuiltIn/WAPIMAN
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:05.401.298 : device.dll: Activating Drivers/BuiltIn/WAPIMAN_ACM
0:00:05.403.866 : device.dll: Activating Drivers/BuiltIn/SIP
0:00:05.430.739 : device.dll: Activating Drivers/BuiltIn/PowerControl
0:00:05.440.201 : device.dll: Activating Drivers/BuiltIn/Animation
0:00:05.483.962 : device.dll: Activating Drivers/BuiltIn/PowerButton
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:05.510.239 : device.dll: Activating Drivers/BuiltIn/VideoEngine
0:00:05.542.413 : device.dll: Activating Drivers/BuiltIn/I2C
0:00:05.551.804 : device.dll: Activating Drivers/BuiltIn/credsvc
0:00:05.553.618 : device.dll: Activating Drivers/BuiltIn/RDSTMC
0:00:05.618.439 : device.dll: Activating Drivers/BuiltIn/Audio
0:00:05.696.139 : device.dll: Activating Drivers/BuiltIn/PCM
0:00:05.709.420 : device.dll: Activating Drivers/BuiltIn/SDBusDriver
0:00:05.727.895 : device.dll: Activating Drivers/BuiltIn/HSMMC0
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:05.781.142 : device.dll: Activating Drivers/BuiltIn/NDIS
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:06.857.281 : device.dll: Activating Drivers/BuiltIn/AFD
0:00:06.982.706 : device.dll: Activating Comm/Devices/TCPIP/IPDevice
0:00:06.985.504 : device.dll: Activating Comm/Devices/TCPIP/TCPDevice
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:07.019.767 : device.dll: Activating Software/Microsoft/Bluetooth/Driver
0:00:07.160.407 : device.dll: Activating Drivers/BuiltIn/Ws2Serv
0:00:07.162.358 : device.dll: Activating Drivers/BuiltIn/PPP
0:00:07.175.916 : device.dll: Activating Drivers/BuiltIn/autoras
0:00:07.177.857 : device.dll: Activating Drivers/BuiltIn/NdisPower
0:00:07.184.443 : device.dll: Activating Drivers/BuiltIn/GPS_HWCOM
0:00:07.221.375 : device.dll: Activating Drivers/BuiltIn/SC6440USBFN
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:07.282.680 : device.dll: Activating /Drivers/USB/FunctionDrivers/Serial_Class
0:00:07.348.771 : device.dll: Activating Drivers/Console
0:00:07.452.751 : device.dll: Activating Drivers/BuiltIn/SW_TMC
0:00:07.467.904 : device.dll: Activating Drivers/BuiltIn/SirFNavIII
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:07.698.061 : device.dll: Activating Drivers/BuiltIn/SerialCSR
--:--:--.---.--- : ====================== Data loss counter: 0 bytes lost ======================
0:00:07.825.245 : device.dll: Activating Drivers/BuiltIn/MGTimer
0:00:07.829.700 : device.dll: Activating Drivers/BuiltIn/Battery
0:00:07.844.047 : device.dll: Activating Drivers/BuiltIn/AudioRouter
0:00:07.856.384 : device.dll: Activating Drivers/BuiltIn/Unload
0:00:07.864.197 : device.dll: Activating Drivers/BuiltIn/PCI
0:00:07.864.316 : device.dll: Activating Drivers/BuiltIn/NDISUIO
0:00:07.864.410 : device.dll: Activating Drivers/BuiltIn/ErrorReporting
0:00:07.864.566 : device.dll: Finished initializing
0:00:07.889.888 : filesys.dll: Launching gwes.dll
两个驱动之间的时间差就是,驱动的启动加载时间。
你也可以用readlog -d -x celog.clg celog.text ,之间输出经过计算各个drivers启动时间差的celog
如下:
--.------ (00.-191-134) : Marker, counter frequency=2082000 Hz, default thread quantum=100
--.------ (00.-191-134) : Sync End Marker
4.995517 (04.804382) : device.dll: Activating Drivers/BuiltIn/DrvDetect
4.997307 (00.001789) : device.dll: Activating Notify
5.006477 (00.009170) : device.dll: Activating Drivers/BuiltIn/TAPI
5.076564 (00.070086) : device.dll: Activating Drivers/BuiltIn/WAPIMAN
--.------ (-05.-76-564) : ====================== Data loss counter: 0 bytes lost ======================
5.401298 (00.324733) : device.dll: Activating Drivers/BuiltIn/WAPIMAN_ACM
5.403866 (00.002568) : device.dll: Activating Drivers/BuiltIn/SIP
5.430739 (00.026873) : device.dll: Activating Drivers/BuiltIn/PowerControl
5.440201 (00.009461) : device.dll: Activating Drivers/BuiltIn/Animation
5.483962 (00.043760) : device.dll: Activating Drivers/BuiltIn/PowerButton
--.------ (-05.-483-962) : ====================== Data loss counter: 0 bytes lost ======================
5.510239 (00.026277) : device.dll: Activating Drivers/BuiltIn/VideoEngine
5.542413 (00.032173) : device.dll: Activating Drivers/BuiltIn/I2C
5.551804 (00.009390) : device.dll: Activating Drivers/BuiltIn/credsvc
5.553618 (00.001814) : device.dll: Activating Drivers/BuiltIn/RDSTMC
5.618439 (00.064821) : device.dll: Activating Drivers/BuiltIn/Audio
5.696139 (00.077699) : device.dll: Activating Drivers/BuiltIn/PCM
5.709420 (00.013280) : device.dll: Activating Drivers/BuiltIn/SDBusDriver
5.727895 (00.018475) : device.dll: Activating Drivers/BuiltIn/HSMMC0
--.------ (-05.-727-895) : ====================== Data loss counter: 0 bytes lost ======================
5.781142 (00.053246) : device.dll: Activating Drivers/BuiltIn/NDIS
--.------ (-05.-781-142) : ====================== Data loss counter: 0 bytes lost ======================
--.------ (-05.-781-142) : ====================== Data loss counter: 0 bytes lost ======================
--.------ (-05.-781-142) : ====================== Data loss counter: 0 bytes lost ======================
--.------ (-05.-781-142) : ====================== Data loss counter: 0 bytes lost ======================
6.857281 (01.076139) : device.dll: Activating Drivers/BuiltIn/AFD
6.982706 (00.125424) : device.dll: Activating Comm/Devices/TCPIP/IPDevice
6.985504 (00.002798) : device.dll: Activating Comm/Devices/TCPIP/TCPDevice
--.------ (-06.-985-504) : ====================== Data loss counter: 0 bytes lost ======================
7.019767 (00.034262) : device.dll: Activating Software/Microsoft/Bluetooth/Driver
7.160407 (00.140640) : device.dll: Activating Drivers/BuiltIn/Ws2Serv
7.162358 (00.001951) : device.dll: Activating Drivers/BuiltIn/PPP
7.175916 (00.013558) : device.dll: Activating Drivers/BuiltIn/autoras
7.177857 (00.001940) : device.dll: Activating Drivers/BuiltIn/NdisPower
7.184443 (00.006585) : device.dll: Activating Drivers/BuiltIn/GPS_HWCOM
7.221375 (00.036931) : device.dll: Activating Drivers/BuiltIn/SC6440USBFN
--.------ (-07.-221-375) : ====================== Data loss counter: 0 bytes lost ======================
7.282680 (00.061304) : device.dll: Activating /Drivers/USB/FunctionDrivers/Serial_Class
7.348771 (00.066091) : device.dll: Activating Drivers/Console
7.452751 (00.103979) : device.dll: Activating Drivers/BuiltIn/SW_TMC
7.467904 (00.015153) : device.dll: Activating Drivers/BuiltIn/SirFNavIII