• 《玩转.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先行拜谢!

  • 相关阅读:
    热更新--动态加载framework
    封装framework注意点
    zip压缩和解压缩
    iOS 网络请求数据缓存
    tomcat服务器访问网址组成
    iOS--支付宝环境集成
    线程10--NSOperation的基本操作
    线程9--NSOperation
    线程8--GCD常见用法
    线程7--GCD的基本使用
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6172757.html
Copyright © 2020-2023  润新知