Raspberry pi 上部署調試.Net的IoT程序
樹莓派(Raspberry pi)是一款基于ARM 架構的單板計算機(Single Board Computer),可以運行各種 Linux 操作系統,其官方推薦使用的 Raspberry Pi OS 也是基于Debian開發的。因其低能耗、便攜小巧、GPIO等特性,可用于IoT應用開發。.NET可在各種平臺和體系結構上運行,并提供了 IoT 庫支持與傳感器、模數轉換器、舵機、RFID這些專用硬件設備交互,使 .NET在樹莓派運行 IoT 應用成為可能。
部署.NET的IoT程序
通常情況,在本機開發調試是最佳選擇,但是樹莓派的低能耗也制約了其性能,例如本文中相關操作是在 Raspberry Pi Zero 2 W 上進行的,其配備的Broadcom BCM2710A1 是一款四核 64 位 SoC(Arm Cortex-A53 @ 1GHz)的CPU,內存為512MB,在上邊安裝IDE編碼和調試不太現實,因此需要在開發計算機上開發應用,然后將應用部署到樹莓派上進行遠程調試。
發布程序
完成程序編碼后,在項目名稱右鍵菜單中選擇“發布”,然后在發布配置窗中選擇目標為文件夾,然后下一步特定目標依舊選擇文件夾。

完成后進行配置文件設置。配置選擇Debug|Any CPU ;目標框架根據實際情況選擇,這里選擇了 net8.0 ;部署模式可以選擇依賴框架或者獨立,由于遠程調試時需要在樹莓派上安裝 .NET 運行時,所以這里選擇依賴框架,可以減少程序大??;前邊提到樹莓派是 ARM 架構的,最新的操作系統也是64位的,所以目標運行時選擇 linux-arm64 。

配置完成后,點擊“發布”按鈕,程序會發布到配置的目標位置。
部署到樹莓派
樹莓派上安裝配置.NET
首先使用 dotnet-install 腳本 在樹莓派上安裝 .NET。
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin --channel LTS
--channel參數是指定安裝的源通道。 可能的值為:
STS:最新的標準期限支持版本。LTS:最新的長期支持版本。- 表示特定版本的由兩部分構成的 A.B 格式版本(例如
3.1或8.0)。- A.B.Cxx 格式的三部分版本,表示特定的 SDK 版本(例如 8.0.1xx 或 8.0.2xx)。 自 5.0 版本起可用。
然后將 DOTNET_ROOT 環境變量和 dotnet 目錄添加到 $PATH
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
source ~/.bashrc
部署.NET程序
Windows 10 (build 1809)之后的版本具有 OpenSSH,其中包括預安裝的 scp。可以使用scp命令把發布的文件拷貝到樹莓派指定目錄:
scp -r F:\Source\git\mfrcc522Sample\mfrcc522Sample\bin\Debug\net8.0\publish\linux-arm64 john@192.168.3.58:/home/john/Downloads/MFRC522
scp命令格式如下:
scp [選項] [[用戶@]源主機:]文件路徑 [[用戶@]目標主機:]文件路徑
常用選項包括:
-C:允許壓縮數據,提高傳輸效率。-p:保留文件的修改時間、訪問時間和權限。-r:遞歸復制整個目錄。-q:靜默模式,不顯示傳輸過程中的信息。-v:詳細模式,顯示傳輸過程中的詳細信息。
進入程序目錄,給程序添加可執行權限后運行程序
cd Downloads/MFRC522/linux-arm64
chmod 755 mfrcc522Sample
./mfrcc522Sample

遠程調試
程序在樹莓派上運行后,在開發電腦上打開visual Studio,選擇“調試”>“附加到進程…”,或者用快捷鍵ctrl+alt+p 打開"附加到進程"窗口,連接類型選擇"SSH",連接目標輸入樹莓派的ip,其格式為<username>@<IP>,點擊查找按鈕連接上樹莓派后,進程列表會顯示所有進程,選中目標進程。右下角代碼類型下拉框選擇”托管(.NET Core for unix)代碼“,點擊“附加”就可以開始遠程調試了。

接下來就可以遠程調試用戶代碼了

調試IoT庫源碼
在調試過程中出現了IoT庫報的錯誤,通過"F12"可以查看到源碼, 想進一步調試IoT的代碼,則需要啟用源碼調試。步驟如下:
-
在“工具”(或“調試”)>“選項”>“調試”>“常規”下,確保:
- 取消選擇“啟用僅我的代碼”。
- 選擇“啟用源鏈接支持”。

-
在“工具”(或“調試”)>“選項”>“調試”>“符號”下,選擇“Microsoft 符號服務器”。

調試過程中可能遇到斷點處顯式紅心圓和警告提示:“當前不會命中斷點。還沒有為該文檔加載任何符號。”

這時需要在導航欄選擇“調試>Windows>模塊”,檢查模塊是否已加載,如果顯示沒有加載符號,右鍵單擊尚未加載符號的模塊,點擊”加載符號“,這時斷點處會顯示紅色實心圓。


浙公網安備 33010602011771號