6.28.2010

output message on device on/off - sysgen and private

在查 system poweron/off 時,有時要列印出所以 driver 的 on/off message。
一個一個加很麻煩,可以直接在 device manger 加:
C:\WinCE600\PRIVATE\WINCEOS\COREOS\DEVICE\DEVCORE\Devapi.c
裡面的 DevMgrPowerOffHandler:
原來的
                DEBUGMSG(ZONE_PNP,(TEXT("Calling \'%s\' PowerDown at 0x%x\r\n"),
改為強制輸出的 RETAILMSG 就可以。


在該 folder build 完後,下 sysgen -p common devmgr 後,就可以makeimg 了。



-p common 的意思是 "在 wince600\public\common 下"
-p option 好像是指 public 下的 folder。
所以 sysgen -p common devmgr 的意思是要 sysgen public\common\ 下的 devmgr
-- 雖然不知道怎麼看出common folder 里有 devmgr 這個 target @_@..

可以測試一下:
sysgen -p directx 會 build 出 public\direct 下所有的 directx example
如果只要 build mosquito:
sysgen -p directx mosquito



sysgen 也是一個 batch 檔...

只是我一直找不到那些 sysgen 的 "target" 到底在哪裡...

關於 sysgen 的target ..大概可以到 retail folder 去找,, dll 或是 exe。
用 cesysgen_capture,會產生 該 project 的 sources file,然後去找該 target 是由哪些
library build 出來的。
cesysgen_capture -p common devmgr 
會產生一個 sources.devmgr

sysgen_capture device

會產生一堆 (相依?) 的 source 檔:
  • sources.ceddk -- ceddk.lib
  • sources.devmgr -- devmgr.lib
  • sources.pm -- pm.lib
  • sources.udevice -- udevice.exe
  • sources.device -- device.exe

2 則留言:

Kun-Yi 提到...

>>>所以 sysgen -p common devmgr 的意思是要 sysgen public\common\ 下的 devmgr
-- 雖然不知道怎麼看出common folder 里有 devmgr 這個 target @_@..

see \WINCE600\PUBLIC\COMMON\CESYSGEN\makefile

wince 這個build system 不知道為啥MS 都不多寫一點介紹

Checko 提到...

真是太,,,太,,太感激啦!!

我找了好久(好幾年)...

真應該讓你看我現在痛哭流涕的樣子..