Raspberry pi 上部署调试.Net的IoT程序

打印 上一主题 下一主题

主题 906|帖子 906|积分 2718

树莓派(Raspberry pi)是一款基于ARM 架构的单板计算机(Single Board Computer),可以运行各种 Linux 操作系统,其官方推荐使用的 Raspberry Pi OS 也是基于Debian开发的。因其低能耗、便携小巧、GPIO等特性,可用于IoT应用开发。.NET可在各种平台和体系结构上运行,并提供了 IoT 库支持与传感器、模数转换器、舵机、FRID这些专用硬件装备交互,使 .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。
  1. 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
  1. echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
  2. echo 'export PATH=$PATH:$HOME/.dotnet' >> ~/.bashrc
  3. source ~/.bashrc
复制代码
部署.NET程序

Windows 10 (build 1809)之后的版本具有 OpenSSH,其中包括预安装的 scp。可以使用scp命令把发布的文件拷贝到树莓派指定目录:
  1. scp -r F:\Source\git\mfrcc522Sample\mfrcc522Sample\bin\Debug\net8.0\publish\linux-arm64 john@192.168.3.58:/home/john/Downloads/MFRC522
复制代码
scp命令格式如下:
  1. scp [选项] [[用户@]源主机:]文件路径 [[用户@]目标主机:]文件路径
复制代码
常用选项包括:

  • -C:允许压缩数据,进步传输效率。
  • -p:保存文件的修改时间、访问时间和权限。
  • -r:递归复制整个目录。
  • -q:静默模式,不显示传输过程中的信息。
  • -v:详细模式,显示传输过程中的详细信息。
进入程序目录,给程序添加可执行权限后运行程序
  1. cd Downloads/MFRC522/linux-arm64
  2. chmod 755 mfrcc522Sample
  3. ./mfrcc522Sample
复制代码

远程调试

程序在树莓派上运行后,在开发电脑上打开visual Studio,选择“调试”>“附加到历程…”,或者用快捷键ctrl+alt+p 打开"附加到历程"窗口,连接范例选择"SSH",连接目标输入树莓派的ip,其格式为@,点击查找按钮连接上树莓派后,历程列表会显示所有历程,选中目标历程。右下角代码范例下拉框选择”托管(.NET Core for unix)代码“,点击“附加”就可以开始远程调试了。

接下来就可以远程调试用户代码了

调试IoT库源码

在调试过程中出现了IoT库报的错误,通过"F12"可以查看到源码, 想进一步调试IoT的代码,则必要启用源码调试。步骤如下:

  • 在“工具”(或“调试”)>“选项”>“调试”>“常规”下,确保:

    • 取消选择“启用仅我的代码”。
    • 选择“启用源链接支持”。


  • 在“工具”(或“调试”)>“选项”>“调试”>“符号”下,选择“Microsoft 符号服务器”。

调试过程中可能碰到断点处显式红心圆和警告提示:“当前不会掷中断点。还没有为该文档加载任何符号。”

这时必要在导航栏选择“调试>Windows>模块”,检查模块是否已加载,假如显示没有加载符号,右键单击尚未加载符号的模块,点击”加载符号“,这时断点处会显示红色实心圆。

参考


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表