星期六, 10月 28, 2006

Change to realchecko.blogspot.com

越來越不穩了。
因為這個blogger每次發佈都要reflash 整個blog,所以文章多的blog在發佈時就會越來越慢,而且常常會update失敗。

這個blog用到現在,文章好像也有1600多篇(篇數雖然多,但是長度都很段短,有一段時間還當作memo用...),所以update 失敗的次數就越來月多了..

沒辦法,只好遷移到blog-beta去,但是blog-beta還真的是beta,轉移還有些問題,所以就新開一個好了... 就是上次try blog-beta時register的 blog : http://realchecko.blogspot.com

以後都會po到那了。

有空的時候也會拿那邊的data update這裡一下。

Change HD for X32

換上命運多舛的80G HD。
換得時候看了一下 兩顆hd的spec。
原來用的是Toshiba, 1A。
新的是 是seagate 0.45A。
所以,換上去電池會撐得比較久嗎?

還有,速度會便得比較慢嗎? -- 好像有比較曼的樣子。

順便試試上次做的X32 回復光碟,果然很方便,都不用到bios設定了。
一路裝完。大約要2 hours。

星期四, 10月 26, 2006

CE : MISC Work Record : Tiny Kernel Mode ,, Test Program

在build log 中會出現:

CE_MODULES=coredll nk shell relfsd loaddbg shellcelog fsdmgr filesys toolhelp rt_tests
COREDLL_COMPONENTS=coremain lmem showerr thunks corecrt corestrw snotify coregwestub coreimmstub coresiow serdev locmini multiui full_crt crypthash rsa32
NK_COMPONENTS= nkcompr nkmapfile
FILESYS_COMPONENTS=fsheap fsmain fsreg fsysram msgqueue
可以看出NK.EXE, COREDLL.DLL, 各由哪一些 lib 組合而成,但是不知道決定dependency 的地方在哪裡。

New Platform : build 出來的platform在OS design View中會自動依照Platform-Setting - Build Option 的項目加入需要的item,所以刪除該item時,會出現一個dialog,說明同時要將 ENABLE_XXX 的item 關閉。

但是雖然OS Design View 中有該item,實際看workspace.pbxml 卻還是只有基本的item (就是有選的item),也就是說... 實際的和OS Design View 不符。

將 platform-Setting-build option 中的item 都不勾選,TinyKernel 就只有標準的nk, coredll 兩個。


  1. uncheck all "Platform - Settings - Build Options" except "FullKernelMode".
  2. uncheck "Clean befor build" and "make run-time image after build".
  3. build and sysgen
  4. modify platform.bib
    1. comment out FlashDrv.dll
    2. comment sdmmc ...
    3. comment pnashell.bib
  5. modify *.reg <- seems not need to do this


TinyKernel Test Program的位置在
PUBLIC\COMMON\OAK\tktest

在common.bib中有描述,當指定使用MODULE_TKTEST時,會將tktest.exe copy到 image中,rename成filesys.exe。

這是因為 CE 的 kernel : 寫死了 起動後 run ...
  • schedule.c : SchedInit( ) : CreateThread( ... SystemStartupFunc ...)
  • schedule.c : SystemStartupFunc : CreateKerelThread( ... RunApps ... )
  • kmisc.c : RunApps( ) : CreateProcess( ..filesys.exe... )
所以...第一個啟動的是filesys.exe (?)。
跟Linux一樣,kerel boot後,指定root filesystem, kernel 用內建node id找到後,找到裡面的init.. load, run。
所以makeimg完,用viewbin -top nk.bin 看 MODULE 只有看到filesys.exe,沒看到tktest.exe。
dir 出來看,tktest.exe 和 filesys.exe 的size一樣大。

download and Run ...
In TKTest
Page size=4096, 13426 total pages, 13402 free pages. 13401 MinFree pages (102400 MaxUsed bytes)
Event created successfully, About to set event
Look, a message from a thread
In thread, loop cnt = 0
In thread, loop cnt = 1
In thread, loop cnt = 2
In thread, loop cnt = 3
...
.成功。

很愚蠢的是 沒有單純build tktest.exe 的方法,tktest\source 中指定target是sharelib,所以build 出來會是 tktest.lib (!!)。
好像是到該folder build -c 後 sysgen ,修改platform.bib後再makeimg就可以..

這樣啟動的kernel,因為filesystem 沒有啟動,所以registry 都沒有用。

網誌存檔