而我們所提供的方案和他們不同,我們是通過流式驅動的方式用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>