开发环境
重要
这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。
可以在 Windows 11、Windows 10 周年更新(或更高版本)或运行 Ubuntu 24.04(预发行)、Ubuntu 22.04 LTS 或 Ubuntu 20.04 LTS 的 Linux 计算机上开发适用于 Azure Sphere 的应用程序。 如果使用 Windows 11,请使用 Azure Sphere SDK 的 22.02(或更高版本) 版本。
- 对于 Windows,请安装 Windows SDK。 可以使用 Visual Studio、Visual Studio Code 或命令行在 Windows 上生成、部署和调试应用程序。
- 对于 Linux,请安装 Linux SDK。 可以使用 Visual Studio Code 或命令行在 Linux 上生成、部署和调试应用程序。
Azure Sphere SDK 包含以下主要组件:
- Sysroots,其中包含用于编译和链接面向特定 API 集的应用程序的库、头文件和工具。
- 硬件定义,描述各种硬件设备上可用的硬件功能,并可用于在app-manifest.json文件中指定这些功能。
- CMakeFiles,用于定义 CMake 的 Azure Sphere 扩展。
- Azure Sphere 命令行接口 (CLI) 。
本教程将引导你生成和部署第一个应用程序。 我们还在 GitHub 上提供了一个示例存储库,其中包括演示如何对 Azure Sphere 硬件进行编程和使用 API 的示例应用程序。
Azure Sphere 应用程序运行时
Azure Sphere 应用程序运行时为高级应用程序开发提供了两组库:基本 API 和 applibs API。 基本 API 基于不以独占方式面向 Azure Sphere 设备的库,而 applibs API 专门面向 Azure Sphere 设备。 使用 Azure Sphere SDK 生成的高级应用程序针对这些接口进行编译和链接。 这些 API 无法用于支持实时的应用程序。
基本 API 的头文件安装在 Sysroots\API set\usr\include 文件夹的 Azure Sphere SDK 安装目录中。 applibs API 的头文件安装在 Azure Sphere SDK 安装目录的 Sysroots\API set\usr\include\applibs 文件夹中。
提示
POSIX C 标准标头位于两个文件夹中:Sysroots\API set\usr\include for General API headers,Sysroots\API set\usr\include\sys for low-level,依赖于系统的 API 标头。 建议使用常规 API。
工具
Azure Sphere SDK 包括 用于管理设备、开发和部署应用程序以及使用云服务的 Azure Sphere CLI 。
CMake 以及轻型 Ninja 生成实用工具为 Azure Sphere 应用程序提供生成协调。 如果使用 Visual Studio,系统会自动安装 CMake 和 Ninja。 如果使用 Visual Studio Code 或 Azure Sphere CLI,则必须在 Windows 或 Linux 上安装它们。
Visual Studio 和 Visual Studio Code 都有 Azure Sphere 扩展,可简化 Azure Sphere 应用程序开发。 使用这些扩展,可以直接从 IDE 生成、调试、测试和部署 Azure Sphere 应用程序。 这两个扩展都完全支持 Azure Sphere 的 CMake 工具。
容器
Azure Sphere 提供一个容器,用于在独立 Linux 环境中打包 SDK。 通过将容器用于预定义的生成环境,可以避免安装(或卸载,然后重新安装)正确的 SDK 生成环境的步骤。 可以修改生成环境以满足自己的需求,并将该环境同时复制到所有主机,结果统一。 有关详细信息,请参阅 使用容器生成 Azure Sphere 应用 。 还可以使用容器作为持续集成方案的一部分,每当对基础代码进行更改时,生成管道(如 GitHub Actions 或 Azure Pipelines)会自动重新生成应用程序。 有关详细信息,请参阅 向容器生成 添加持续集成。
什么是容器?
容器是其自己的轻型环境附带的可移植包,这些环境在主机的内核上运行。 容器是轻量级的,因为它们使用共享层。 这些层可以是操作系统或共享应用程序的共享切片。 层可避免虚拟机的开销,该虚拟机包含整个操作系统和所有关联的应用程序。 共享允许容器较小且快速启动。
可以从容器注册表(如 Microsoft 工件注册表(MAR)下载容器。
容器将哪些容器引入 Azure Sphere
Azure Sphere SDK 生成环境的Microsoft容器提供预制的开发环境。 容器提供以下内容:
- 当前 Azure Sphere 版本的 Ubuntu Linux 版本
- 适用于 Linux 的 Azure Sphere SDK 的当前版本
- SDK 所需的其他工具,如 CMake 和 Ninja
Azure Sphere 使用使用 Dockerfile 文本文件配置的 Docker 容器。 可以创作使用基本容器映像创建用于生成 Azure Sphere 应用程序的自定义容器的 Dockerfiles。 如果自定义容器不在主机上,则运行自定义容器会下载最新的基础映像,根据需要生成新的自定义容器,生成指定的应用程序,然后退出。 然后,可以将应用程序生成的输出复制到安装了 Azure Sphere SDK 的主机,并将应用程序旁加载到设备。 自定义生成容器通常不是以交互方式使用的,但例如,诊断生成问题。