

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Qualification de votre planche
<a name="freertos-qualification"></a>

## Conditions préalables
<a name="prerequistes-qualification"></a>

Configuration matérielle requise :

La carte de développement basée sur un microcontrôleur sur laquelle s'exécutent les bibliothèques FreeRTOS doit avoir AWS IoT  :
+ Capacité de connectivité Ethernet, Wi-Fi ou cellulaire

Configuration logicielle requise :

L'[organigramme de portage](https://docs.aws.amazon.com/freertos/latest/portingguide/porting-chart.html) du guide de *portage de FreeRTOS identifie les bibliothèques FreeRTOS* requises pour toute carte de développement basée sur un AWS IoT microcontrôleur. Le sous-ensemble minimal est le suivant :
+ Noyau FreeRTOS
+ Noyau MQTT
+ AWS IoT Over-The-Air mise à jour (OTA)

Exigences relatives aux essais :
+ Vérifiez l'implémentation de la plate-forme matérielle spécifique APIs requise par les bibliothèques FreeRTOS par rapport au référentiel de GitHub tests [défini](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests) à l'aide AWS IoT Device Tester de FreeRTOS. Consultez [Vérifiez les bibliothèques FreeRTOS portées AWS IoT Device Tester à l'aide de (IDT)](#qualifying-your-device-idt).
+ Vérifiez l'interopérabilité à l' AWS IoT Core aide de Device Advisor. Voir l'étape 4 de[Vérifiez les bibliothèques FreeRTOS portées AWS IoT Device Tester à l'aide de (IDT)](#qualifying-your-device-idt).

## Recommandations
<a name="recommendations-qualification"></a>

Pour améliorer la sécurité, nous recommandons ce qui suit.
+ Pour éviter qu'une compromission hors ligne ou temporaire ne devienne permanente, stockez les secrets et les informations d'identification dans une racine de confiance matérielle qui résiste aux attaques physiques, telle qu'un [élément sécurisé](https://wikipedia.org/wiki/Secure_element) ou une enclave sécurisée.
+ Pour atténuer le risque d'[usurpation](https://wikipedia.org/wiki/Spoofing_attack) du réseau et d'[man-in-the-middle](https://wikipedia.org/wiki/Man-in-the-middle_attack)attaques susceptibles d'entraîner la divulgation non autorisée de données, utilisez un [véritable générateur de nombres aléatoires (TRNG)](https://wikipedia.org/wiki/Hardware_random_number_generator) pour les bibliothèques FreeRTOS qui implémentent des protocoles tels que DHCP, DNS, TCP/IP et TLS. Pour plus d'informations, consultez la page 50 de la [Recommandation pour la génération de nombres aléatoires à l'aide de générateurs de bits aléatoires déterministes](https://csrc.nist.gov/publications/detail/sp/800-90a/rev-1/final) (NIST SP 800-90A). 

## Étapes de qualification
<a name="qualifying-your-device"></a>

### Vérifiez les bibliothèques FreeRTOS portées AWS IoT Device Tester à l'aide de (IDT)
<a name="qualifying-your-device-idt"></a>

1. Portez les bibliothèques FreeRTOS sur votre tableau. Consultez le guide de [portage de FreeRTOS](https://docs.aws.amazon.com/freertos/latest/portingguide/) pour obtenir des instructions.

1. Créez un projet de test et transférez les tests requis depuis le référentiel [ GitHub FreeRTOS-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests). Appelez la tâche du lanceur de tests [ RunQualificationTest](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests/blob/a8cafefc714cdbb4ee1d0f97c92e9c4cc75059fd/src/qualification_test.c#L52). 
**Note**  
Pour une bonne expérience de développement, il est recommandé de porter les bibliothèques FreeRTOS et d'exécuter le groupe de test individuel correspondant localement à l'aide d'un IDE pour vérifier l'intégration.  
La tâche du lanceur de tests s'exécute dans un projet de test individuel ou dans votre projet d'application de démonstration.

1. Créez un `manifest.yml` fichier répertoriant toutes les dépendances utilisées dans vos qualifications. Les dépendances incluent les bibliothèques FreeRTOS et les référentiels de test. Consultez [Instructions relatives au fichier manifeste FreeRTOS](afq-checklist-manifest-instr.md) pour plus de détails. 
**Note**  
`manifest.yml`Il est utilisé par IDT pour trouver les dépendances requises pour les contrôles d'intégrité par rapport à des versions spécifiques de la bibliothèque FreeRTOS, et pour configurer le projet de test afin de créer, flasher et exécuter les binaires de test.   
IDT n'impose pas de structure de projet spécifique et utilise le chemin de référence inclus dans le `manifest.yml` fichier.

1. <a name="qualifying-your-device-da"></a>Vérifiez AWS IoT l'interopérabilité à l'aide de Device Advisor.

   1. Créez un projet de démonstration qui utilise les mêmes composants, y compris les bibliothèques FreeRTOS, le portage et les tâches d'intégration telles que OTA utilisés dans les tests ci-dessus.

      Pour être qualifiée, l'application de démonstration doit fournir les fonctionnalités suivantes :
      + Effectuez une publication MQTT et abonnez-vous à un sujet.
      + Effectuez des mises à jour OTA.
      + Créez un bootloader qui prend en charge les mises à jour OTA. Utilisez votre propre bootloader ou [MCUBoot](https://freertos.org/mcuboot/). Voir [Labs-FreeRTOS-Plus-](https://github.com/FreeRTOS/Lab-Project-FreeRTOS-MCUBoot). MCUBoot
**Note**  
Le référentiel [FreeRTOS](https://github.com/FreeRTOS/FreeRTOS) contient des GitHub exemples préconfigurés illustrant des tâches individuelles. Il existe également une [démo d'agent CoreMQTT](https://github.com/FreeRTOS/coreMQTT-Agent-Demos) intégrée qui intègre à la fois des tâches CoreMQTT et OTA. Consultez également FreeRTOS Featured IoT Integrations à l'adresse. [Exemples de projets de qualification](examples-qualification.md) 

   1. AWS IoT Device Tester exécutera votre démo avec [AWS IoT Device Advisor](https://docs.aws.amazon.com/iot/latest/developerguide/device-advisor.html). Les scénarios de test Device Advisor suivants sont requis pour la qualification.  
**Cas de test**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/freertos/latest/qualificationguide/freertos-qualification.html)

1. Exécutez les tests depuis AWS IoT Device Tester et générez un rapport de test.
   + IDT configure les tests, effectue une compilation et le flash sur votre carte automatiquement. Pour activer cela, vous devez configurer IDT pour exécuter les commandes de compilation et de flash pour votre appareil dans le `userdata.json` fichier. Voir [Configurer les paramètres de compilation, de flash et de test](https://docs.aws.amazon.com/freertos/latest/userguide/lts-qual-steps.html#lts-cfg-dt-ud) dans le guide de l'[utilisateur d'IDT pour FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html).
   + Fournissez les fonctionnalités prises en charge par l'appareil dans `device.json` le fichier, telles que le type de connectivité, l'algorithme de cryptographie, la méthode de fourniture des clés pour IDT afin de déterminer les tests applicables à exécuter. Voir [Créer un pool d'appareils dans IDT pour FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/lts-qual-steps.html#lts-cfg-dt-dp) dans le guide de l'utilisateur d'[IDT](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html) pour FreeRTOS. 
   + Créez et configurez votre AWS compte pour IDT afin de créer les ressources cloud requises. Voir [Créer et configurer un AWS compte pour IDT afin de créer les ressources cloud requises](https://docs.aws.amazon.com/freertos/latest/userguide/lts-qual-steps.html#lts-cfg-aws-afr) dans le guide de l'utilisateur d'[IDT pour FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/device-tester-for-freertos-ug.html). 

### Préparer la soumission
<a name="qualifying-your-device-preparation"></a>

1. Rédigez un **guide de démarrage** pour exécuter le projet de démonstration MQTT ou OTA sur votre appareil. Consultez [la section Création d'un guide de démarrage avec FreeRTOS pour votre appareil pour obtenir des instructions](https://docs.aws.amazon.com/freertos/latest/qualificationguide/afq-gsg.html).

1. Fournissez un document de modélisation des menaces vérifiant que vous atténuez les risques définis dans la [modélisation des menaces pour le chargeur de démarrage du AWS IoT périphérique](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-ota.html#afr-bootloader) décrite dans la section Portage de [la bibliothèque OTA du guide de portage](https://docs.aws.amazon.com/freertos/latest/portingguide/afr-porting-ota.html) de *FreeRTOS*. Ce document doit être téléchargé en tant que ressource de support lorsque vous soumettez votre appareil dans [APN Partner Central](https://partnercentral.awspartner.com). 

1. Fournissez un référentiel public pour les téléchargements de code. Nous vous recommandons de fournir un lien vers le GitHub référentiel d'entreprise.

### Soumission de qualification
<a name="qualifying-your-device-submission"></a>
+ Rapport de test IDT.
+ AWS IoT Rapport de test de Device Advisor.
+ Document de modélisation des menaces.
+ GitHub référentiel contenant le code source pour les téléchargements.

# Création d'un guide de démarrage avec FreeRTOS pour votre forum
<a name="afq-gsg"></a>

Pour bénéficier de FreeRTOS, vous devez créer un guide de démarrage avec FreeRTOS pour votre forum. Ce guide explique aux utilisateurs comment configurer le matériel et l'environnement de développement pour développer des applications pour les appareils FreeRTOS, et comment créer, exécuter et flasher l'application de démonstration créée sur un appareil.

Ce guide doit être mis à la disposition des clients sur un site Web public. L'URL du guide est obligatoire pour répertorier un tableau qualifié dans le catalogue des appareils AWS partenaires.

Votre guide doit comprendre les instructions suivantes :
+ Configuration matérielle de l’appareil.
+ Configuration de l'environnement de développement.
+ Génération et exécution du projet de démonstration.
+ Débogage.
+ Résolution des problèmes.

Nous recommandons également d’inclure dans votre guide :
+ Un lien vers la feuille de données MCU.
+ Un schéma de circuit imprimé (PCB).
+ Un journal de la console de démarrage par défaut.

**Important**  
Lorsque les instructions sont différentes selon le système d’exploitation utilisé; vous devez fournir des instructions pour les systèmes Windows, Linux et macOS.

Suivez-les [Modèle de guide de démarrage](getting_started_template.md) lors de la rédaction du guide pour votre tableau. Vous trouverez des exemples de guides publiés pour d'autres forums qualifiés dans le Guide de l'utilisateur de [FreeRTOS](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-getting-started.html). Un modèle de guide de démarrage est disponible sur [APN Partner Central](https://partnercentral.awspartner.com/).

# Modèle de guide de démarrage
<a name="getting_started_template"></a>

Rédigez une présentation qui fournit une brève description de la carte. Cette section doit répondre aux questions suivantes :
+ Quel matériel est nécessaire pour exécuter l'application de démonstration ?

  Fournissez des liens vers les pages du site Web de votre entreprise pour plus de détails.
+ Quels IDEs sont ceux qui sont pris en charge pour développer des applications pour le conseil d'administration ?

  Fournissez des liens vers les guides de l'utilisateur IDE et les pages de téléchargement.
+ Quelles sont les chaînes d’outils et autres utilitaires logiciels requis pour le développement ?

  Fournissez des liens vers les guides de l'utilisateur et les pages de téléchargement.
+ Y a-t-il d'autres prérequis pour commencer à utiliser FreeRTOS sur le forum ?

  Fournissez les liens vers les pages d'achat, les guides de l'utilisateur et les pages de téléchargement.

## Configuration du matériel
<a name="template-setup-hardware"></a>

Dans cette section, fournissez des instructions pour la configuration matérielle de la plateforme. Assurez-vous de fournir des liens vers tous les guides de l'utilisateur ou tout autre documentation concernant la configuration matérielle.

Ces instructions doivent comprendre les éléments suivants :
+ Configuration des paramètres du jumper.
+ Téléchargement et installation des pilotes.

  Fournissez des liens vers les pages de téléchargement et toute documentation supplémentaire pour les versions de pilotes prises en charge.
+ Connexion de la carte à un ordinateur.
+ Toutes les autres étapes requises pour la configuration matérielle.

## Configuration de l'environnement de développement
<a name="template-setup-dev"></a>

Dans cette section, fournissez des instructions pour configurer l'environnement de développement pris en charge de la plateforme. Assurez-vous que vous fournissez des liens vers toutes les pages de téléchargement, guides de l'utilisateur, ou autres documents pour chaque élément.

Ces instructions doivent comprendre les éléments suivants :
+ Établissement d'une connexion série.
+ Téléchargement et installation de la chaîne d'outils.
+ Téléchargement et installation d'un IDE pris en charge.
+ Tout autre logiciel requis pour développer et déboguer des applications pour l’appareil.

## Créez et exécutez l'application de démonstration
<a name="template-build-and-run-example"></a>

### Créez l'application de démonstration
<a name="template-freertos-import-project"></a>

Dans cette section, fournissez des instructions pour créer l'application de démonstration fournie dans un IDE compatible ou avec des outils de ligne de commande pris en charge.

### Exécutez le projet d'application de démonstration
<a name="template-run-examples"></a>

Dans cette section, fournissez des instructions pour flasher et exécuter le code de démonstration de FreeRTOS sur votre carte.

## Débogage
<a name="template-debugging"></a>

Dans cette section, fournissez des instructions pour l'utilisation de débogueurs embarqués ou externes.

## Résolution des problèmes
<a name="template-troubleshooting"></a>

Dans cette section, fournissez des conseils de dépannage pour résoudre les problèmes potentiels.

Un modèle de **guide de démarrage** est disponible en téléchargement sur le [portail des partenaires APN](https://partnercentral.awspartner.com/ContentFolderPartner?id=0690h000009VVzsAAG) ici. Les informations d'identification pour se connecter sont requises.

# Instructions relatives au fichier manifeste FreeRTOS
<a name="afq-checklist-manifest-instr"></a>

Un fichier manifeste est nécessaire pour AWS IoT Device Tester identifier les versions et les bibliothèques utilisées. Il aide les clients à définir les versions, les dépendances des bibliothèques et les métadonnées.

Le fichier doit répondre aux exigences suivantes :
+ Le fichier doit être nommé `manifest.yml`.
+ Il doit se trouver dans le dossier de base de la bibliothèque ou du package.
+ Il doit être au format YAML et respecter les spécifications [YAML 1.2.](https://yaml.org/spec/1.2/spec.html)

Les paramètres peuvent être dans n'importe quel ordre, mais nous vous recommandons de les placer dans l'ordre indiqué ci-dessous pour une lisibilité optimale. Ajoutez des commentaires au fichier pour aider les clients à utiliser votre package.

**Chemin d'accès du fichier**  
Situé à la racine d'un package ou d'une bibliothèque. Il n'existe qu'un seul fichier manifeste par package. Les dépendances introduites peuvent avoir leurs propres fichiers manifestes.

**Parameters**    
**nom**  
Le nom du package. Tous les espaces doivent être remplacés par un trait de soulignement (\$1). Par exemple, `My project name - 2020` doit être remplacé par`My_project_name_-_2020`.  
+ type : chaîne
+ obligatoire : vrai
+ Longueur minimale : 1
+ Longueur maximale : 40  
**version**  
Version du package. La version peut être une version de lancement ou une balise de version.  
+ type : chaîne
+ obligatoire : vrai
+ Longueur minimale : 1
+ Longueur maximale : 30  
**description**  
Description lisible par l'homme du package. La description doit clairement décrire ce qu'est le package et ce qu'il fournit.  
+ type : chaîne
+ obligatoire : vrai
+ Longueur min. : 30
+ Longueur maximale : 255  
**dependencies**  
Liste de toutes les dépendances de premier niveau requises pour qu'un utilisateur puisse créer correctement ce package et qui peuvent être récupérées par un hôte de code source Git, Subversion ou Mercurial. N'incluez pas les dépendances qui ne sont pas disponibles via Git, SVG ou hg. N'incluez pas les dépendances utilisées pour les tests, la génération de documentation ou le développement. Pour garantir une bonne expérience, nous vous recommandons d'éviter de répertorier les dépendances fermées ou privées.  
+ type : tableau
+ obligatoire : faux
+ Longueur minimale : 0  
**dépendances [] .name**  
Le nom du package d'une dépendance. Il doit correspondre au nom du package indiqué dans le `name` paramètre de la dépendance.  
+ type : chaîne
+ obligatoire : vrai
+ Longueur minimale : 1
+ Longueur maximale : 40  
**dépendances [] .version**  
Version d'une dépendance. La version peut être une version de lancement ou une balise de version. Si des dépendances sont incluses dans le package lui-même, la version doit correspondre au fichier manifeste qui se trouve dans la dépendance.  
+ type : chaîne
+ obligatoire : vrai
+ Longueur minimale : 1
+ Longueur maximale : 30  
**dépendances [] .repository**  
Décrit l'emplacement du code source de dépendance.  
+ type : dictionnaire
+ obligatoire : vrai  
**dépendances [] .repository.type**  
Type de référentiel.  
+ type : chaîne
+ obligatoire : vrai
+ énumération : [git, svn, hg]  
**dépendances [] .repository.url**  
URL de l'emplacement du référentiel. Il doit s'agir d'une URL complète avec un préfixe de protocole (par exemple, https://github.com/*ACCOUNT\$1NAME*/*REPO\$1NAME*).  
+ type : chaîne
+ obligatoire : vrai  
**dépendances [] .repository.path**  
Le chemin relatif de la dépendance depuis l'espace de travail du projet.  
+ type : chaîne
+ obligatoire : vrai  
**dépendances [] .repository.branch**  
Branche de la dépendance utilisée. Si le package utilise la branche release des bibliothèques, n'incluez pas ce paramètre pour réduire au minimum la longueur du manifeste.  
+ type : chaîne
+ obligatoire : faux  
**license**  
Identifiant de licence SPDX de la bibliothèque. Pour la liste complète, consultez le [site https://spdx.org/licenses/](https://spdx.org/licenses/). Il doit correspondre au `LICENSE` fichier inclus dans la racine du dépôt s'il existe.  
+ type : chaîne
+ obligatoire : vrai

# Exemple manifest.yml
<a name="afq-checklist-manifest-example"></a>

```
---
# This is an example of the manifest file that is included at the root of all FreeRTOS GitHub repositories.

name : "Project_Name"
version: "202012.00-LTS"
description: "Clear concise description of this project."         

dependencies:
  - name: "dependency_1"
    version: "v1.0.0"
    repository:
      type: "git"
      url: "https://github.com/account/dependency_1"
      path: "/relative/path/from/project/root/to/dependency_1"
      branch: "1.x"
  - name: "dependency_2"
    version: "v1.0.1_LTS"
    repository:
      type: "git"
      url: "https://github.com/account/dependency_1"
      path: "/relative/path/from/project/root/to/dependency_2"

license: "MIT"
```