英創(chuàng)公司ESM8400工控主板可搭載Windows 10 IoT企業(yè)版操作系統(tǒng)構(gòu)成基于ARM64的Win10平臺(tái)。微軟的Win10平臺(tái)為用戶提供了多種開發(fā)方法,客戶可以根據(jù)自身需求選擇用MFC或UWP開發(fā)界面程序。
本文將介紹如何開發(fā)一個(gè)簡(jiǎn)單的界面程序。
1.1 Windows開發(fā)主機(jī)
推薦使用Visual Studio 2022在Windows 10 IoT平臺(tái)上進(jìn)行軟件開發(fā)。同時(shí),微軟提供免費(fèi)的Visual Studio 2022社區(qū)版,可以滿足開發(fā)需求。用戶可在微軟官網(wǎng)獲得下載鏈接。下載 Visual Studio Tools - 免費(fèi)安裝 Windows、Mac、Linux
Visual Studio 2022通過Visual Studio Installer進(jìn)行安裝,安裝過程中需要連接到互聯(lián)網(wǎng)。后續(xù)如果需要增加或刪除相關(guān)功能,也是通過Visual Studio Installer進(jìn)行。
在Window 10 IoT平臺(tái)的ARM64工控主板上進(jìn)行MFC程序或UWP程序開發(fā),需要安裝時(shí),在“工作負(fù)荷中”勾選上:
1. .NET桌面開發(fā)
2. 使用C++的桌面開發(fā)
3. Windows應(yīng)用程序開發(fā)
4. 使用C++的移動(dòng)開發(fā)
在“單個(gè)組件”中勾選上:
1. Windows 10 SDK(10.0.19041.0)
2. 帶有Spectre緩解措施、適用于最新v143生產(chǎn)工具的C++ ATL(ARM64/ARM64EC)
3. 帶有Spectre緩解措施、適用于最新v143生產(chǎn)工具的C++ MFC(ARM64/ARM64EC)
4. 適用于最新v143生產(chǎn)工具的C++ ATL(ARM64/ARM64EC)
5. 適用于最新v143生產(chǎn)工具的C++ MFC(ARM64/ARM64EC)
1.2 ARM64工控板
為了能夠在ARM64工控板上進(jìn)行在線聯(lián)調(diào),設(shè)置斷點(diǎn)追蹤等,需要在ARM64工控板上安裝Visual Studio 2022 遠(yuǎn)程工具。
1、在微軟官網(wǎng)上搜索下載ARM64的Visual Studio 2022 遠(yuǎn)程工具并安裝。下載 Visual Studio Tools - 免費(fèi)安裝 Windows、Mac、Linux
該工具也將放在“Win10IoT光盤資料/工具”中,或聯(lián)系英創(chuàng)工程師獲得。
2、創(chuàng)建共享目錄
在目標(biāo)機(jī)上創(chuàng)建一個(gè)共享目錄,用于Visual Studio將開發(fā)程序及組件部署到目標(biāo)機(jī)中。這里以ESM8400為例, ESM8400用戶名設(shè)置為Win10IoT,在其C盤下創(chuàng)建名“remotetemp”的共享目錄。
MFC作為windows早先框架,相對(duì)成熟,有大量應(yīng)用實(shí)例。Windows 10 IoT在兼容性上保證了各個(gè)版本的MFC程序(x86平臺(tái),ARM平臺(tái))都能在ARM64工控板上運(yùn)行(ARM64平臺(tái)MFC程序效率更高)。熟悉MFC開發(fā)的工程師能更快上手,使用原x86平臺(tái)資源庫(kù)更方便,將老平臺(tái)程序功能移植到Windows 10 IoT上的開發(fā)進(jìn)度會(huì)更快。
UWP是微軟最新框架,在跨平臺(tái)上更有優(yōu)勢(shì),在界面設(shè)計(jì)上功能更強(qiáng)大。微軟提供的Devices庫(kù)在調(diào)用硬件接口上更加方便。UWP有沙箱化的運(yùn)行機(jī)制,對(duì)權(quán)限控制更精細(xì)。
工程師應(yīng)根據(jù)實(shí)際情況選擇合適的開發(fā)平臺(tái)。
2.1 MFC程序開發(fā)示例
1、在開發(fā)主機(jī)上啟動(dòng)VS2022,創(chuàng)建新項(xiàng)目,選擇“MFC應(yīng)用”,點(diǎn)下一步創(chuàng)建。
2、選擇基于對(duì)話框的應(yīng)用程序類型,其它使用默認(rèn)選項(xiàng),點(diǎn)擊完成創(chuàng)建工程。
3、在工程對(duì)話框編輯頁(yè)面里,設(shè)置Static Text控件的文本為“Hello World”,點(diǎn)擊編譯,運(yùn)行,即可看到程序在開發(fā)機(jī)平臺(tái)上的初步樣貌。
4、現(xiàn)在讓程序在ARM64平臺(tái)上運(yùn)行,選擇配置管理器。
5、選擇活動(dòng)解決方案平臺(tái),新建ARM64平臺(tái),參考當(dāng)前平臺(tái)配置。
6、右鍵點(diǎn)擊工程->屬性,打開工程屬性頁(yè),設(shè)置遠(yuǎn)程調(diào)試的相關(guān)參數(shù)。
這里需要配置遠(yuǎn)程服務(wù)器名稱(ARM64工控板的地址),填目標(biāo)IP,或者目標(biāo)網(wǎng)絡(luò)名均可。
配置工作目錄,和部署目錄為ARM64工控板的共享目錄路徑。
設(shè)置“遠(yuǎn)程命令”,即應(yīng)用exe的啟動(dòng)路徑。可參考圖中配置,共享目錄路徑+$(TargetFileName)
7、最后返回配置管理器,把ARM64的部署項(xiàng)勾選上。
8、啟動(dòng)ARM64工控板上遠(yuǎn)程工具,即可開始調(diào)試。
2.2 UWP程序開發(fā)示例
1、在開發(fā)主機(jī)上啟動(dòng)VS2022,創(chuàng)建新項(xiàng)目,選擇“通用Windows C++”,點(diǎn)下一步創(chuàng)建工程。
2、點(diǎn)擊工程MainPage.xaml。打開界面編輯。
拖動(dòng)TextBlock控件到界面中,并在屬性欄中修改文本為HelloWorld。
也可以直接在xaml中添加如下字段。
<Grid> <TextBlock Horizontalalignment=Center"TextWrapping="W'rap"Text="Hello World” vertica1Alignment="Center" Fontsize="36"7> </Grid>
點(diǎn)擊編譯,運(yùn)行,即可看到程序在開發(fā)機(jī)平臺(tái)上的初步樣貌。
3、現(xiàn)在讓程序在ARM64平臺(tái)上運(yùn)行,選擇平臺(tái)ARM64
4、右鍵點(diǎn)擊工程->屬性,打開工程屬性頁(yè),設(shè)置遠(yuǎn)程調(diào)試的相關(guān)參數(shù)。
這里只需要配置計(jì)算機(jī)名(ARM64工控板地址),可以點(diǎn)開選擇<Locate…>
如果ARM64工控板的遠(yuǎn)程工具已打開,那么可以在彈出窗口中快速選擇配置好網(wǎng)絡(luò)地址。也可以手動(dòng)輸入ARM64工控板的地址。
5、ARM64工控板上遠(yuǎn)程工具啟動(dòng)后,即可點(diǎn)擊調(diào)試按鈕進(jìn)行調(diào)試。
3.1 啟動(dòng)ARM64工控板上遠(yuǎn)程工具
從目標(biāo)機(jī)Windows開始菜單,啟動(dòng)Remote Debugger(ARM64)
3.2 點(diǎn)擊Visual Studio調(diào)試按鈕,調(diào)試運(yùn)行程序
1、調(diào)試MFC程序示例
2、調(diào)試UWP程序示例
Windows 10 IoT下設(shè)置程序自啟動(dòng)和Windows一樣,以下介紹最簡(jiǎn)單的方式。
4.1 MFC程序自啟動(dòng)
1、找到ARM64工控板里要自啟動(dòng)的exe,右鍵點(diǎn)擊,創(chuàng)建快捷方式。
2、將快捷方式拷貝到ARM64工控板系統(tǒng)自啟動(dòng)目錄。在ARM64工控板系統(tǒng)里,按 Win + R 輸入 shell:startup,即可打開當(dāng)前用戶的啟動(dòng)文件夾?。
3、重啟測(cè)試程序是否自啟動(dòng)成功。
4.2 uwp程序自啟動(dòng)
1、在ARM64工控板系統(tǒng)里,按 Win + R 輸入 shell:appsfolder,打開系統(tǒng)應(yīng)用列表?,找到要自啟動(dòng)的App,右鍵點(diǎn)擊,創(chuàng)建快捷方式。
2、將快捷方式拷貝到ARM64工控板系統(tǒng)自啟動(dòng)目錄。在ARM64工控板系統(tǒng)里,按 Win + R 輸入 shell:startup,即可打開當(dāng)前用戶的啟動(dòng)文件夾?。
3、重啟測(cè)試程序是否自啟動(dòng)成功。
成都英創(chuàng)信息技術(shù)有限公司 028-8618 0660