> ## Documentation Index
> Fetch the complete documentation index at: https://docs.embedder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Flux de travail courants

Flux de travail pratiques pour configurer des projets, interagir avec le matériel, écrire un micrologiciel, déboguer et gérer des sessions. Chaque section comprend des exemples d'invites que vous pouvez adapter.

## Démarrer un nouveau projet

<Steps>
  <Step title="Create or select a project">
    ```txt embedder theme={"system"}
    /project 
    ```

    <Frame caption="Project selection interface">
      <img src="https://mintcdn.com/embedder/4y2q1agcuRz3fRND/images/select-project.png?fit=max&auto=format&n=4y2q1agcuRz3fRND&q=85&s=a9be00239cea81ce0616f63c85ec8a36" alt="Boîte de dialogue SÉLECTIONNER UN PROJET avec zone de recherche affichant le bouton Créer un nouveau projet et la liste des projets précédents" width="1992" height="1656" data-path="images/select-project.png" />
    </Frame>

    Choisissez un projet existant ou créez-en un nouveau.

    Embedder vous demandera de créer automatiquement un nouveau projet si aucun projet n'est associé au répertoire dans lequel vous l'exécutez, notez donc que l'exécution de `/project` n'est pas toujours nécessaire.
  </Step>

  <Step title="Choose a platform">
    Sélectionnez la plateforme que vous utilisez dans notre catalogue ou ajoutez la vôtre.

    <Frame caption="Platform selection interface showing Nordic Semiconductor options">
      <img src="https://mintcdn.com/embedder/ujO4-sDifSwa2qo6/images/select-platform.png?fit=max&auto=format&n=ujO4-sDifSwa2qo6&q=85&s=a6c3fc150ba41632be86d7a8f4b7f876" alt="Boîte de dialogue SÉLECTIONNER UNE PLATEFORME avec champ de recherche affichant les plates-formes nRF9xxx de Nordic Semiconductor" width="1980" height="1636" data-path="images/select-platform.png" />
    </Frame>

    Pour ajouter votre propre plateforme, saisissez le nom de la plateforme et appuyez sur le bouton `+ Add "[platform name]"`. Vous serez ensuite invité à télécharger votre documentation.

    <Frame caption="Custom platform creation interface">
      <img src="https://mintcdn.com/embedder/4y2q1agcuRz3fRND/images/custom-platform.png?fit=max&auto=format&n=4y2q1agcuRz3fRND&q=85&s=9cb458a44910dc47b9e8d393eb4134e8" alt="Boîte de dialogue SÉLECTIONNER LA PLATEFORME affichant le menu pour télécharger la documentation au format PDF" width="2134" height="1690" data-path="images/custom-platform.png" />
    </Frame>
  </Step>

  <Step title="Add peripherals">
    Sélectionnez les périphériques que vous utilisez dans notre catalogue ou ajoutez les vôtres.

    <Frame caption="Peripheral selection interface with components from various manufacturers">
      <img src="https://mintcdn.com/embedder/ujO4-sDifSwa2qo6/images/select-peripherals.png?fit=max&auto=format&n=ujO4-sDifSwa2qo6&q=85&s=5bf9421145a180e0648c9072b476478c" alt="Boîte de dialogue SÉLECTIONNER LES PÉRIPHÉRIQUES avec zone de recherche affichant les composants d'Analog Devices, Nexperia et Allegro MicroSystems" width="1990" height="1646" data-path="images/select-peripherals.png" />
    </Frame>

    Sélectionnez les périphériques que vous utilisez (capteurs I2C, écrans SPI, modules UART, etc.).

    Vous pouvez ajouter des périphériques personnalisés et télécharger leurs fiches techniques en utilisant le même processus décrit pour les plates-formes à l'étape précédente.

    Exécutez à nouveau `/peripheral` à tout moment pour ajouter ou modifier votre configuration.
  </Step>

  <Step title="Generate EMBEDDER.md">
    ```txt embedder theme={"system"}
    /init
    ```

    Crée un fichier `EMBEDDER.md` avec le contexte, la configuration et plus encore de vos projets.
  </Step>
</Steps>

<Tip>
  Pour les appareils non inclus dans le catalogue, téléchargez votre propre documentation ou fiches techniques via le `/peripheral` ou via la console web (`/console`) pour améliorer les performances de l'agent.
</Tip>

## Interaction matérielle

### Utiliser le moniteur série

Le terminal série est intégré directement dans Embedder. L'IA lit automatiquement la sortie série.

**Ouvrez la barre latérale série :**

```txt Embedder theme={"system"}
/serial
```

Ou utilisez le raccourci clavier : `` Ctrl+` `` (backtick)

**Comportement de connexion automatique :**

Par défaut, Embedder se connecte automatiquement à votre appareil après avoir flashé

Pour désactiver la connexion automatique, mettez à jour votre `EMBEDDER.md` ou votre invite :

```txt Embedder theme={"system"}
> don't auto-connect to serial after flashing
```

**Filtrer la sortie série :** Cliquez sur `[Filter]` dans la barre d'outils série pour filtrer la sortie par modèle d'expression régulière. Utile pour isoler des messages de journal ou des erreurs spécifiques d’une sortie bruyante.

<Frame>
  <img src="https://mintcdn.com/embedder/feqpp7Csqgb6FFzf/images/serial_filter.png?fit=max&auto=format&n=feqpp7Csqgb6FFzf&q=85&s=5e518da4c96ca100e44ea8ce95769018" alt="Filtre de terminal série affichant la sortie de filtrage de modèle regex" style={{ maxWidth:"200px" }} width="688" height="1254" data-path="images/serial_filter.png" />
</Frame>

## Développement du micrologiciel

### Écrire des pilotes de périphériques

Embedder a le contexte de vos fiches techniques et de votre documentation. Demandez-lui de rechercher les brochages, d'enregistrer les cartes et les détails d'implémentation des pilotes lors du développement des pilotes.

```txt Embedder theme={"system"}
> write an I2C driver for the BME280 sensor on I2C1 (SDA=PB7, SCL=PB6).
> include functions for reading temperature, humidity, and pressure.
> use the existing HAL_I2C functions in our codebase.
```

```txt Embedder theme={"system"}
> create a UART driver for GPS module on UART2 at 9600 baud.
> implement a ring buffer for RX, parse NMEA sentences, and extract lat/long coordinates.
```

```txt Embedder theme={"system"}
> implement SPI driver for the SD card module on SPI1.
> include initialization, single block read/write, and proper CS pin handling on PA4.
```

### Construire et flasher

Embedder utilise la configuration de votre projet pour déterminer les chaînes d'outils et les dépendances requises.

<Steps>
  <Step title="Install dependencies">
    ```txt Embedder theme={"system"}
    > help me install the dependencies for this project
    ```
  </Step>

  <Step title="Build the project">
    ```txt Embedder theme={"system"}
    > build the project
    ```
  </Step>

  <Step title="Flash the firmware">
    ```txt Embedder theme={"system"}
    > flash the firmware to the device
    ```
  </Step>

  <Step title="Build, flash, and monitor">
    ```txt Embedder theme={"system"}
    > build and flash, then show me the serial output
    ```
  </Step>
</Steps>

### Travailler avec les HAL et les SDK

Renseignez-vous sur les HAL et SDK spécifiques au fournisseur :

```txt Embedder theme={"system"}
> how do I configure the STM32 HAL for I2C?
```

```txt Embedder theme={"system"}
> show me how to use the ESP-IDF GPIO driver
```

```txt Embedder theme={"system"}
> what's the correct way to initialize DMA on this chip?
```

## Débogage avec sortie série

Embedder lit la sortie série et peut aider à analyser les problèmes en temps réel.

### Analyser les erreurs

```txt Embedder theme={"system"}
> what's causing this error in the serial output?
```

```txt Embedder theme={"system"}
> the device keeps resetting, analyze the crash dump
```

```txt Embedder theme={"system"}
> parse the debug logs and find the issue
```

### Exécution du suivi

```txt Embedder theme={"system"}
> add debug prints to trace the initialization sequence
```

```txt Embedder theme={"system"}
> why isn't the interrupt handler being called?
```

## Mode Plan vs mode Acte

Embedder dispose de deux modes pour différents flux de travail.

### Mode Acte (par défaut)

Accès complet aux outils. Embedder peut lire, écrire et exécuter.

Utiliser pour :

* Rédaction et modification de code
* Construction et flashage du firmware
* Apporter des modifications à votre projet

### Mode Planification

Analyse en lecture seule. Intégrez des recherches sans apporter de modifications.

Utiliser pour :

* Planification de refactors complexes
* Revoir l'architecture avant les changements
* Analyser les fiches techniques

**Basculer entre les modes :**

* Clavier : `Shift+Tab`
* Commandes : `/plan` ou `/act`

**Démarrer en mode plan :**

```txt Embedder theme={"system"}
> /plan
> analyze the power management implementation and suggest improvements
```

<Tip>
  Le mode Planification est idéal pour planifier des changements complexes avant leur mise en œuvre.
</Tip>

## Documentation et contexte

### Tirer parti de la documentation téléchargée

Les plateformes et périphériques choisis dans notre catalogue disposent déjà d'une documentation téléchargée.

Vous pouvez télécharger davantage de documents via la console Web accessible via le `/console`.

<Frame caption="Interface for uploading documentation">
  <img src="https://mintcdn.com/embedder/4y2q1agcuRz3fRND/images/console-docs.png?fit=max&auto=format&n=4y2q1agcuRz3fRND&q=85&s=3e8e4a0ae841d2d936c8f3a2c5de982a" alt="Application Web montrant un endroit pour télécharger la documentation de votre projet" width="3016" height="2152" data-path="images/console-docs.png" />
</Frame>

Embedder les utilisera automatiquement :

```txt Embedder theme={"system"}
> what's the maximum I2C clock speed for this sensor?
```

```txt Embedder theme={"system"}
> show me the register map for the accelerometer
```

```txt Embedder theme={"system"}
> what are the power consumption specs in sleep mode?
```

### Assistance adaptée au matériel

Posez des questions spécifiques au matériel sur votre carte :

```txt Embedder theme={"system"}
> what switch position on the stm32n6570-dk enables flash mode?
```

```txt Embedder theme={"system"}
> what's the pin mapping for the Arduino header?
```

```txt Embedder theme={"system"}
> can I use DMA with this UART peripheral?
```

## Mode bash

Contournez l'agent AI et exécutez les commandes du terminal directement en utilisant le préfixe `!`.

```bash theme={"system"}
!ls -la
```

```bash theme={"system"}
!make clean
```

```bash theme={"system"}
!git status
```

Cela exécute la commande dans votre terminal sans interprétation de l'IA. Utile pour les commandes rapides lorsque vous n'avez pas besoin de l'aide de l'IA.

## Mode d'envoi série

Envoyez des messages directement à votre MCU via série en utilisant le préfixe `~`.

```txt embedder theme={"system"}
~help
```

```txt embedder theme={"system"}
~reset
```

```txt embedder theme={"system"}
~get status
```

Cela envoie le texte directement à la console série de votre appareil.

Utiliser pour :

* Envoi de commandes AT
* Interagir avec l'appareil CLI/REPL
* Commandes de débogage manuel

## Fichiers et répertoires de référence

Utilisez `@` pour inclure rapidement des fichiers ou des répertoires dans vos invites.

<Steps>
  <Step title="Reference a file">
    ```txt Embedder theme={"system"}
    > explain the logic in @src/main.c
    ```

    ```txt Embedder theme={"system"}
    > what does @drivers/i2c.h do?
    ```
  </Step>

  <Step title="Reference a directory">
    ```txt Embedder theme={"system"}
    > what's in @src/drivers/?
    ```

    ```txt Embedder theme={"system"}
    > show me the structure of @lib/
    ```
  </Step>

  <Step title="Multiple references">
    ```txt Embedder theme={"system"}
    > compare @src/old_driver.c and @src/new_driver.c
    ```
  </Step>
</Steps>

<Tip>
  Les chemins de fichiers peuvent être relatifs ou absolus. Les références de répertoire affichent la liste des fichiers, pas leur contenu.
</Tip>

## Gestion des sessions

### Changer de projet

```txt Embedder theme={"system"}
/project    # Switch to a different project
```

### Reprendre les sessions précédentes

```txt Embedder theme={"system"}
/history    # Browse and resume past conversations
```

### Gérer le contexte

Pour les longues conversations :

```txt Embedder theme={"system"}
/compress   # Compress conversation to save context
```

## Référence rapide

| Flux de travail                   | Commande/Raccourci                   |
| --------------------------------- | ------------------------------------ |
| Mise en place d'un nouveau projet | `/project` → `/peripheral` → `/init` |
| Moniteur série                    | `/serial` ou `` Ctrl+` ``            |
| Mode de commutation               | `Shift+Tab` ou `/plan` `/act`        |
| Ajouter un périphérique           | `/peripheral`                        |
| Fichier de référence              | `@filename` dans l'invite            |
| Mode bash                         | `!command` (par exemple, `!ls`)      |
| Envoi série                       | `~message` (par exemple, `~help`)    |
| Annuler le dernier message        | `/undo` ou `Ctrl+Z` ​​               |
| Rembobiner la conversation        | `/rewind` ou `Ctrl+Z (2x)`           |
| Reprise de la séance              | `/history`                           |
| Compresser le contexte            | `/compress`                          |
| Console Web                       | `/console`                           |
| Obtenir de l'aide                 | `/help`                              |
