zoukankan      html  css  js  c++  java
  • 《玩转.NET Micro Framework 移植基于STM32F10x处理器》前言

    前言

           接触到.NET Micro Framework其实是一个非常偶然却又必然的机缘。当时norains在做车载设备,其架构分为两个主要部件,分别是导航板和控制板。导航版用的ARM11核心的CPU,运行的是Windows CE系统,主要用来运行导航软件;而控制板则则是MCU或低端的ARM,用来控制外围设备以及和汽车的沟通。当时因为公司的人员配置问题,对于控制板这块几乎没有人手有能力去进行,只能购买其它公司做好的板子。而这对于一个公司来说,无异于喉咙被对手扼住,生存和死亡就看对方是否高兴。鉴于这种情形,norains开始控制板的研究。但习惯于有操作系统作为支撑的开发方式,陡然进入一个可谓一片白纸的领域,可谓无从下手。比如在Windows CE中创建多任务,只需要调用几个简单的API函数即可;但在MCU这个区域,因为根本就没有操作系统的支撑,一切都只能自己动手:自己写调度算法,自己写逻辑关系等等。

           于是,为了打破这种困境,norains就开始寻找轻量级的嵌入式操作系统。经过多方比较,找到了μC/OS-II。只可惜μC/OS-II的结构化不符合自己的要求,因为系统和应用的关联度太大了,比如说,创建一个任务,就必须要修改操作系统代码,这对于极度追求稳定性的norains来说是不符合要求的——因为谁也无法保证,是否能够完全避开地雷。后来,norains便索性不再搜索成熟的嵌入式操作系统,打算自己重写一个,只要能够完成最简单的任务即可。也许冥冥中天注定,在其期间看到了网友叶帆关于.NET Micro Framework的一系列文章,而.NET Micro Framework又刚好满足系统和应用分隔的原则,于是就开始了和.NET Micro Framework的不解之缘。

           本书主要介绍的是.NET Micro Framework移植的相关方面。说到“移植”二字,可能不少初学者闻之色变,认为这是不可企及的高度,特别是将整个框架移植到新的CPU中,感觉难度更如登天。不过先别着急,虽然本书打着“移植”的旗号,但实际上是面对初学者的。只要知道C++的基本知识,就能够按照本书的介绍,一步一步去完成,从而真正踏入嵌入式领域。

           本书的移植的目标是STM32F10x,它是ST出品的一款高性能、低功耗的CPU。为什么选用这款CPU,而不是市面上常见的三星系列呢?因为STM32F10x采用的是Cortex-M3核心,是ARM11的下一代产品,同时也是ARM的未来发展趋势。更为重要的是,Cortex相对于之前的ARM系列,变动很大,特别是中断机制方面更是大相径庭;虽然M3Cortex性能较低的一个版本,但指令集基本是一致的,熟悉了STM32F10x工作原理之后,对于后续转为更高阶的Cortex版本具有非常重要的参考价值。更为有意思的是,.NETMicro Framework并没有完全实现Cortex核心的代码,需要用户自己去更改相应的流程,而这对于进一步了解.NETMicro Framework的工作原理却是大有裨益。

           虽然本书是基于STM32F10x,但却不会太过深入讲解该CPU的具体习性,而是点到为止——.NETMicro Framework需要什么,就只说什么。因为本书主要目标是介绍.NET Micro Framework的移植,如果还要额外增加STM32F10x特性的详细说明,无疑会增加书本的厚度,何况市面上关于STM32F10x的优秀书籍也无数不少,norains何苦在这再造轮子呢?如果读者您是STM32F10x的忠实粉丝,那么不妨将本书当做STM32F10x一个具体的项目实现。

           本书的目标在于带领各位读者进入.NET Micro Framework移植的大门,能够根据本书的介绍来移植一个能运行托管代码的最简单的TinyCLR。这目标听起来似乎并不那么宏伟,但麻雀虽小,五脏俱全,只要能够达成这一目标,也就意味着对于.NET Micro Framework的了解更深一层次,后续更多的动作也能够很容易地举一反三了。

           在本书的书写过程中,得到了不少人的帮助。负责书中源代码测试的有:蓝应志,余海标,朱艳锋,龚军波,王靖,钟镇轩,刘翔宇。负责搭建硬件平台,为软件提供测试基础的有:马俊,黄明飞,覃玉恩,龙晓波。负责书中插图设计,为本书添光增彩的有:覃思,莫多,洪玲,梁菲。还有一些朋友,需要特别的进行感谢。首先是网友叶帆,正是他的文章指引我进入了.NET Micro Framework领域,并且在移植过程中还给予了我不少建议,让我少走很多弯路,不愧为微软的.NET Micro Framework项目组成员,更无愧于微软MVP的称号。他的博客不能不推荐,其地址为:http://blog.csdn.net/yefanqiu。其次是向飞,一个实力非常高超的网友,如果没有你的无私帮助,说不定我现在还在USB的泥潭中苦苦挣扎,书中那么多的错误也不会那么及时地被发现。这里不得不提,向飞今年十月大婚,norains没啥贺礼可送,只能借书的一角祝你俩:新婚快乐,白头偕老!接着是老尹,让我知道除了车载以外还有那么广阔的领域,而这些都是.NET Micro Framework触角可以碰触的地方,让我对.NET Micro Framework的前景充满了信心。当然还有曾盛洲,如果不是你及时而又耐心地回答我工作上那些繁杂问题,我根本就不会有那么多时间去研究.NET Micro Framework。最后还有我的妻子,如果没有你坚定的支持,那么我在工作的抉择上还是犹豫不决,根本就无法如此心平气和地完成本书。

    尽管norains尽了极大的努力,但限于经验水平,书中的错误估计还是难免。如果读者大人您找到了这些错误,还望不吝指教,可以直接到我的博客blog.csdn.net/norains留言,或是发邮件到norains@gmail.com。在此,norains先行拜谢!

  • 相关阅读:
    Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)
    Luogu 1314 【NOIP2011】聪明的质检员 (二分)
    Luogu 1315 【NOIP2011】观光公交 (贪心)
    Luogu 1312 【NOIP2011】玛雅游戏 (搜索)
    Luogu 1525 【NOIP2010】关押罪犯 (贪心,并查集)
    Luogu 1514 引水入城 (搜索,动态规划)
    UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
    Luogu 1437 [HNOI2004]敲砖块 (动态规划)
    Luogu 1941 【NOIP2014】飞扬的小鸟 (动态规划)
    HDU 1176 免费馅饼 (动态规划)
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6172756.html
Copyright © 2011-2022 走看看