0前言
Microsoft .NET Micro Framework 将 .NET 的可靠性和效率与 Visual Studio的高生产率结合起来,以针对价格较低、资源受限的小型设备开发应用程序,可帮助人们使用熟悉的 Visual Studio 工具来构建托管的嵌入式应用程序。2009年5月,.Net Micro Framework采用Apache 2.0 license,比Linux等开源软件更为彻底的方式实现了源代码完全开放。
1.哪些领域可以采用.NET Micro Framework技术?
.NET Micro Framework技术可以应用到:Sideshow、远程控制、智能家电、教育类机器、医疗电子、销售终端以及汽车电子等行业应用场景;此外由于.Net MF集成了各种接口,如串口、网口、Wifi、Zigbee、I2C、SPI、SDIO、USB等通信接口,加上其应用开发简便,所以在物联网时代,将大有作为。
2.NET Micro Framework与Window CE和Windows XP Embedded的区别?
.NET Micro Framework对存储器和处理器的要求更低。开发人员可以在低功耗、低成本的ARM7、ARM9、Blackfin和Cortex-M3处理器上使用该框架(不需要MMU支持),所开发出来的软件仅需要几百Kbytes的RAM或Flash/ROM存储空间。而Windows Embedded CE的托管代码环境需要约10~12Mbytes的存储空间,基于.NET的应用编程设备只需要较少的存储空间,降低了产品成本。
3.NET Micro Framework与其他.NET平台的区别?
作为.NET家族的一员,.Net Micro Framework是微软专门针对超轻量级平台设计的软件架构。与.Net Framework和.Net Compact Framework不同的地方是,.Net Micro Framework具有自启动的特性,并且在HAL层,微软将操作系统的必要特性引入,如:启动管理、中断处理、线程调度、内存管理等。.Net Micro Framework可以单独使用,不需要依托其它操作系统,因此占用空间很小。
1硬件开发板
目前全球已经有都多款.NET Micro Framework开发板供用户选择,其售价大概在4、5千人民币以上,而国内工信部(CSIP)提供的教育箱,价格更贵一些,其售价万元以上。
开发板相关列表:http://www.microsoft.com/netmf/hardware/default.mspx
为了让更多的用户能使用到低价、平价的开发板,我于年前携手PowerAVR推出了基于STM32芯片的低价.NET Micro Framework开发板,以期更多的用户有机会学习和了解.NET Micro Framework。
1.1开发板采购
(1)、无LCD .NET Micro Framework开发板(348元)
http://item.taobao.com/item.htm?id=7252366988
(2)、LCD2.8 .NET Micro Framework开发板(438元)
http://item.taobao.com/item.htm?id=7117999726
(3)、LCD3.2 .NET Micro Framework开发板(478元)
http://item.taobao.com/item.htm?id=7117493982
更多的开发板信息,请随时关注如下链接:
http://space.cnblogs.com/group/topic/41236/
1.2 购买固件
如果用户已经采购了1.1项所提到的开发板,那么为了学习.NET Micro Framework,可以仅需购买.NET Micro Framework固件就可以了。
固件采购:http://item.taobao.com/item.htm?id=7074883848
2固件升级
用户在购买.NET Micro Framework开发板时,其开发板上就已经部署了当时最新的.NET Micro Framework版本。但是由于.NET Micro Framework是一种不断发展和改进的技术,所以固件会不定期升级,相关固件的升级信息,请随时关注如下链接:
http://space.cnblogs.com/group/topic/40405/
2.1 固件下载地址
(1)http://space.cnblogs.com/group/topic/40405/
(2)http://www.sky-walker.com.cn/yefan/MFV40/STM32/mfv4_redox.bin
2.2 部署工具
工具名称:YFAccessFlash
下载地址:http://www.sky-walker.com.cn/yefan/MFV40/YFAccessFlash.rar
2.3 部署步骤
(1)、运行YFAccessFlash.exe,选择串口方式,单击连接(Connection按钮),如果通信正常,则出现上图界面;
(2)、清空Flash;
(3)、选择最新的.NET Micro Framework固件文件;
(4)、部署固件;
(5)、校验部署结果(这步不是必须);
(6)、运行;
2.4 部署注意事项
(1)、部署时,确保开发板Boot0和Boot1的跳线如下图所示;
(2)、如果无法连接开发板,请打开YFAccessFlash.exe目录下的config.xml,修改<Bootloader Baudrate="115200"/>中的默认波特率,修改比较低的一个值,如9600,然后重启YFAccessFlash.exe,再进行连接测试。
(3)、部署后,如果TinyCLR启动不正常,请检测一下JP11跳线是否在如图位置:
(4)、固件部署完毕后,Boot0和Boot1的跳线必须都在2-3位置(用户模式)。
3应用开发
3.1 VS2008SP1 + MF SDK安装
(1)、安装VS 2008 SP1
.Net Micro Framework支持VS 2008 Express版本,这是一款免费的开发工具,不过建议有条件的朋友可以优先考虑安装专业版或企业版。
VS 2008 Express sp1的下载地址如下:
http://www.microsoft.com/express/download/
(2)、安装.NET Micro Framework 4.0 SDK
3.2 调试信息输出
开发板COM1是调试口,连接PC串口后,可以通过超级终端或其它串口工具就可以看到开发板输出的调试信息。
串口参数配置如下:波特率 115200,数据位 8,无奇偶校验,无数据流控制。
3.3 USB驱动安装
3.3.1 USB驱动下载
下载链接:http://www.sky-walker.com.cn/yefan/MFV40/USB_Driver.rar
相关讨论:http://space.cnblogs.com/group/topic/39871/
3.3.2 USB驱动安装
3.3.2.1 Windows XP下安装
(1)、插入MF开发板,则提示安装驱动;
(2)、选择从指定位置安装,选择所下载的USB驱动位置即可;
(3)、安装MF驱动,提示没有签名,仍继续安装;
(4)、安装完毕;
![](http://hi.csdn.net/attachment/201009/5/0_1283671399k46f.gif)
3.3.2.2 Windows 7/Vista下安装
![](http://hi.csdn.net/attachment/201009/5/0_1283671415r0rF.gif)
(1)、插入开发板默认安装SideShow设备,并提示安装失败;
(2)、打开设备管理面板,右键单击安装未成功的SideShow设备,选择更新驱动;
(3)、选择浏览计算机查找驱动安装;
(4)、单击 从计算机设备驱动列表中安装;
![](http://hi.csdn.net/attachment/201009/5/0_1283671439cN15.gif)
(5)、选择从磁盘安装,选择我们所下载的MF驱动目录。
(6)、选择后的界面,提示无签名;
(7)、始终安装驱动程序;
(8)、安装成功。
注:可参考如下帖子:http://space.cnblogs.com/group/topic/40414/
3.4 程序开发
3.4.1 新建.Net Micro Framework项目
3.3.2.1 Windows XP下安装
(1)、插入MF开发板,则提示安装驱动;
(2)、选择从指定位置安装,选择所下载的USB驱动位置即可;
(3)、安装MF驱动,提示没有签名,仍继续安装;
(4)、安装完毕;
3.3.2.2 Windows 7/Vista下安装
(1)、插入开发板默认安装SideShow设备,并提示安装失败;
(2)、打开设备管理面板,右键单击安装未成功的SideShow设备,选择更新驱动;
(3)、选择浏览计算机查找驱动安装;
(4)、单击 从计算机设备驱动列表中安装;
(5)、选择从磁盘安装,选择我们所下载的MF驱动目录。
(6)、选择后的界面,提示无签名;
(7)、始终安装驱动程序;
(8)、安装成功。
注:可参考如下帖子:http://space.cnblogs.com/group/topic/40414/
3.4 程序开发
3.4.1 新建.Net Micro Framework项目
打开VS2008,新建一个基于控制台的.Net Micro Framework的应用程序,如下图:
3.4.2 Hello World!代码编写
using System;
using Microsoft.SPOT;
using System.Threading;
namespace HelloWorld
{
public class Program
{
public static void Main()
{
while (true)
{
Debug.Print("Hello World!");
Thread.Sleep(1000);
}
}
}
}
3.4.3 设定调试端口
打开工程属性面板,选择【.Net Micro Framework】面板,设定usb方式,如下图:
3.4.4调试运行
在Debug.Print("Hello World!")行加断点,单击运行,程序运行到断点处,按F10,单步调试,此时你会发现Output区将打印出“Hello World!”字符串。
此时你也可以查看超级终端,你会发现输出区,也会出现“Hello World!”,如下图:
3.4.5程序部署
3.4.5.1通过VS2008部署
在工程项目上,单击右键,选择右键菜单上的部署,则部署相关固件到硬件开发板上。
3.4.5.2通过YFAccessFlash部署
(1) 选USB接口,进行设备连接;
(2) 选择进入Deployment面板;
(3) 清空Flash区;
(4) 选择需要下载的pe文件(MF项目编译后,debug输出目录中会有相关pe文件),根据需要,可以一次选多个pe文件同时下载。
(5) 下载pe文件;
(6) Pe文件下载正确性校验(非必须);
(7) 运行应用程序(或重启开发板进行运行);
注:对大一些应用,建议采用这种方式进行项目部署,一是部署快,而是不容易出问题。
4相关资料
4.1 应用开发示例
(1)、【STM32 .Net MF开发板学习-01】Hello world
http://www.cnblogs.com/yefanqiu/archive/2010/06/04/1751566.html
(2)、【STM32 .Net MF开发板学习-02】GPIO测试
http://www.cnblogs.com/yefanqiu/archive/2010/06/29/1767495.html
(3)、【STM32 .Net MF开发板学习-03】TinyGUI绘图示例
http://www.cnblogs.com/yefanqiu/archive/2010/06/30/1768434.html
(4)、【STM32 .Net MF开发板学习-04】TinyGUI位图显示
http://blog.csdn.net/yefanqiu/archive/2010/07/03/5710264.aspx
(5)、【STM32 .Net MF开发板学习-05】PC通过Modbus协议远程操控开发板
http://blog.csdn.net/yefanqiu/archive/2010/07/05/5712678.aspx
(6)、【STM32 .Net MF开发板学习-06】蜂鸣器和LED数码管显示
http://blog.csdn.net/yefanqiu/archive/2010/07/05/5714668.aspx
(7)、【STM32 .Net MF开发板学习-07】全屏位图无闪烁显示
http://blog.csdn.net/yefanqiu/archive/2010/07/07/5717320.aspx
(8)、【STM32 .Net MF开发板学习-08】远程PLC读写控制
http://blog.csdn.net/yefanqiu/archive/2010/07/08/5721397.aspx
(9)、【STM32 .Net MF开发板学习-09】AD模拟量采集
http://blog.csdn.net/yefanqiu/archive/2010/07/20/5751112.aspx
(10)、【STM32 .Net MF开发板学习-10】SPI测试之触摸屏坐标获取
http://blog.csdn.net/yefanqiu/archive/2010/07/25/5764784.aspx
(11)、【STM32 .Net MF开发板学习-11】步进电机控制(非PWM模式)
http://blog.csdn.net/yefanqiu/archive/2010/08/02/5783878.aspx
(12)、【STM32 .Net MF开发板学习-12】【STM32 .Net MF开发板学习-12】跳动的音符(PWM合成)
http://blog.csdn.net/yefanqiu/archive/2010/08/19/5822609.aspx
4.2 移植开发示例
(1)、【.Net Micro Framework PortingKit - 01】移植初步:环境搭建
http://blog.csdn.net/yefanqiu/archive/2010/01/01/5117554.aspx
(2)、【.Net Micro Framework PortingKit - 02】STM3210E平台构建
http://blog.csdn.net/yefanqiu/archive/2010/01/02/5119171.aspx
(3)、【.Net Micro Framework PortingKit - 03】调试初步:点亮LED灯
http://blog.csdn.net/yefanqiu/archive/2010/01/02/5121851.aspx
(4)、【.Net Micro Framework PortingKit - 04】修改启动代码&重写向量表
http://blog.csdn.net/yefanqiu/archive/2010/01/03/5125745.aspx
(5)、【.Net Micro Framework PortingKit - 05】SRAM初始化&设置NVIC中断表偏移
http://blog.csdn.net/yefanqiu/archive/2010/01/03/5125769.aspx
(6)、【.Net Micro Framework PortingKit - 06】设置芯片时钟
http://blog.csdn.net/yefanqiu/archive/2010/01/03/5125786.aspx
(7)、【.Net Micro Framework PortingKit - 07】NVIC中断处理
http://blog.csdn.net/yefanqiu/archive/2010/01/18/5210149.aspx
(8)、【.Net Micro Framework PortingKit - 08】GPIO驱动
http://blog.csdn.net/yefanqiu/archive/2010/01/20/5218846.aspx
(9)、【.Net Micro Framework PortingKit – 09】串口驱动
http://blog.csdn.net/yefanqiu/archive/2010/01/24/5252018.aspx
(10)、【.Net Micro Framework PortingKit – 10】世界首款Cortex-M3内核MFV4诞生
http://blog.csdn.net/yefanqiu/archive/2010/02/13/5308329.aspx
(11)、【.Net Micro Framework PortingKit – 11】NandFlash驱动开发
http://blog.csdn.net/yefanqiu/archive/2010/02/15/5309306.aspx
(12)、【.Net Micro Framework PortingKit – 12】SysTick驱动开发
http://blog.csdn.net/yefanqiu/archive/2010/02/17/5310050.aspx
(13)、【.Net Micro Framework PortingKit – 13】LCD驱动开发
http://blog.csdn.net/yefanqiu/archive/2010/02/17/5310448.aspx
(14)、【.Net Micro Framework PortingKit – 14】TinyCLR编译与测试
http://blog.csdn.net/yefanqiu/archive/2010/02/18/5310634.aspx
(15)、【.Net Micro Framework PortingKit – 15】移植总结(兼谈MF未来发展)
http://blog.csdn.net/yefanqiu/archive/2010/02/19/5311773.aspx
4.3 更多资料请随时关注如下链接
4.3.1 开发板示例
http://space.cnblogs.com/group/topic/40339/
4.3.2 开发板固件
http://space.cnblogs.com/group/topic/40405/
4.3.3 MF博客文章
http://blog.csdn.net/yefanqiu/category/633947.aspx
4.4 其它信息
【淘宝店】http://netmf.taobao.com/
【MSN群】group155781@msnzone.cn
【微软MSDN中文技术论坛·NET Micro Framework】
http://social.msdn.microsoft.com/Forums/zh-CN/microframeworkzhchs/threads
【·NET Micro Framework中文讨论组】
http://space.cnblogs.com/group/MFSoft/