.NET Micro Framework 4.2 beta发布已经有一段时间了,一直没有腾出时间研究,昨天因为LWIP协议栈的原因(感觉上一个版本有点问题)刚 下了代码,所以抽空研究了一下。

       这个版本主要的改变就是支持远程安全升级,VB.net 程序开发,PWM和AD。
1、Application目录
多了一个MicroBooter目录,这就是所谓远程安全更新功能,和MFDeploy配合,完成升级功能。
2、CLR目录
Libraries目录下多了三个目录
(1)、SecurityPkcs11
  数据包(或对象)安全处理,代码很多,相对复杂。
(2)、SPOT_PWM
  PWM支持库
(3)、SPOT_Update
  远程升级支持库,感觉这些方法都暴露给用户程序了(包括SecurityPkcs11),难道是用户程序自己控制升级过程?
若干文件被修改。
·         Debugger.cpp文件中,读写Memory中,Flash多了三个分区BLOCKTYPE_SIMPLE_A
       BLOCKTYPE_SIMPLE_B
       BLOCKTYPE_UPDATE    -- 远程升级对应的区域
      此外就是和升级相关的具体代码了。
·         Debugger_full.cpp文件中,多了四个通信命令
UpgradeToSsl
MFUpdate_Start
MFUpdate_AddPacket
MFUpdate_Install
       似乎是,这个升级过程,可以通过ssl进行加密。
·         Corlib_native.cpp(mscorlib.dll)
增加了Base64的编码和解码
·         Corlib_native_System_Numer.cpp
增强了Format格式输出,从代码看,似乎支持 ToString(“X”)
·         Spot_native.cpp(Microsoft.SPOT.Native.dll)
移掉了Cryptography_Key_RSA相关的方法
·         Spot_hardware_native.cpp(Microsoft.SPOT.Hardware.dll)
增加了PWM和AD的支持
3、DeviceCode目录
变化更大,我只说几个比较重要的
(1)、stubs_analog
 AD模板文件
(2)、stubs_PWM
  Pwm模板文件
(3)、MFUpdate
 PAL层远程升级函数接口
(4)、NetMFPkcsCrypto
 OpenSSL中集成PKCS11
(5)、PKCS11
  PKCS #11 v2.11密码令牌接口标准
(6)、SimpleStorage
  以类似文件方式读写Flash
  文件变化若干,主要变化如下:
·         Blockstoragelist.cpp
增加了IsErased方法
·         AT91目录
支持AT9263 CPU
4、Formework目录
变化的目录主要有以下几个
(1)、Native_PWM
 PWM类库
(2)、Native_Update
  MFUpdateProperty 类库
(3)、FTP
  FTP Client和Server支持
(4)、Security
 X509Certificate2类库
(5)、Update
 MFFirmwareUpdate类库;
 MFAssemblyUpdate 类库;
 MFKeyUpdate 类库;
  MFUpdate类库;
 MFUpdateVersion类库;
(6)、PKCS11
 PKCS11类库
 文件主要的修改如下:
·         DPWS相关修改比较大,主要文件基本上都修改了
·         CPU.cs
添加了PWM和Analog的枚举
·         NetworkSeurity.cs
增加 X509Certificate 类
·         IPAddress.cs
增加GetDefaultLocalAddress方法
·         WireProtocol.cs
增加 c_MEMORY_USAGE_UPDATE
c_MEMORY_USAGE_SIMPLE_A
c_MEMORY_USAGE_SIMPLE_B
估计:c_MEMORY_USAGE_UPDATE = 0x0060写错了,应该是 0x00000060
·         Conver.cs
增加 ToBase64String和 FromBase64String方法
·         Number.cs
格式转换,支持“X“字符
·         MFDeployForm.cs
支持.nmf扩展名的文件远程部署
·         MFDevice.cs
增加对MicroBooter的支持
5、Solutions目录
增加SAM9263_EK平台的支持
       比较奇怪的是,没有从代码中看到对VB.net 开发的支持。目前只是粗略过了一个下代码,有时间深入试用一下,再写一篇详尽的说明文档。
MF QQ群:127465602(已满) 146524112
相关链接:







本文转自yefanqiu51CTO博客,原文链接:http://blog.51cto.com/yfsoft/595236,如需转载请自行联系原作者

.NET Micro Framework 4.2 beta 源码探析的更多相关文章

  1. matplotlib工具栏源码探析三(添加、删除自定义工具项)

    转: matplotlib工具栏源码探析三(添加.删除自定义工具项) matplotlib工具栏源码探析二(添加.删除内置工具项)探讨了工具栏内置工具项的管理,除了内置工具项,很多场景中需要自定义工具 ...

  2. 调试 .NET Framework 源代码、.DotNetCore源码

    调试 .NET Framework 源代码..DotNetCore源码 如何调试 .NET Framework 源代码 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件 .NE ...

  3. MVVM大比拼之AngularJS源码精析

    MVVM大比拼之AngularJS源码精析 简介 AngularJS的学习资源已经非常非常多了,AngularJS基础请直接看官网文档.这里推荐几个深度学习的资料: AngularJS学习笔记 作者: ...

  4. MVVM大比拼之knockout.js源码精析

    简介 本文主要对源码和内部机制做较深如的分析,基础部分请参阅官网文档. knockout.js (以下简称 ko )是最早将 MVVM 引入到前端的重要功臣之一.目前版本已更新到 3 .相比同类主要有 ...

  5. vue.js源码精析

    MVVM大比拼之vue.js源码精析 VUE 源码分析 简介 Vue 是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google.vue 如作者自己所说,在api设计上受到了很多 ...

  6. SpringMVC学习(一)——概念、流程图、源码简析

    学习资料:开涛的<跟我学SpringMVC.pdf> 众所周知,springMVC是比较常用的web框架,通常整合spring使用.这里抛开spring,单纯的对springMVC做一下总 ...

  7. Flink源码阅读(一)——Flink on Yarn的Per-job模式源码简析

    一.前言 个人感觉学习Flink其实最不应该错过的博文是Flink社区的博文系列,里面的文章是不会让人失望的.强烈安利:https://ververica.cn/developers-resource ...

  8. 30s源码刨析系列之函数篇

    前言 由浅入深.逐个击破 30SecondsOfCode 中函数系列所有源码片段,带你领略源码之美. 本系列是对名库 30SecondsOfCode 的深入刨析. 本篇是其中的函数篇,可以在极短的时间 ...

  9. django-jwt token校验源码简析

    一. jwt token校验源码简析 1.1 前言 之前使用jwt签发了token,里面的头部包含了加密的方式.是否有签名等,而载荷中包含用户名.用户主键.过期时间等信息,最后的签名还使用了摘要算法进 ...

随机推荐

  1. 【php】字符串

    1.字符串的定义方式:1.单引号 ''2.双引号 ""3.定界符 <<<注意结束时的使用例:$str = <<<myStr字符串内容myStr; ...

  2. Vulnhub DC-3靶机渗透

    修改错误配置 打开了ova文件会发现,怎么也找不到DC-3的ip地址,估计是网卡出了问题. 那么就先配置下网卡. 进入上面这个页面之前按e. 将这里的ro 替换为 rw signie init=/bi ...

  3. (js描述的)数据结构[队列结构,优先级队列](3)

    (js描述的)数据结构[队列结构](3) 一.队列结构的特点: 1.基于数组来实现,的一种受限的线性结构. 2.只允许在表头进行删除操作,在表尾进行插入操作. 3.先进先出(FIFO) 二.队列的一些 ...

  4. word多级列表应用

  5. Java Array数组使用详解

    本文主要讲解java中array数组使用,包含堆.栈内存分配及区别 1.动态初始化 package myArray; /* * 堆:存储的是new出来的东西,实体,对象 * A 每个对象都有地址值 * ...

  6. Altium Designer 3D

  7. Byte字节

    字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位.最常用的字节是八位的字节,即它包含八位的二进制数. 中文名 字节 外文名 ...

  8. [转] [知乎] Roguelite 和 Roguelike 的区别是什么?

    编者按 本文译自 Ethan Hawkes 一篇介绍 rogue-lite 概念的文章,已获作者授权,英文原文见这里,译文首发于这里.注意本文写于 2013 年,正是 roguelite 类型的独立游 ...

  9. java的套接字实现远程连接

    package jnet;//客户端程序,使用套接字连接服务器import java.net.*;import java.io.*;import javax.swing.*; public class ...

  10. Camunda 流程引擎的一种 Adapter 层实现

    上一篇说明了选择 Camunda 的理由.这一篇说明如何实现适配层. 当前还没有专门写一篇对 Camunda 各个功能的详细介绍.如果要获得比较直观的感受,可以下载 Modeler 或者使用在线版的 ...