- 想要rebuild device.exe,卻不行,開始trace nk.exe,找load device.exe的地方。
- 在nk.exe中加入debug message,rebuild。
- document說只有debug version 可以rebuild private folder codes。try building debug version。
- debug version ROM太大,要enable > 64M image。
- debug version boot speed too slow,而且不會output debug message。
- 換回release version,nk.exe build ok (跟document 不合),會output debug message。
- try tiny-kernel ,成功run tktest.exe...
- 修改tktest 再build後就fail了,tktest.exe prefetch abort。
- 開始try 各種configuration (item),設法找到fail 的原因。
- 上QFE。build on another machine。
- from a minimum configuration, add necessary item - TKTEST prefetch abort.
- 以為是item沒有選對,所以一個一個try。結果不是item的原因,是...一定要先加一些奇怪的item,build fail後再移除才可以。但是再sysgen一次(沒有修改任何configuration)就fail。
- enable KERNEL_MONITOR Thread,發現雖然tktest.exe abort,但是kernel依然是ok (kernel monitor thread ok)。所以決定用kernel monitor thread來作on/off process。
- Trace power off process - power button trigger (timer) call to kernel - oal - off,找到power off 的kernel function。
- kernel monitor thread 用sleep( )來auto off 是OK的。加入powerbutton oal,修改掉compile error (unresolved external)後,也可以用power button ON。
- 在monitor thread加入polling power button .. access peripherial register - mapping ok, read 就會exception。
- Virtual/Physical Translation在UserMode和KernelMode不一樣,Kernel Mode要用VALPAtoPA。
- 開機後馬上進入PowerOff - 加入putton release check。
- 發現 NB的building speed竟然是PC的4倍。
<-- 都是花在none-open source 上的effort。
沒有留言:
張貼留言