Azure Sphere 开发,第一部分:入门





5.00/5 (4投票s)
本文介绍如何配置硬件和软件以支持 Azure Sphere 应用程序的开发。
引言
物联网(IoT)这个词指的是将传感器和医疗设备等嵌入式系统连接到互联网的技术。有些人拥抱物联网,认为它是使嵌入式系统更易于访问的方式。另一些人则对物联网感到担忧,并担心它可能导致普遍的监视。还有些人认为物联网只是一个恼人的流行词,指的是永远也无法实现的虚无缥缈的东西。
但微软的物联网技术并非空中楼阁。微软的云服务 Azure 提供了名为“IoT 中心”的资源,可用于在嵌入式系统之间传输数据。这些中心还可以将设备数据传输到其他 Azure 资源。
物联网的安全性是一个主要问题。设备通常部署在偏远地区,因此入侵者可能会篡改它们或用不可信的复制品替换它们。为防止这种情况发生,微软开发了 Azure Sphere,这是一种运行在嵌入式系统上的操作系统,能够安全地与 Azure IoT 中心通信。
好消息是 Azure Sphere 的开发工具可以免费下载。坏消息是设置开发环境很复杂。本文旨在介绍在开始编写和部署 Azure Sphere 应用程序之前需要执行的任务。应用程序开发将在后续文章中讨论。
1. 硬件要求
你无法像安装 Windows 或 Linux 那样安装 Azure Sphere。Azure Sphere 只能安装在经过微软认证的设备上。要使设备获得认证,它不能允许开发人员卸载或篡改 Azure Sphere。一旦安装了 Azure Sphere,就无法将其移除。
在我写作(2021 年 10 月)时,唯一经过认证的设备是联发科的 MT3620。MT3620 包含一个用于通用计算的 Cortex-A7 处理器以及两个 ARM Cortex-M4 微控制器内核,用于访问设备的外部设备。这些外部设备包括 8 个模数转换控制器、12 个脉宽调制 (PWM) 输出和 72 个通用输入/输出 (GPIO) 引脚。
要为 MT3620 编写代码,你需要一个合适的开发板。据我所知,最受欢迎的开发板是 Seeed Studio 的 MT3620 开发套件 和 Avnet 的 MT3620 入门套件。我正在 Avnet 板上测试我的应用程序,下图显示了它的样子。
要为该板构建应用程序,你需要安装 Azure Sphere 软件开发工具包 (SDK) 和一些其他工具。下一节将对此进行说明。
2. 软件要求
为 Azure Sphere 构建应用程序是一个复杂的过程,需要多个软件包涉及多个步骤。本节介绍如何安装 Azure Sphere 软件开发工具包 (SDK)、CMake、Ninja 以及 Visual Studio Code 的 Azure Sphere 扩展。
2.1 Azure Sphere SDK
最重要的开发工具是 Azure Sphere 软件开发工具包 (SDK),可以 在此处 下载。运行可执行文件后,第一页会要求你同意许可条款。第二页有一个“安装”按钮,用于启动安装过程。点击此按钮后,安装程序将安装多个组件,包括 Azure Sphere 命令行界面 (CLI)。
你可以通过打开命令提示符并输入 azsphere
来验证安装是否成功。如果显示命令列表,则表示安装成功。
成功安装后,将在你的 C:\Program Files (x86) 目录下创建一个名为 Microsoft Azure Sphere SDK 的文件夹。此文件夹包含两个重要的子文件夹:Tools 和 Sysroots。Tools 子文件夹提供了重要的实用程序,例如 azsphere.exe,我们将大量使用它。
Sysroots 文件夹包含构建应用程序所需的实用程序。例如,如果你查看 Sysroots\11\tools\gcc,你会找到以 arm-poky-linux-musleabi
开头的工具。这些工具用于编译和链接 MT3620 上的 Cortex-A7 处理器的应用程序。下一篇文章将介绍如何使用这些工具构建和部署应用程序。
2.2 CMake
CMake 是一个用于自动化软件构建的流行工具。Azure Sphere SDK 依赖 CMake 来管理 Azure Sphere 应用程序的编译。要下载和安装 CMake,你需要执行六个步骤:
- 打开浏览器并访问 CMake 主页。
- 点击标题为“下载最新版本”的链接。
- 向下滚动并点击“Windows x64 安装程序”的链接。
- 启动安装程序 (*.msi) 并接受许可。
- 确保将
CMake
添加到PATH
环境变量。 - 点击“安装”按钮安装
CMake
。
安装完成后,打开命令提示符并输入 cmake
命令。如果此命令显示 CMake
的使用说明,则表示安装成功。如果无效,请将包含 CMake
可执行文件的 bin 文件夹添加到你的 PATH
环境变量。
2.3 Ninja
Ninja 通过分析系统依赖项并尽早做出决策来加速构建过程。Azure Sphere 构建过程需要 Ninja,你可以从其 Github 页面 下载压缩的可执行文件。
右键单击 ninja-win.zip 的链接并将其保存到你的系统。解压缩该存档,并将 ninja.exe 放在一个你记住其位置的文件夹中。然后更新你的 PATH
环境变量,使其包含包含 ninja.exe 的文件夹。
2.4 Visual Studio Code 扩展
微软不提供用于编辑和部署 Azure Sphere 应用程序的专用应用程序。但是,你可以为 Visual Studio 或 Visual Studio Code 添加扩展,以简化 Azure Sphere 的开发。或者,你也可以使用命令行界面来管理整个构建过程。
Visual Studio Code 是免费且流行的,因此本文将重点介绍使用 Visual Studio Code 来编辑和部署 Azure Sphere 项目。如果你尚未安装,可以从其 主页 下载安装程序。
安装 Visual Studio Code 后,你需要访问 扩展市场,该市场提供对 Visual Studio Code 扩展的访问。在搜索框中输入 **Azure Sphere**,按 **Enter**,然后单击标题为 **Azure Sphere** 的条目。然后单击标记为“安装”的绿色框。这将打开你系统上的 Visual Studio Code 并安装扩展。
3. 开发板配置
此时,你应该已经安装了所有必需的软件工具,并将合适的开发板连接到你的系统。在部署应用程序之前,你需要配置开发板的操作。这需要在命令提示符(或 Visual Studio Code 终端)中输入几个命令,因此本节将首先讨论 Azure Sphere 支持的命令。
3.1 命令
要配置开发板,你需要使用命令行界面 (CLI)。每个命令都以 azsphere
开头,后面跟着命令名称和参数。例如,如果你想添加一个用户,命令名称是 register-user
。如果用户的电子邮件地址是 billg@microsoft.com,则完整命令如下所示:
azsphere register-user --new-user billg@microsoft.com
共有十六个不同的命令可用。表 1 列出了它们并提供了每个命令的描述。
命令名称 | 描述 |
ca-certificate | 管理当前租户的证书颁发机构 (CA) 证书 |
device | 管理设备、应用程序、映像和网络连接 |
device-group | 创建和管理设备组 |
feedback | 向 Azure Sphere 开发团队发送反馈 |
get-support-data | 访问日志文件 |
hardware-definition | 从硬件定义创建头文件 |
图像 | 管理磁盘上的 Azure Sphere 映像 |
image-package | 创建和显示映像包 |
login | 登录到 Azure Sphere 安全服务 |
logout | 从 Azure Sphere 安全服务注销 |
product | 管理产品 |
register-user | 向 Azure Sphere 安全服务注册用户 |
role | 管理租户中的角色 |
show-user | 显示当前用户的电子邮件地址 |
show-version | 显示 SDK 版本 |
tenant | 管理租户 |
在这些文章中,我们不会使用所有命令,甚至不会使用大多数命令。但了解如何执行它们以及它们完成的操作类型很重要。
3.2 开发板配置
首次插入开发板时,你需要执行两项重要任务。你需要声明该开发板,然后设置网络。
声明开发板
每个经过认证的设备在编程之前都必须链接到用户帐户。更确切地说,经过认证的设备必须链接到与用户帐户关联的租户。此过程称为声明开发板。
一旦设备与帐户的租户链接,它就不能被另一个帐户编程。这意味着购买二手的 MT3620 开发板可能不是一个好主意。
声明开发板需要三个步骤:
- 使用你的帐户登录(如有必要,请先注册)。
- 为该帐户创建一个租户。
- 将设备链接到租户。
第一步最简单。如果你已经拥有 Azure Sphere 帐户,可以通过输入 azsphere login
来登录。否则,你需要通过输入 azure register-user
后跟 --new-user
和帐户地址来注册。在这两种情况下,都会打开一个浏览器并要求进行身份验证。
根据微软的文档,租户是“元数据、功能组织以及有关映像、部署、用户和角色的信息聚合点”。一个帐户可以有多个租户,但在此讨论中,你只需要一个。你可以使用 azsphere tenant create
创建新租户,该命令接受 --name
标志。例如,以下命令创建一个名为 mytenant
的租户:
azsphere tenant create --name mytenant
在租户与当前帐户关联后,你可以使用以下命令声明开发板:
azsphere device claim
默认情况下,用户和租户被分配为管理员角色,这意味着他们对设备拥有完全访问权限。可以使用 azsphere role
命令配置不同的角色。
如果帐户有多个租户,则必须先选择其中一个才能声明开发板。这通过 azsphere tenant select
来实现。
网络配置
声明开发板后,你就可以向其部署应用程序并配置其操作。一项重要的配置任务是通过 WiFi 设置网络访问。
可以使用 azsphere device wifi add
来设置开发板的网络访问,该命令需要两个信息:网络的名称和密码(密钥)。例如,假设你想让开发板访问一个名为 LAN of the Free
的网络,其密钥为 12345
。你可以使用以下命令进行配置:
azsphere device wifi add --ssid "LAN of the Free" --psk "12345"
建立开发板连接需要一两分钟时间。之后,你可以使用 azsphere device wifi show-status
命令检查 WiFi 连接。
安装完所需工具并配置好开发板后,就可以开始编写和部署应用程序了。在下一篇文章中,我将介绍 Azure Sphere 开发的基础知识。
历史
- 2021 年 10 月 31 日:提交发表