.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. discuz 用户整合 账号整合 ucenter php网站整合discuz用户

    引用:https://www.cnblogs.com/kenkofox/archive/2011/09/18/2180649.html 1.登录后台管理.(在论坛中,用创建论坛的admin账号登陆,然 ...

  2. git rebase解决合并冲突

    git rebase解决合并冲突   记录合并冲突解决方法,使用的git rebase,感觉很好用 1.git rebase 文档 https://git-scm.com/docs/git-rebas ...

  3. Golang微信支付跳过X509验证

    游戏支付提交到微信的post: 微信: https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=23_4 错误信息: err:Post ...

  4. Python爬虫 ---scrapy框架初探及实战

    目录 Scrapy框架安装 操作环境介绍 安装scrapy框架(linux系统下) 检测安装是否成功 Scrapy框架爬取原理 Scrapy框架的主体结构分为五个部分: 它还有两个可以自定义下载功能的 ...

  5. centos7 NAT链接配置(静态ip/修改网卡名为eth0)|1

    NAT的静态ip设置并且修改网卡名为eth0 1 cd /etc/sysconfig/network-scripts/ mv eno16777736  ifcfg-eth0 #修改名称 vi eth0 ...

  6. IntelliJ IDEA 在方法大括号中{}点击回车多出一个},如何取消

    在 File - settings - Editor - General- Smart Keys - Enter 去掉 Insert pair '}' 的对勾就可以了

  7. Linux中使用netstat命令的基本操作,排查端口号的占用情况

    Linux中netstat命令详解 Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的状态信息.Netstat用于显示与I ...

  8. Linux c++ vim环境搭建系列(0)——简介

    vim 学习 简介: 源码编译使用vim及其插件. 内容包含: vim的编译安装, llvm clang的编译安装, 插件youcompleteme的编译安装使用, 以及vim其他插件的使用. 搭建环 ...

  9. tensorflow2.x 报错 Could not load dynamic library 'cudart64_101.dll'

    当我们使用 tensorflow 最新版本的时候 ,会出现这样的错误 -- ::] Could not load dynamic library 'cudart64_101.dll'; dlerror ...

  10. L0 torch 构建网络初步

    L0 pytorch 构建简单网络 本文是L0, 目的是把pytorch构建感知器的程序,仔细剖析理解. import torch from torch import nn torch.__versi ...