天天看點

【物聯網智能網關-17】.NET Micro Framework之MDK C++二次開發

而我們所提供的方案和他們不同,我們是通過流式驅動的方式用MDK開發C++程式。使用者程式采用标準的流式驅動接口進行相關調用。并且流式驅動提供事件機制,底層和上層可以通過事件進行互動。

另外就是為MDK C++程式提供了豐富的.NET Micro Framework PAL層接口,可以讓使用者随心所欲地開發出功能強大的程式。

和上一篇文章介紹的功能函數相比,又擴充了一些比較實用的功能,比如I2C、SPI接口,底層中斷打開關閉,HAL_COMPLETION、HAL_CONTINUATION類似底層多線程支援和中斷程式使用者态執行,功能函數由原來的61個擴充到了80個。具體功能接口如下:

下面簡單介紹一下驅動開發步驟。

2、  標明MCU類型,可以根據實際硬體選擇STM32F103/STM32F207/STM32F407/STM32F405。

3、  輸入對應的平台宏定義

4、  配置針對具體硬體所設定的離散加載配置檔案

   淩霄智能終端的離散加載檔案的内容如下:

  LR_IROM10x08010000 0x00010000  {    ; load region size_region

  ER_IROM1 0x08010000 0x00010000  {    ; load address = execution address

   .ANY (+RO)

  }

  RW_IRAM1 0x20000400 0x00002000  {  ; RWdata

   .ANY (+RW +ZI)

}

    表示程式加載的位置在0x08010000,大小為64K,RAM空間為0x20000400起始的8K空間。

注:使用者驅動除了這部分RAM可用外,還可以直接通過接口提供的記憶體操作函數,配置設定堆上的記憶體。

5、  編寫使用者驅動(C/C++),下面是一個綜合示例,用到了GPIO操作、顯示操作、時鐘中斷操作和事件通知。

6、  編譯使用者驅動,生成UserDriver.bin檔案。

標明UserDriver.bin檔案然後直接部署即可。

注:如果這不是初次部署運作使用者驅動,需要先終止目前程式的執行,否則部署會出現問題(淩霄103的裝置需要先部署應用,然後再部署使用者驅動)。

8、  使用者程式編寫(C#)

9、  使用者程式寫好後,直接在VS 2010中編譯執行。

硬體運作效果圖(如下):

 ---------------------------------------------------------------------------------------------

<a href="http://weibo.com/1804832611?s=6uyXnP"></a>