Hello World for .Net Micro Framework and ARM7

楼主
Hello World for .Net Micro Framework and ARM7
[P]作者:辛亚平
日期:2011年8月17日
网址:[URL=http://blog.csdn.net/xinyaping/article/details/6695535]http://blog.csdn.net/xinyaping/article/details/6695535[/URL][/P][P] [/P][P][FLASH=400,300]http://player.youku.com/player.php/sid/XMjk1NDgwOTM2/v.swf[/FLASH][/P][P] [/P][P]这是我第一次写基于.Net Micro Framework的程序,并且也是第一次把我的程序deploy到ARM7上。平时我是一名.Net Developer,只能接触到x86/x64的计算机。
[/P][P]
[/P][P]一年多以前,我自学单片机的时候,写的第一段C语言嵌入式程序就是一个运行在8位AVR单片机上的“Hello world”。在PC上写Hello world我们通常就是在图形界面或者控制台输出一个字符串,而单片机上的Hello world我通常是向发光二极管这种“显示设备”输出有规律的高低电平。[/P][P][/P][P]
[/P][P][/P][P]今天我得到了一块FEZ Panda II 开发板,又燃起了写Hello world的兴趣。[/P][P][/P][P]Show 一下,这块板子大小只比公交卡略大,长得是这个模样的:[/P][P][/P][P]
[IMG=0,absmiddle]http://www.ghielectronics.com/images/fpn2_features.jpg[/IMG][/P][P][/P][P]
[/P][P][/P][P]这块板子其实就是一块ARM7 cortex M3的板子,采用LPC2387,集成了晶振、USB通讯模块、JTAG调试器和Micro SD Socket插槽。但这些并不是这块板子最耀眼的特色,它最耀眼的特色是它的固件(Firmware):它的固件中移植了TinyCLR,可以运行基于[URL=http://www.kaixin001.com/%21repaste/detail.php?uid=105378&urpid=5464107378###].Net Micro Framework [/URL]的.Net程序。[/P][P]
[/P][P][/P][P]在单片机上运行.Net程序也不是啥稀奇的,支持WinCE的板子都能运行基于.Net Compact Framework的程序。但是,这块FEZ Panda II 开发板上面并没有运行着一个WinCE操作系统,它的[URL=http://www.kaixin001.com/%21repaste/detail.php?uid=105378&urpid=5464107378###].Net TinyCLR[/URL]是直接运行在Bootloader之上的。[/P][P]
[/P][P][/P][P]安装[URL=http://www.kaixin001.com/%21repaste/detail.php?uid=105378&urpid=5464107378###].Net Micro Framework SDK 4.1[/URL]和[URL=http://www.kaixin001.com/%21repaste/detail.php?uid=105378&urpid=5464107378###]GHI Electronics NETMF 4.1 SDK[/URL]之后,在Visual Studio 2010里面建立了一个 .Net Micro Framework / FEZ Panda II Application这种类型的工程,输入以下C#代码,build、deploy、Run,一气呵成。[/P][P]
[/P][ol][li]using System.Threading;    [/li][li]using GHIElectronics.NETMF.FEZ;    [/li][li]using Microsoft.SPOT.Hardware;    [/li][li]    [/li][li]namespace FEZ_Panda_II_Application1    [/li][li]{    [/li][li]    public class Program    [/li][li]    {    [/li][li]        internal const int StateChangeDelay = 500;  //milliseconds    [/li][li]        internal const Cpu.Pin port = (Cpu.Pin)FEZ_Pin.Digital.LED;    [/li][li]    [/li][li]        public static void Main()    [/li][li]        {    [/li][li]            // Blink board LED    [/li][li]    [/li][li]            bool ledState = false;    [/li][li]            OutputPort led = new OutputPort(port, ledState);    [/li][li]    [/li][li]            while (true)    [/li][li]            {    [/li][li]                Thread.Sleep(StateChangeDelay);    [/li][li]    [/li][li]                // toggle LED state    [/li][li]                ledState = !ledState;    [/li][li]                led.Write(ledState);    [/li][li]            }    [/li][li]        }    [/li][li]    }    [/li][li]}    
[/li][/ol][P]
 [/P][P]运行结果:板载LED每秒闪烁一次。请看视频
[/P][P][/P][P]
 [/P][P][/P][P]Tips: 一开始Deploy到板子上的时候总是失败,提示:Device not found or cannot be opened - USB:USBizi[/P][P][/P][P]想到可能是USBizi被占用了,于是在MFDeploy.exe里面断开连接,然后就Deploy成功了。[/P]
1楼
[P]老猫玩的东西很不错哦~~ [/P][P](话说怎么你帖子全是文字与UBB\HTML\文字混排的啊)[/P]

电脑版 Page created in 0.1016 seconds with 4 queries.