序

2006年才偶然知道.NET Micro Framework,那是无意间翻阅一本当年的《程序员》杂志,发现有一篇马宁所写的.NET Micro Framework的介绍文章。文章称.NET Micro Framework不仅可以自启动,所提供的托管代码库还可以非常方便的操作硬件,比如操作GPIO、串口、USB和以太网之类的接口,一下子就把仅有Windows编程和工控经验的我深深吸引住了。

也就是在同一年,微软中国和CSIP(工业和信息化部软件与集成电路促进中心)签署合作备忘录。2007年9月18 日,微软中国与CSIP联合主办的.NET Micro Framework技术大会在京隆重召开,正式把.NET Micro Framework引入中国。

从那个时候开始,我便着手研究.NET Micro Framework,并写一些关于.NET Micro Framework的技术文章,在积极推进当时我所在公司和CSIP合作开发.NET Micro Framework项目未果的情况下,在马宁的引荐下,2008年我加入了微软中国.NET Micro Framework项目组,从而得以进入嵌入式领域,开始了我的ARM开发生涯。

虽然从2007年开始,CSIP和微软中国便大力推广.NET Micro Framework,但是定位仅仅是和高校合作,其推出的近乎天价的几万元的双子星教育箱,也只有高校可以买单,一般嵌入式爱好者是无缘使用的。而国外推出的.NET Micro Framework开发板,动不动几千元的价格,也不是一般爱好者所能接受的。此外更致命的是,.NET Micro Framework Porting Kit不仅TinyCLR不开源,并且还收取600美金的授权使用费用,所以更限制了.NET Micro Framework在中国,乃至世界的推广。

直到2009年,微软才幡然醒悟,不仅.NET Micro Framework Porting Kit完全免费,此外还以更为彻底的源代码授权方式(Apache 2.0 license)全部开源了.NET Micro Framework代码,并且源代码也交予社区进行开发维护。

当此时也,物联网风起云涌,ARM推出了Cortex系列的芯片,各大厂商的云计算平台更是甚嚣尘上,而恰恰最重要的“端”这个依托平台正是.NET Micro Framework最适合的施展舞台。

为了顺应这个发展潮流,我以个人之粗见,尽微薄之力,推出了全球第一款基于Cortex-M3的.NET Micro Framework开发板,使.NET Micro Framework爱好者能用较低的代价,便可以进入.NET Micro Framework学习的殿堂。

也就是在那个时候,我结识了来自深圳的莫雨,他采用了自己的方式,用了近半年的时间,一步步,认认真真地完成了.NET Micro Framework的移植工作,难能可贵的是,他把自己的移植过程,结集成书,使有心进行.NET Micro Framework的移植的网友,多了一个指路明灯。尤值得一提的是,莫雨的这部大作,应该是全球第一部写.NET Micro Framework底层移植的书。

需要指出的是,.NET Micro Framework应该是没有多少嵌入式基础的读者进入嵌入式开发殿堂,最好的切入点,为什么这么说呢?因为.Net MF相对其它嵌入式系统,即不简单(相对于UC/OS-II)也不复杂(相对于WinCE,嵌入式Linux),并且包略万象,知识面涉及很广,不仅包含一个小巧的操作系统,还包括CLR的精简运行时,更包含一个强大的在线调试系统,真可谓 “麻雀虽小,五脏俱全”。

此外学习.Net Micro Framework也是Windows平台开发的人员顺利的过渡到真正嵌入式开发的最佳渠道,从这一点出发,你很容易过渡到其它嵌入式系统上来,如UC/OS-II,ucLinux、嵌入式Linux等系统;而WinCE则不然,学过WinCE的人都知道,WinCE开发比较难的就是驱动开发和平台移植,而这种代码编写、编译和调试都是基于微软自己的PB开发环境(目前已作为插件成为Visual Studio的一部分),你很难接触到什么MDK、RVDS、GCC等等开发工具,你为学WinCE而WinCE,你将被绑定,很难转入到其它嵌入式系统,至于WinCE应用开发,那和PC平台开发几乎没有什么区别,也许你已经开发了几年的WinCE应用开发,严格意义上讲,你仍不是一个真正的嵌入式开发人员。当然如果仅仅学习嵌入式Linux的应用开发,那么你也称不上一个真正的嵌入式开发人员,真正的嵌入式开发人员至少要有和中断和芯片的寄存器打交道的经历。

总之一句话,如果你学习了一阵子.Net Micro Framework应用开发,已经不满足当前所学,想进一步深入研究和开发.Net Micro Framework,那么莫雨的这部关于底层移植的书,你不得不读,他会给你拨开底层移植的层层迷雾,让你尽享.Net Micro Framework底层移植的快乐。

刘洪峰(网名:叶帆) 于 北京
                                                                                                                                                                  2011年8月18日

转载于:https://www.cnblogs.com/wangfengju/archive/2012/04/28/6172752.html

《玩转.NET Micro Framework 移植-基于STM32F10x处理器》--微软中国.NET Micro Framework项目组工程师所作之序...相关推荐

  1. 再谈.NET Micro Framework移植

    没有想到,距第一次写.NET Micro Framework移植文章<移植初步:环境搭建>已经快两年半了.不过这两年多来的时光也没有虚度,还是做了不少工作的.从代码角度来说,不仅STM32 ...

  2. Learun FrameWork,基于.NET的智能化开发工具

    一.Learun  FrameWork介绍 Learun FrameWork,是一款基于.NET的优秀整合框架,可以为企业或个人在.NET环境下快速开发系统提供强大的支持,框架自身提供了强大的函数库和 ...

  3. 移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植

    移植基于linux-2.6.26.5内核s3c2410触摸屏驱动移植的过程记录下来: (1)首先打一个补丁:s3c2410_touchscreen.patch, 在内核解压的根目录下 patch -N ...

  4. 【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro的使用基于WPF的改造的MVVM案例

    文章目录 前言 1.Caliburn.Micro是什么 2.Caliburn.Micro的主要功能 一.Caliburn.Micro的使用基于WPF的改造 1.项目介绍 2.安装软件包 3.改造App ...

  5. 全志V853开发板移植基于 LVGL 的 2048 小游戏

    LVGL 开发实战 移植基于 LVGL 的 2048 小游戏 这一节将以一个已经编写好的 lvgl 小游戏 2048 描述如何将已经编写完成的 lvgl 程序移植到开发板上. 这里使用的 2048 小 ...

  6. 【Microsoft Azure 的1024种玩法】五十九.基于Azure云平台快速搭建GitLab应用实现代码托管

    [简介] GitLab是由GitLab Inc.开发,一款基于Git的完全整合的软体开发平台,以 Git 作为代码管理工具并实现自托管的 Git 项目仓库,本篇文章主要介绍如何在Azure Virtu ...

  7. 【Microsoft Azure 的1024种玩法】六十八.基于Azure云平台使用Azure Virtual machines快速搭建Docker容器

    [简介] Docker 是一个开放源代码软件,主要应用于开发应用.交付应用.运行应用,Docker 可以将应用程序及其依赖项打包到可以在任何 Linux.Windows 或 macOS 计算机上运行的 ...

  8. 【Microsoft Azure 的1024种玩法】四十八.基于Azure Virtual Machines快速搭建SQL Server应用

    [简介] SQL Server系列软件是Microsoft 公司推出的关系型数据库管理系统,本文的主要内容是围绕着Azure Virtual Machines 来快速搭建SQL Server应用,使我 ...

  9. 【Microsoft Azure 的1024种玩法】二十九.基于Azure VM快速实现网络入侵检测 (IDS) 及网络安全监视 (NSM)

    [简介] 数据包捕获是一个重要组件,可以实施网络入侵检测系统 (IDS) 并执行网络安全监视 (NSM). 我们可以借助开源 IDS 工具来处理数据包捕获,并检查潜在网络入侵和恶意活动的签名. 使用网 ...

最新文章

  1. 很全的SQL注入语句,有SQL漏洞的都可以拿下
  2. C++ this指针详解(精辟)
  3. android 数据存储----android短信发送器之文件的读写(手机+SD卡)
  4. 1715: 序列变换(LIS变形)
  5. 【LeetCode】69. Sqrt(x) (2 solutions)
  6. 淘宝开发平台 java 调用实例
  7. 处理32人!永久取消申报基金/报奖资格……又一批科研不端案例被通报批评
  8. 机器学习SVD【一】
  9. 编译c语言源程序得到的目标文件可以直接在dos环境中运行,c语言练习题一.doc
  10. HDU 2577 How to Type (DP,经典)
  11. java反编译工具Java Decompiler
  12. 好用的服务器终端,推荐7款超级好用的终端工具 —— SSH+FTP
  13. u盘装了linux后无法格式化,U盘制作ubuntu安装盘后无法格式化处理
  14. TYUT太原理工大学2022需求工程考试选择题背诵版
  15. 什么软件测试固态硬盘坏没坏,固态硬盘容易坏吗 SSD固态硬盘坏掉前有什么征兆【详细介绍】...
  16. 虎符WEB Writeup
  17. 在MacOS下通过brew link切换golang版本
  18. spring集成kafka运行时报错:Failed to construct kafka producer] with root cause
  19. 数据结构学习笔记:算法复杂度的度量之“大O记号”
  20. zeromq初体验C语言版本测试程序及C++测试程序

热门文章

  1. 让关键词排名更稳定提升的优化技巧有哪些?
  2. 网站SEO优化可通过哪些数据分析来解决问题?
  3. 网站推广的三大基本方式
  4. 参考灵敏度_和平精英2021灵敏度分享码一览 S11灵敏度压枪目前最稳调整攻略
  5. 实现账号在一端登入_跟我学spring security 基于数据库实现一个基本的登入登出...
  6. jfinal怎么连接oracle,如何用Jfinal连接多个数据库
  7. oracle加并行好不好,请教--对INSERT语句加并行度是否会提高速度
  8. APT 信息收集——shodan.io ,fofa.so、 MX 及 邮件。mx记录查询。censys.io查询子域名。...
  9. 让 Python 代码更易维护的七种武器——代码风格(pylint、Flake8、Isort、Autopep8、Yapf、Black)测试覆盖率(Coverage)CI(JK)...
  10. angularjs 中的scope继承关系——(1)