.Net Micro Framework移植環境準備
釣魚島是中國的!如果你不承認,請關閉本頁!
移植準備
.Net Micro Framework移植必須安裝PK最新版本,可以從官網(http://netmf.codeplex.com/)下載,建議安裝到C:\PK;
我們采用MDK編譯器,所以也必須安裝Keil MDK,建議安裝到C:\Keil\ARM;
最好也安裝VC++ 2010 Sp1,后面繞開的方法未驗證。
建議安裝功能強大的文本編輯軟件,比如Notepad++。
建議購買固態硬盤,編譯速度將可以提升五到十倍,并且后面還有大量的搜索字符串工作,在一萬多個零碎文本文件里面找一個變量名或方法名
編譯腳本
setenv_base.cmd 增加MDK編譯器,不帶版本號,代表MDK4.x
setenv_MDK.cmd MDK編譯腳本,如果MDK不是安裝在C:\Keil\ARM,請自行修改
tools\Targets\Microsoft.Spot.system.mdk.targets MDK編譯目標,增加MDK不帶版本號的編譯器,代表MDK4.x
Solutions\你的方案 下的四個腳本,放入到每一塊板子的方案目錄,它們將是以后常用的編譯腳本,執行這些腳本,就會編譯當前方案項目,輸出在PK并排的MFBin目錄下
Release_Flash.bat 最常用的普通編譯腳本,Release編譯,到Flash去,如果需要Debug或者RAM的編譯,請自行修改腳本
Release_Flash_Log.bat 帶
日志輸出的普通編譯腳本,一般來說,普通編譯出錯(紅色錯誤,忽略黃色警告)后,很難找到錯誤所在,此時可以用這個腳本,把整個編譯過程輸出到日志文件
build.log中,然后通過搜索關鍵字error找到原始出錯的位置及詳細信息。
Release_Flash_Rebuild.bat 有時候修改了一些MF的文件后可能發現編譯沒有生效,可通過Rebuild一次來解決,不過很慢很慢。
RTM_Flash.bat RTM編譯腳本。MF帶有調試等功能,在最終產品上,是不需要這些功能的,那樣可以大大減小固件的大小。超級慢!
Release_Flash
::新生命嵌入式團隊 ::QQ群1600838 ::http://www.NewLifeX.com ::@echo off :: 設置一些參數 set x_flavor=release set x_memory=flash set x_root=..\..\ :: 先嘗試取得當前目錄名,作為方案名 :: 這里的原理是把當前目錄作為參數傳給自己,然后從get開始執行 ::call :get "%cd%.tmp" ::goto getNext ::exit :::get ::set name=%~n1 :::getNext for %%i in ("%cd%") do set x_name=%%~ni title 編譯MF方案[%x_name%][%x_flavor%][%x_memory%] ::goto copybin pushd %x_root% call setenv_MDK.cmd popd call msbuild /t:build /p:flavor=%x_flavor%;memory=%x_memory% :: > build.log echo 編譯完成 :copybin :: 把生成的文件復制出來 set x_buildout=%x_root%BuildOutput\THUMB2\MDK\le\%x_memory%\%x_flavor%\%x_name%\bin if not exist %x_buildout% set x_buildout=%x_root%BuildOutput\THUMB2FP\MDK\le\%x_memory%\%x_flavor%\%x_name%\bin set x_bindir=%x_root%..\MFBin\%x_name% if not exist %x_bindir% md %x_bindir% :: 復制TinyBooter.bin copy %x_buildout%\*.bin %x_bindir%\ /y copy %x_buildout%\*.axf %x_bindir%\ /y del %x_buildout%\*.bin /f/q del %x_buildout%\*.axf /f/q :: 復制ER_FLASH和ER_CONFIG set x_buildout=%x_buildout%\tinyclr.bin copy %x_buildout%\*.* %x_bindir%\ /y copy %x_bindir%\ER_FLASH %x_bindir%\TinyCLR.bin /y del %x_bindir%\ER_FLASH /f/q echo 輸出已復制到 %x_bindir%\ pause
(另外腳本修改文件頭部的參數即可)
第一次編譯
第一次編譯PK,需要很久很久,傳統硬盤大概要半個多小時,固態硬盤也要七八分鐘,因為需要編譯一些MF工具,而這些工具將用在后面的每一次編譯生成過程中。
理論上,第一次編譯需要調用VC++ 2010,因為那些工具都是Windows平臺C++代碼,我們沒有具體驗證。
VC++ 2010沒有安裝好或者沒有打SP1補丁都有可能造成編譯失敗。
有時候即使出錯,再編譯一次錯誤會變少;最后即使第一次編譯還有錯誤,也沒關系,可能方案項目的編譯已經能夠通過了。
考慮到很多同學可能并沒有安裝VC++ 2010,我們打包了第一次編譯的結果,理論上來講,釋放到PK目錄的輸出目錄BuildOutput下,應該能繞過VC++編譯這一次。
常規編譯
Release_Flash.bat編譯,傳統硬盤需要三五分鐘,固態硬盤大概需要二十多秒;如果修改了一些較為核心的地方,編譯時間會更長一些。
如果出錯,可以嘗試再次編譯,大概5%的錯誤在第二次編譯時消失。
如果還錯,采用Release_Flash_Log.bat編譯,等執行完后,在日志文件build.log中搜索error關鍵字,這里才是原始出錯的地方。
如果無法解決錯誤,覺得可能不是自己的問題,可以試試Release_Flash_Rebuild.bat編譯。
PK編譯腳本:https://files.cnblogs.com/nnhy/PK%E7%BC%96%E8%AF%91%E7%8E%AF%E5%A2%83_20120912095640.rar
第一次編譯結果:https://files.cnblogs.com/nnhy/public_20120911175956.rar
MF研究&移植交流QQ群:1600838
http://www.NewLifeX.com/MF/list.aspx
釣魚島是中國的!


浙公網安備 33010602011771號