当前位置 > 首页 > Asp.net

.Net Micro Framework移植环境准备

2012-9-12 10:33:00来源:Asp.net

钓鱼岛是中国的!如果你不承认,请关闭本页!

移植准备
.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带有调试等功能,在最终产品上,是不需要这些功能的,那样可以大大减小固件的大小。超级慢!

 

::新生命嵌入式团队
::
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/