Apprendre ensemble Sphère Azure (3) - Développement local et le débogage de programme avancé, après avoir téléchargé l'image pour déployer nuage à l'appareil

Dans cet article, vous apprendrez:

Boîtier: commande d'appel GPIO LED Strobe

Développement local et le débogage -> Publier sur le nuage -> déployé à partir du nuage à l'appareil

En premier lieu, par le développement VS Code et de débogage des exemples d'applications avancées Azure Sphere

       Cette procédure appelle la GPIO de commande de flash LED

En second lieu, déployé à partir du nuage

       Créer un produit;

       Configurez le périphérique en tant que « les applications basées sur le cloud pour accepter les mises à jour »;

       Créer un déploiement;

       déploiement de déclenchement;

       Reconfigurer le périphérique à « activer le débogage »;

 

Tutoriel vidéo:

Vous pouvez regarder une vidéo expliquant la station B: https://www.bilibili.com/video/av98276348/

Ou sur le site pour regarder:

 

explication Photo:

 

 

En premier lieu, par le développement VS Code et de débogage des exemples d'applications avancées Azure Sphere

Se référant à la documentation officielle de Microsoft:

https://docs.microsoft.com/zh-cn/azure-sphere/install/qs-blink-vscode

Code Echantillon utilisé:

https://github.com/Azure/azure-sphere-samples

 

1. Démarrez code Visual Studio et ouvrez le dossier de Azure Sphère HelloWorld_HighLevelApp exemple dépôt.  Ne pas ouvrir le dossier de niveau supérieur.  VS code une seule fois pour générer une solution.  Si l'affichage de code VS une boîte de dialogue indiquant CMake kits non disponibles, sélectionnez  Do not use a kit. 

img-f313f8e3-ddf8-464c-8139-b4954074b9d8.png

2. modifier le code exemple de fichier de configuration:

  • Ouvert .vscode / settings.json.

  • Mise à jour variables AZURE_SPHERE_TARGET_HARDWARE_DEFINITION_DIRECTORY CMake pour pointer vers la définition du dispositif matériel cible qui contient un répertoire.  Microsoft fournit une définition du matériel cible dans les exemples catalogue de matériel Azure Sphère des voûtes.  Par exemple: <path-to-cloned-samples>/Hardware/mt3620_rdb

  • Assurez -vous AZURE_SPHERE_TARGET_HARDWARE_DEFINITION CMake des points variables à la définition du matériel cible répertoire de fichiers JSON.  Pour l'exemple d' application, s'il vous plaît utiliser  sample_hardware.json.

img-c285c8b7-779e-4d70-890a-b0106b70ef7a.png

 

3. Appuyez sur F5 pour déboguer le projet.  Si vous ne construisez pas le projet avant, ou si le fichier a changé et doit être régénéré, le code VS construira le projet avant de commencer le débogage.

4. Attendez quelques minutes pour le code Visual Studio compiler une application, créez un package d'image, le déployer sur la plaque et le démarrer en mode débogage.

5. Après un bref délai, devrait voir la LED clignote.

img-c63904c1-6032-4345-81fc-c0966850bdf4.png

6. Situé dans main.c un emplacement points d'arrêt et étape par l'application afin que vous puissiez parcourir VSCode fonctionnalités de débogage de Sphère Azure.

 

En second lieu, déployé à partir du nuage

 1. Créer des produits

Incorporé dans le dispositif d'identification de produit relié à Azure Sphère exécuter des fonctions spécifiques de MCU.  En tant que fabricant, vous pouvez créer un produit pour chaque type de périphérique connecté (comme un lave-vaisselle ou du café).  Chaque produit a un GUID unique locataires et ne peut pas être changé.

Chaque dispositif de raccordement présente un seul produit, mais un produit unique peut être associé à plusieurs appareils.  Chaque produit doit avoir un nom unique et une description des locataires.  Nom du produit et décrit afin de distinguer d' une manière lisible par un utilisateur avec d' autres produits.  Vous pouvez modifier le nom et la description du produit.

azsphere Créer --name MyProduct --description « Mon premier produit »

 

Cette commande crée automatiquement un groupe de périphériques par défaut pour ce nouveau produit:

  • Développement (développement) : Groupe de développement des objectifs pour les développeurs au cours du développement à côté de charger l'application à utiliser.  Par défaut, ce groupe appareil reçoit la source de détail OS, mise à jour de l' application est désactivée.  Pour tester différentes versions OS, vous pouvez changer le groupe OS par défaut.

  • Essais sur le terrain (Field, le test) : jeu d'essai sur le terrain est destiné à être utilisé dans les développeurs de laboratoire ou d' essais sur le terrain dans les équipements de test.  Par défaut, cette source de détail appareil de réception groupe OS et toutes les mises à jour de l' application.

  • Production (production de) : Groupe de production pour l'équipement de production.  Par défaut, cette source de détail appareil de réception groupe OS et toutes les mises à jour de l' application.  Cela s'applique à un ensemble particulier d'équipements de production.

  • L' évaluation des tests de terrain OS (OS champ, l'évaluation Test) : L' équipe d'évaluation essai sur le terrain OS est destiné à des essais en laboratoire ou sur le terrain pour vérifier la nouvelle Azure Sphère OS et des applications sur l'appareil est compatible avec les développeurs.  Par défaut, le dispositif de source reçoit une évaluation de détail du système d'exploitation de ce groupe et toutes les mises à jour de l' application.

  • La production d' évaluer OS (évaluation de la production OS) : L'évaluation est destinée à la production d'OS vérifier le nouveau système d' exploitation Azure Sphere et les applications de productivité sont compatibles.  Par défaut, le dispositif de source reçoit une évaluation de détail du système d'exploitation de ce groupe et toutes les mises à jour de l' application.

其中,开发设备组会禁用基于云的更新。 其他组支持基于云的更新。

产品名称在租户中必须唯一,并且不区分大小写。 如果名称包含空格,则在命令中将其用双引号括起来。

如下图,生成了5个设备组:

img-fbc4385b-a066-4644-B492-bdfb1a1320dd.png

 

2.配置设备为“接受基于云的应用程序更新”

之前的步骤中,设备处于“开发状态”,开发状态的设备无法从云端接收更新,所以,此时需要先将设备配置为“接受基于云的应用程序更新”。

使用 azsphere device enable-cloud-test 准备设备 :

azsphere device enable-cloud-test --productname "MyProduct"

 

此命令:

  • 禁用 SDK 将应用程序加载到设备上的功能,以便只能加载基于云的应用程序

  • 根据需要将设备分配给产品

  • 将设备分配到启用基于云的应用程序更新的设备组 如果未指定设备组,则会将设备分配给其产品的默认“现场测试(Field Test)”设备组。

Azure Sphere 安全服务使用设备组和产品来确定是否在设备上更新应用程序

img-4ea65de4-2b14-4c5d-a1e3-6a5299c9cc89.png

 

此时可以通过如下命令查询Field Test group 的信息:

azsphere device-group show --devicegroupid “Field Group ID”
其中Field Group ID 在创建Product后显示过

img-7d657b78-9da3-414f-8a33-37e41fd02e8b.png

 

3.上传映像并创建部署

此步骤可以通过一个命令执行,也可以分部执行,

本文中,分布执行,1. 上传;2. 创建部署

1.上传:

azsphere image add --filepath Path\HelloWorld_HighLevelApp.imagepackage --temporary

本例中Path见下图所示:

参数 说明
-t, --temporary 将映像包标记为临时。 此参数适合在生产过程中使用。

 

img-f6158c94-d785-4e2e-aef2-117db28c77c3.png

2.部署规定了某个产品的某个产品组部署某个映像。

 azsphere device-group deployment create 命令将创建部署 。

有如下两种方案:本例中选择第二种方案,其中 imageid为 上一步 上传映像后返回值中的Image ID:

azsphere device-group deployment create --devicegroupname "Field Test" --productname MyProduct --filepath c:\temp\blink.imagepackage

 

azsphere device-group deployment create --devicegroupname "Field Test" --productname MyProduct --imageid  "例1bd8f03f-297e-43ab-819b-d2b0d05d0230"注意,映像ID 不带引号

img-293b6f4a-5d85-4f59-a0ed-363fa59f10db.png

 

  4. 触发部署

若要立即触发下载,请在 Azure Sphere 设备上按“重置”按钮 。 应用程序应在几分钟内下载并启动,然后应看到 LED 开始闪烁。

可通过如下命令查看部署结果:

azsphere device show-deployment-status

img-42579116-0c20-46ea-9954-a18f4b579729.png

 

 

5. 重新配置设备为“启用调试”;

 

À ce stade, si vous utilisez la touche F5 pour déboguer dans le code VS à l'air libre, l'erreur suivante est signalée, car le groupe « Test Filed » est pas sur le débogage que le débogueur ne peut pas être démarré à partir de l'ordinateur Windows local, par défaut, l'appareil reçoit ce groupe source de détail OS et toutes les mises à jour de l'application.

img-4eaa8d1f-2497-4d22-855b-01c8c1d76d89.png

Si vous voulez commencer le débogage, vous devez revenir à « développer groupe de périphériques », exécutez la commande suivante:

Dispositif azsphere enable-développement

img-d69c6eab-df6b-4be0-8ab5-0e6f8f67dde7.png

 


Je suppose que tu aimes

Origine blog.51cto.com/10117438/2480976
conseillé
Classement