.NETMicroFramework4.2beta原始碼探析

劉洪峰iot發表於2011-06-23

        .NET Micro Framework 4.2 beta釋出已經有一段時間了,一直沒有騰出時間研究,昨天因為LWIP協議棧的原因(感覺上一個版本有點問題)剛 下了程式碼,所以抽空研究了一下。

       這個版本主要的改變就是支援遠端安全升級,VB.net 程式開發,PWMAD

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.cppMicrosoft.SPOT.Native.dll

移掉了Cryptography_Key_RSA相關的方法

·         Spot_hardware_native.cpp(Microsoft.SPOT.Hardware.dll)

增加了PWMAD的支援

 

 

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 ClientServer支援

4)、Security

  X509Certificate2類庫

5)、Update

  MFFirmwareUpdate類庫;

  MFAssemblyUpdate 類庫;

  MFKeyUpdate 類庫;

  MFUpdate類庫;

  MFUpdateVersion類庫;

6)、PKCS11

  PKCS11類庫

 檔案主要的修改如下:

·         DPWS相關修改比較大,主要檔案基本上都修改了

·         CPU.cs

新增了PWMAnalog的列舉

·         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開發板: http://item.taobao.com/item.htm?id=7117999726

MF QQ群:127465602(已滿)  146524112

相關連結:

http://news.cnblogs.com/n/106062/

http://blogs.msdn.com/b/netmfteam/archive/2011/06/07/netmf-version-4-2-beta-now-available.aspx


相關文章