.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. 怎样让scratch里的人物两腿走动

    需要人物角色至少有两个“造型”,表现走路时的两个动作.以默认的“小猫”觉色为例,它有两个“造型”,可以用来表现奔跑的动作. 但是要想让小猫跑起来,需要脚本来实现,简单跑动脚本如下 scratch学习视 ...

  2. echarts以地图形式显示中国疫情情况实现点击省份下钻

    首先要导入对应的包.下钻用到各个省份的json文件等内容导入之后进行相关的操作. 首先是从数据库中读取相应的数据文件.通过list方式.只有在ser出转化为json文件.在jsp页面通过ajax来进行 ...

  3. 28.2 api-- System (gc、arraycopy、exit)

    /* * System:包含一些有用的类字段和方法.它不能被实例化 * static void arraycopy(Object src, int srcPos, Object dest, int d ...

  4. 十九种Elasticsearch字符串搜索方式终极介绍

    前言 刚开始接触Elasticsearch的时候被Elasticsearch的搜索功能搞得晕头转向,每次想在Kibana里面查询某个字段的时候,查出来的结果经常不是自己想要的,然而又不知道问题出在了哪 ...

  5. mysql 使用技巧 分页limit

    mysql 分页使用 limit关键字,limit x,y (x代表从哪条数据开始,y代表页面大小.mysql第一条数据在limit计算时索引为0) 前10条 limit , 从第1条开始的10条 l ...

  6. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  7. Docker-Bridge Network 02 容器与外部通信

    本小节介绍bridge network模式下,容器与外部的通信. 1.前言2.容器访问外部2.1 访问外网2.2 原理2.3 一张图总结2.4 抓包3.外部访问容器3.1 创建nginx容器并从外部访 ...

  8. 选择IT行业的自我心得,希望能帮助到各位!(二)

    在前面说道的一,希望大家能喜欢,这也只是自己的一种经历,每个人都有年轻的时候,谁的年级都有自以为是,谁的年轻都有风华正茂,谁的年轻都让自己的内涵给我们自己摔了一个狠狠的道理,人外有人天外有天.我记得当 ...

  9. JAVA—线程(Thread)

    1.线程的状态有哪些 我记得在操作系统原理的书上有一张具体的图,暂时找不到书... new:新建状态,被创建出来后未启动时的线程状态. runnable:就绪状态,表示可以运行. blocked:阻塞 ...

  10. DataGridView编辑状态自动提交

    在使用bindingSource.bindingNavigator+DataGridView修改时会发现,当你需要保存修改过后的内容,必须将光标指向另外一行,DataGridView才会将编辑过后的数 ...