2020年2月13日 星期四

Windows CE 7.0 img檔製作、新增driver流程


l  作業系統需求條件擇其一
n   Windows XP  並且更新到pack 3版本
n   Windows Vista並且更新到pack 2版本
n   Windows 7 任何版本
l  軟體需求
n   Windows CE 7.0 環境
n   Visual Studio 2008 (以下簡稱 VS 2008)
n   研華所附的燒錄軟體Windows CE bootble Disk Builder.exe
l  硬體需求
n   20~100 GB 硬碟容量
n   1GB以上CF

l  WinCE7.0VS2008安裝

1. 記得PC使用者名稱還有安裝時候公司或使用者,千萬不要設中文!! Compiler後產出路徑容易產生BUG
2.  按照光碟附贈手冊做安裝。安裝的順序如下(若是順序錯誤程式會產生錯誤)
a.  VS 2008
並更新到pack 1
b.  Micrsoft Expression Blend 3
c.  Windows Embedded Compace 7
3.   CE與VS2008順序錯誤會導致2008看不到CE系統。而且CE盡量灌在系統碟C槽,以避免之後做Compiler 路徑錯誤而無法做出img檔。由於公司開發的主機板以x86為主,基本的安裝套件如下:
Platform builder
CompactTest Kit
Windows Embedded silverlight Tools
English Documentation
x86 Architecture
4.    基本的套件安裝,大概是12~15GB內可以解決,全部安裝不是不行,但是會耗掉70GB的空間,以及大量的安裝時間,重點是我們沒有用到ARM的架構,有需要的話裝光碟補安裝即可


l  IMG檔製作:
1.      進入vs 2008 開啟新的project ,開啟一個OSdesign

2.          選擇BSP:
選擇你要開發的主機板的BSP(board support package)BSP主要影響到的是主機板的CPU  或是晶片,所以如果要找BSP不是查主機板代號,而是主機板的晶片是用哪個牌子的。一般來說選通用的 CEPC: x86即可,因為是用研華的主機板,所以也可以跟硬體供應商研華他們要他們的BSP還有相關套件,目前還不太確定不用BSP還有一些有的沒的相關套件會不會有很大的影響。



3.         開發相關套件選擇:
選完BSP之後,可以直接針對要開發的裝置類型作套件的勾選,如果你選了NEXT,就會針對對應的模板各種套件類型,每種分類ex 網路套件、GPA繪圖套件帶你慢慢選,就算直接finish,也可以在catalog item view中一次全部補勾選,若是對自己所需的驅動套件十分了解,或是要裝的東西比較少建議用Finish


4.          專案性質設定:
設定的位置如下

              a設定語言與開機性質相關設定:
                語言的部分用英文代號是0409   


       b開機性質設定:
  這裡很重要的是跟研華給的img建構流程不一樣,研華”Enable eboot space in   memory” 設定是NO 但沒有用他們的套件應該是要打開才會(這裡不是很肯定) 。 KITL則都會選擇關掉這個參數。因為我們是CE 7.0run-time image,如果用 KITL會無法完全開啟CE7.0boot Process

                              5.建構img :
 


                                 建議: 手動設定編譯路徑加快編譯速度2008在做晶片套件dll時都會把所有的晶片檔重新編譯,所以先把目錄的路徑設 定好,原本編譯20~30分鐘的檔案可以縮到4~5分鐘!!
                            ….\platform\common\src\soc資料夾裡的dir可以直接改成
               #DIRS=*
               DIRS = x86_ms_v1
                                                    DIRS=* 是原本的設定,因為我們都是用x86主機板,所以可以直接設x86_ms_v1
                                  執行編譯:  

                  Build -> Advance Build -> sysgen (bldemo -q) 即可編譯


                           目前燒錄暫時是使用研華給的簡易程式,以後希望能找到替代方法,比免被研華綁住。                            他們給的程式也有一些問題,他們磁碟代號只能是J,所以要燒錄的CF卡,磁碟代號要                                改J,選select之後,找到該NK.bin檔燒錄(WinCEimg檔叫做 NK.bin),大概對應的 
                          路徑…\OSDesign0923\OSDesign0923\RelDir\CEPC_x86_Release



l  個人經驗分享:
n   如果WinCE7.0灌在C槽以外的地方會怎樣??
其實我的Windows CE 7.0 是另外分割磁區,所以每次編譯的時候都會出現一個2008自己本身應該要做出來的dma8237_x86_ms_v1.dll檔,沒辦法自己編譯出來,都要另外加。不過把dma8237_x86_ms_v1.dll丟到對應的資料夾之後可以成功完成NK.bin檔製作。
n   debug
如果編譯上還是有任何error要到build.log去慢慢查找出問題跟同事,或是上網討論。





l  新增driverWinCE的方法:

                     目前有新增網路驅動成功的經驗,但尚未嘗試其他種外部驅動ex軸卡等。
            1.開啟或新增你使用的BSP的編譯目錄( XXX .pbcxml)

              2.BSP目錄新增一個項目,可用source觀看原始碼




                3.在你新增的項目將要連結的driverpath做設定,
4.對新增的driver項目設定對應的變數,做編譯鏈結會根據你設定的變數決定鏈結
             5.BSP platform.reg檔登錄,找到你使用的BSP platform.reg,將你要登陸的driver代表
                           的變數打上去,找不到位置可以搜尋usr的位置做撰寫

              6. BSP platform.bib檔登錄,找到你使用的BSP platform.bib,將你要登陸的driver代表的變數打上去,找不到位置可以搜尋usr的位置做撰寫
7. BSP platform.bat檔修改,找到你使用的BSP xxx.bat,將你要登陸的driver代表的變數打上去,找不到位置可以搜尋Chieh-Tse的位置做撰寫,其中等於 1 表示變數開啟。
8.BSP sysgen driver build,將剛剛新增的driverbuild,並確認有對該driver加入img
因為我拍照的狀態已經在做其他的編譯所以圖片為無法建立的狀態
9.系統產生好之後(對整個project sysgen 產出nk.bin),若要檢查新增的driver是否加入系統中,可在nk.bin檔產出的該資料夾中搜尋自己新增的driver是否在裡面
比如說以下是我要新增的driver
產出NK.bin檔的資料夾(xxxx_x86_Release資料夾中)內要有driverdll