From afb47698b83643131ec0ff22b42913a8e63aa687 Mon Sep 17 00:00:00 2001 From: m1ckc3b Date: Fri, 20 Dec 2024 11:09:46 +0100 Subject: [PATCH] chapter 4 - translated --- microbit/src/04-meet-your-hardware/README.md | 42 +++---- .../src/04-meet-your-hardware/microbit-v1.md | 109 ++++++++-------- .../src/04-meet-your-hardware/microbit-v2.md | 110 ++++++++-------- .../src/04-meet-your-hardware/terminology.md | 118 +++++++++--------- 4 files changed, 187 insertions(+), 192 deletions(-) diff --git a/microbit/src/04-meet-your-hardware/README.md b/microbit/src/04-meet-your-hardware/README.md index 0b06ee4..d1c1da3 100644 --- a/microbit/src/04-meet-your-hardware/README.md +++ b/microbit/src/04-meet-your-hardware/README.md @@ -1,6 +1,6 @@ -# Meet your hardware +# Découvrez votre matériel -Let's get familiar with the hardware we'll be working with. +Familiarisons-nous avec le matériel avec lequel nous allons travailler. ## micro:bit @@ -8,27 +8,27 @@ Let's get familiar with the hardware we'll be working with.

-Here are some of the many components on the board: +Voici quelques-uns des nombreux composants de la carte : -- A [microcontroller]. -- A number of LEDs, most notably the LED matrix on the back -- Two user buttons as well as a reset button (the one next to the USB port). -- One USB port. -- A sensor that is both a [magnetometer] and an [accelerometer] +- Un [microcontrôleur]. +- Un certain nombre de LED, notamment la matrice LED à l'arrière +- Deux boutons utilisateur ainsi qu'un bouton de réinitialisation (celui à côté du port USB). +- Un port USB. +- Un capteur qui est à la fois un [magnétomètre] et un [accéléromètre] -[microcontroller]: https://en.wikipedia.org/wiki/Microcontroller -[accelerometer]: https://en.wikipedia.org/wiki/Accelerometer -[magnetometer]: https://en.wikipedia.org/wiki/Magnetometer +[microcontrôleur] : https://fr.wikipedia.org/wiki/Microcontr%C3%B4leur +[accéléromètre] : https://fr.wikipedia.org/wiki/Acc%C3%A9l%C3%A9rom%C3%A8tre +[magnétomètre] : https://fr.wikipedia.org/wiki/Magn%C3%A9tom%C3%A8tre -Of these components, the most important is the microcontroller (sometimes -shortened to "MCU" for "microcontroller unit"), which is the bigger of the two -black squares sitting on the side of the board with the USB port. The MCU is -what runs your code. You might sometimes read about "programming a board", when -in reality what we are doing is programming the MCU that is installed on the board. +Parmi ces composants, le plus important est le microcontrôleur (parfois +abrégé en "MCU" pour "microcontroller unit"), qui est le plus grand des deux +carrés noirs situés sur le côté de la carte avec le port USB. Le MCU est +ce qui exécute votre code. Vous pouvez parfois lire sur la "programmation d'une carte", alors que +en réalité, ce que nous faisons, c'est programmer le MCU qui est installé sur la carte. -If you happen to be interested in a more in detail description of the board you -can checkout the [micro:bit website](https://tech.microbit.org/hardware/). +Si vous êtes intéressé par une description plus détaillée de la carte, vous +pouvez consulter le site Web [micro:bit](https://tech.microbit.org/hardware/). -Since the MCU is so important, let's take a closer look at the one sitting on our board. -Note that only one of the following two sections applies to your board, depending on whether -you are working with a micro:bit v2 or v1. +Étant donné que le MCU est si important, examinons de plus près celui qui se trouve sur notre carte. +Notez qu'une seule des deux sections suivantes s'applique à votre carte, selon que +vous travaillez avec un micro:bit v2 ou v1. \ No newline at end of file diff --git a/microbit/src/04-meet-your-hardware/microbit-v1.md b/microbit/src/04-meet-your-hardware/microbit-v1.md index 3436336..19ca194 100644 --- a/microbit/src/04-meet-your-hardware/microbit-v1.md +++ b/microbit/src/04-meet-your-hardware/microbit-v1.md @@ -1,66 +1,65 @@ -# Nordic nRF51822 (the "nRF51", micro:bit v1) +# Nordic nRF51822 (le « nRF51 », micro:bit v1) -Our MCU has 48 tiny metal **pins** sitting right underneath it (it's a so called [QFN48] chip). -These pins are connected to **traces**, the little "roads" that act as the wires connecting components -together on the board. The MCU can dynamically alter the electrical properties -of the pins. This works similar to a light switch altering how electrical -current flows through a circuit. By enabling or disabling electrical current to -flow through a specific pin, an LED attached to that pin (via the traces) can -be turned on and off. +Notre MCU possède 48 minuscules **broches** métalliques situées juste en dessous (c'est une puce dite [QFN48]). +Ces broches sont connectées à des **traces**, les petites « routes » qui agissent comme les fils reliant les composants +entre eux sur la carte. Le MCU peut modifier de manière dynamique les propriétés électriques +des broches. Cela fonctionne de manière similaire à un interrupteur d'éclairage qui modifie la +façon dont le courant électrique circule dans un circuit. En activant ou en désactivant le courant électrique +qui circule dans une broche spécifique, une LED attachée à cette broche (via les traces) +peut être allumée et éteinte. -Each manufacturer uses a different part numbering scheme, but many will allow -you to determine information about a component simply by looking at the part -number. Looking at our MCU's part number (`N51822 QFAAH3 1951LN`, you probably cannot -see it with your bare eye, but it is on the chip), the `n` at the -front hints to us that this is a part manufactured by [Nordic Semiconductor]. -Looking up the part number on their website we quickly find the [product page]. -There we learn that our chip's main marketing point is that it is a -"Bluetooth Low Energy and 2.4 GHz SoC" (SoC being short for "System on a Chip"), -which explains the RF in the product name since RF is short for radio frequency. -If we search through the documentation of the chip linked on the [product page] -for a bit we find the [product specification] which contains chapter 10 "Ordering Information" -dedicated to explaining the weird chip naming. Here we learn that: +Chaque fabricant utilise un système de numérotation de pièces différent, mais beaucoup vous permettront +de déterminer des informations sur un composant simplement en regardant le numéro de pièce. En regardant le numéro de référence de notre MCU (`N51822 QFAAH3 1951LN`, ​​vous ne pouvez probablement pas +le voir à l'œil nu, mais il est sur la puce), le `n` à l'avant +nous indique qu'il s'agit d'une pièce fabriquée par [Nordic Semiconductor]. +En recherchant le numéro de référence sur leur site Web, nous trouvons rapidement la [page produit]. +Nous y apprenons que le principal argument marketing de notre puce est qu'il s'agit d'un +"SoC Bluetooth Low Energy et 2,4 GHz" (SoC étant l'abréviation de "System on a Chip"), +ce qui explique la présence de RF dans le nom du produit puisque RF est l'abréviation de radiofréquence. +Si nous parcourons un peu la documentation de la puce liée sur la [page produit] +nous trouvons la [spécification produit] qui contient le chapitre 10 "Informations de commande" +consacré à l'explication de l'étrange dénomination de la puce. Ici, nous apprenons que : -[QFN48]: https://en.wikipedia.org/wiki/Flat_no-leads_package -[Nordic Semiconductor]: https://www.nordicsemi.com/ -[product page]: https://www.nordicsemi.com/products/nrf51822 -[product specification]: https://infocenter.nordicsemi.com/pdf/nRF51822_PS_v3.3.pdf +[QFN48] : https://fr.wikipedia.org/wiki/Quad_Flat_No-leads_package +[Nordic Semiconductor] : https://www.nordicsemi.com/ +[page produit] : https://www.nordicsemi.com/products/nrf51822 +[spécification produit] : https://infocenter.nordicsemi.com/pdf/nRF51822_PS_v3.3.pdf -- The `N51` is the MCU's series, indicating that there are other `nRF51` MCUs -- The `822` is the part code -- The `QF` is the package code, in this case short for `QFN48` -- The `AA` is the variant code, indicating how much RAM and flash memory the MCU has, - in our case 256 kilobyte flash and 16 kilobyte RAM -- The `H3` is the build code, indicating the hardware version (`H`) as well as the product configuration (`3`) -- The `1951LN` is a tracking code, hence it might differ on your chip +- Le « N51 » est la série du MCU, indiquant qu'il existe d'autres MCU « nRF51 » +- Le « 822 » est le code de la pièce +- Le « QF » est le code du package, dans ce cas, l'abréviation de « QFN48 » +- Le « AA » est le code de la variante, indiquant la quantité de RAM et de mémoire flash dont dispose le MCU, +dans notre cas, 256 kilo-octets de mémoire flash et 16 kilo-octets de RAM +- Le `H3` est le code de construction, indiquant la version matérielle (`H`) ainsi que la configuration du produit (`3`) +- Le `1951LN` est un code de suivi, il peut donc différer sur votre puce -The product specification does of course contain a lot more useful information about -the chip, for example that it is based on an ARM® Cortex™-M0 32-bit processor. +La spécification du produit contient bien sûr beaucoup plus d'informations utiles sur +la puce, par exemple qu'elle est basée sur un processeur ARM® Cortex™-M0 32 bits. -### Arm? Cortex-M0? +### Arm ? Cortex-M0 ? -If our chip is manufactured by Nordic, then who is Arm? And if our chip is the -nRF51822, what is the Cortex-M0? +Si notre puce est fabriquée par Nordic, alors qui est Arm ? Et si notre puce est la +nRF51822, qu'est-ce que le Cortex-M0 ? -You might be surprised to hear that while "Arm-based" chips are quite -popular, the company behind the "Arm" trademark ([Arm Holdings]) doesn't -actually manufacture chips for purchase. Instead, their primary business -model is to just *design* parts of chips. They will then license those designs to -manufacturers, who will in turn implement the designs (perhaps with some of -their own tweaks) in the form of physical hardware that can then be sold. -Arm's strategy here is different from companies like Intel, which both -designs *and* manufactures their chips. +Vous serez peut-être surpris d'apprendre que même si les puces "basées sur Arm" sont +assez populaires, la société derrière la marque "Arm" ([Arm Holdings]) ne +fabrique pas réellement de puces destinées à l'achat. Au lieu de cela, leur principal modèle commercial +est simplement de *concevoir* des pièces de puces. Ils concèderont ensuite ces conceptions sous licence à des +fabricants, qui à leur tour les mettront en œuvre (peut-être avec quelques-unes de leurs +propres modifications) sous la forme de matériel physique qui pourra ensuite être vendu. +La stratégie d'Arm ici est différente de celle d'entreprises comme Intel, qui +conçoit *et* fabrique ses puces. -Arm licenses a bunch of different designs. Their "Cortex-M" family of designs -are mainly used as the core in microcontrollers. For example, the Cortex-M0 -(the core our chip is based on) is designed for low cost and low power usage. -The Cortex-M7 is higher cost, but with more features and performance. +Arm octroie des licences à un tas de conceptions différentes. Leur famille de conceptions "Cortex-M" +est principalement utilisée comme cœur dans les microcontrôleurs. Par exemple, le Cortex-M0 +(le cœur sur lequel notre puce est basée) est conçu pour un faible coût et une faible consommation d'énergie. +Le Cortex-M7 est plus cher, mais offre plus de fonctionnalités et de performances. -Luckily, you don't need to know too much about different types of processors -or Cortex designs for the sake of this book. However, you are hopefully now a -bit more knowledgeable about the terminology of your device. While you are -working specifically with an nRF51822, you might find yourself reading -documentation and using tools for Cortex-M-based chips, as the nRF51822 is -based on a Cortex-M design. +Heureusement, vous n'avez pas besoin d'en savoir trop sur les différents types de processeurs +ou de conceptions Cortex pour les besoins de ce livre. Cependant, j'espère que vous êtes maintenant un peu +plus informé sur la terminologie de votre appareil. Lorsque vous +travaillez spécifiquement avec un nRF51822, vous pourriez vous retrouver à lire +la documentation et à utiliser des outils pour les puces basées sur Cortex-M, car le nRF51822 +est basé sur une conception Cortex-M. -[Arm Holdings]: https://www.arm.com/ +[Arm Holdings] : https://www.arm.com/ \ No newline at end of file diff --git a/microbit/src/04-meet-your-hardware/microbit-v2.md b/microbit/src/04-meet-your-hardware/microbit-v2.md index 377f680..e7acd82 100644 --- a/microbit/src/04-meet-your-hardware/microbit-v2.md +++ b/microbit/src/04-meet-your-hardware/microbit-v2.md @@ -1,67 +1,65 @@ -# Nordic nRF52833 (the "nRF52", micro:bit v2) +# Nordic nRF52833 (le "nRF52", micro:bit v2) -Our MCU has 73 tiny metal **pins** sitting right underneath it (it's a so called [aQFN73] chip). -These pins are connected to **traces**, the little "roads" that act as the wires connecting components -together on the board. The MCU can dynamically alter the electrical properties -of the pins. This works similar to a light switch altering how electrical -current flows through a circuit. By enabling or disabling electrical current to -flow through a specific pin, an LED attached to that pin (via the traces) can -be turned on and off. +Notre MCU possède 73 minuscules broches métalliques situées juste en dessous (c'est ce qu'on appelle une puce [aQFN73]). +Ces broches sont connectées à des **traces**, les petites "routes" qui agissent comme les fils reliant les composants +entre eux sur la carte. Le MCU peut modifier de manière dynamique les propriétés électriques +des broches. Cela fonctionne de manière similaire à un interrupteur qui modifie la façon dont le +courant électrique circule dans un circuit. En activant ou en désactivant le courant électrique +qui circule dans une broche spécifique, une LED attachée à cette broche (via les traces) +peut être allumée et éteinte. -Each manufacturer uses a different part numbering scheme, but many will allow -you to determine information about a component simply by looking at the part -number. Looking at our MCU's part number (`N52833 QIAAA0 2024AL`, you probably cannot -see it with your bare eye, but it is on the chip), the `n` at the -front hints to us that this is a part manufactured by [Nordic Semiconductor]. -Looking up the part number on their website we quickly find the [product page]. -There we learn that our chip's main marketing point is that it is a -"Bluetooth Low Energy and 2.4 GHz SoC" (SoC being short for "System on a Chip"), -which explains the RF in the product name since RF is short for radio frequency. -If we search through the documentation of the chip linked on the [product page] -for a bit we find the [product specification] which contains chapter 10 "Ordering Information" -dedicated to explaining the weird chip naming. Here we learn that: +Chaque fabricant utilise un système de numérotation de pièces différent, mais beaucoup vous permettront +de déterminer des informations sur un composant simplement en regardant le numéro de pièce. En regardant le numéro de référence de notre MCU (`N52833 QIAAA0 2024AL`, vous ne pouvez probablement pas +le voir à l'œil nu, mais il est sur la puce), le `n` à l'avant +nous indique qu'il s'agit d'une pièce fabriquée par [Nordic Semiconductor]. +En recherchant le numéro de référence sur leur site Web, nous trouvons rapidement la [page produit]. +Nous y apprenons que le principal argument marketing de notre puce est qu'il s'agit d'un +"SoC Bluetooth Low Energy et 2,4 GHz" (SoC étant l'abréviation de "System on a Chip"), +ce qui explique la présence de RF dans le nom du produit puisque RF est l'abréviation de radiofréquence. +Si nous parcourons un peu la documentation de la puce liée sur la [page produit] +nous trouvons la [spécification produit] qui contient le chapitre 10 "Informations de commande" +consacré à l'explication de l'étrange dénomination de la puce. Ici, nous apprenons que : -[aQFN73]: https://en.wikipedia.org/wiki/Flat_no-leads_package -[Nordic Semiconductor]: https://www.nordicsemi.com/ -[product page]: https://www.nordicsemi.com/products/nrf52833 -[product specification]: https://infocenter.nordicsemi.com/pdf/nRF52833_PS_v1.3.pdf +[aQFN73] : https://fr.wikipedia.org/wiki/Quad_Flat_No-leads_package +[Nordic Semiconductor] : https://www.nordicsemi.com/ +[page produit] : https://www.nordicsemi.com/products/nrf52833 +[spécification produit] : https://infocenter.nordicsemi.com/pdf/nRF52833_PS_v1.3.pdf -- The `N52` is the MCU's series, indicating that there are other `nRF52` MCUs -- The `833` is the part code -- The `QI` is the package code, short for `aQFN73` -- The `AA` is the variant code, indicating how much RAM and flash memory the MCU has, - in our case 512 kilobyte flash and 128 kilobyte RAM -- The `A0` is the build code, indicating the hardware version (`A`) as well as the product configuration (`0`) -- The `2024AL` is a tracking code, hence it might differ on your chip +- Le « N52 » est la série du MCU, indiquant qu'il existe d'autres MCU « nRF52 » +- Le « 833 » est le code de la pièce +- Le « QI » est le code du package, abréviation de « aQFN73 » +- Le « AA » est le code de la variante, indiquant la quantité de RAM et de mémoire flash dont dispose le MCU, +dans notre cas 512 kilo-octets de mémoire flash et 128 kilo-octets de RAM +- Le `A0` est le code de construction, indiquant la version matérielle (`A`) ainsi que la configuration du produit (`0`) +- Le `2024AL` est un code de suivi, il peut donc différer sur votre puce -The product specification does of course contain a lot more useful information about -the chip, for example that it is based on an ARM® Cortex™-M4 32-bit processor. +La spécification du produit contient bien sûr beaucoup plus d'informations utiles sur +la puce, par exemple qu'elle est basée sur un processeur ARM® Cortex™-M4 32 bits. +## Arm ? Cortex-M4 ? -## Arm? Cortex-M4? +Si notre puce est fabriquée par Nordic, alors qui est Arm ? Et si notre puce est la +nRF52833, qu'est-ce que le Cortex-M4 ? -If our chip is manufactured by Nordic, then who is Arm? And if our chip is the -nRF52833, what is the Cortex-M4? +Vous serez peut-être surpris d'apprendre que si les puces "basées sur Arm" sont +assez populaires, la société derrière la marque "Arm" ([Arm Holdings]) ne +fabrique pas réellement de puces destinées à l'achat. Au lieu de cela, leur principal modèle commercial +est simplement de *concevoir* des pièces de puces. Ils concèderont ensuite ces conceptions sous licence à des +fabricants, qui à leur tour les mettront en œuvre (peut-être avec quelques-unes de leurs +propres modifications) sous la forme de matériel physique qui pourra ensuite être vendu. +La stratégie d'Arm ici est différente de celle d'entreprises comme Intel, qui +conçoit *et* fabrique ses puces. -You might be surprised to hear that while "Arm-based" chips are quite -popular, the company behind the "Arm" trademark ([Arm Holdings]) doesn't -actually manufacture chips for purchase. Instead, their primary business -model is to just *design* parts of chips. They will then license those designs to -manufacturers, who will in turn implement the designs (perhaps with some of -their own tweaks) in the form of physical hardware that can then be sold. -Arm's strategy here is different from companies like Intel, which both -designs *and* manufactures their chips. +Arm octroie des licences à un tas de conceptions différentes. Leur famille de conceptions "Cortex-M" +est principalement utilisée comme cœur dans les microcontrôleurs. Par exemple, le Cortex-M4 +(le cœur sur lequel notre puce est basée) est conçu pour un faible coût et une faible consommation d'énergie. +Le Cortex-M7 est plus cher, mais offre plus de fonctionnalités et de performances. -Arm licenses a bunch of different designs. Their "Cortex-M" family of designs -are mainly used as the core in microcontrollers. For example, the Cortex-M4 -(the core our chip is based on) is designed for low cost and low power usage. -The Cortex-M7 is higher cost, but with more features and performance. +Heureusement, vous n'avez pas besoin d'en savoir trop sur les différents types de processeurs +ou de conceptions Cortex pour les besoins de ce livre. Cependant, j'espère que vous êtes maintenant un peu +plus informé sur la terminologie de votre appareil. Lorsque vous +travaillez spécifiquement avec un nRF52833, vous pourriez vous retrouver à lire +la documentation et à utiliser des outils pour les puces basées sur Cortex-M, car le nRF52833 +est basé sur une conception Cortex-M. -Luckily, you don't need to know too much about different types of processors -or Cortex designs for the sake of this book. However, you are hopefully now a -bit more knowledgeable about the terminology of your device. While you are -working specifically with an nRF52833, you might find yourself reading -documentation and using tools for Cortex-M-based chips, as the nRF52833 is -based on a Cortex-M design. - -[Arm Holdings]: https://www.arm.com/ +[Arm Holdings] : https://www.arm.com/ \ No newline at end of file diff --git a/microbit/src/04-meet-your-hardware/terminology.md b/microbit/src/04-meet-your-hardware/terminology.md index a18e38b..06a5101 100644 --- a/microbit/src/04-meet-your-hardware/terminology.md +++ b/microbit/src/04-meet-your-hardware/terminology.md @@ -1,72 +1,70 @@ -# Rust Embedded terminology -Before we dive into programming the micro:bit let's have a quick look -at the libraries and terminology that will be important for all the -future chapters. +# Terminologie de Rust Embedded +Avant de nous plonger dans la programmation du micro:bit, jetons un coup d'œil +rapide aux bibliothèques et à la terminologie qui seront importantes pour tous les +chapitres à venir. -## Abstraction layers -For any fully supported microcontroller/board with a microcontroller -you will usually hear the following terms being used for their levels -of abstraction: +## Couches d'abstraction +Pour tout microcontrôleur/carte entièrement pris en charge avec un microcontrôleur +vous entendrez généralement les termes suivants utilisés pour leurs +niveaux d'abstraction : -### Peripheral Access Crate (PAC) -The job of the PAC is to provide a safe (ish) direct interface to the -peripherals of the chip, allowing you to configure -every last bit however you want (of course also in wrong ways). Usually -you only ever have to deal with the PAC if either the layers that are -higher up don't fulfill your needs or when you are developing them. -The PAC we are (implicitly) going to use is either the one for the [nRF52] -or for the [nRF51]. +### Boîtier d'accès périphérique (PAC - Peripheral Access Crate) +Le travail du PAC est de fournir une interface directe (plutôt) sûre aux +périphériques de la puce, vous permettant de configurer +chaque dernier bit comme vous le souhaitez (bien sûr également de manière incorrecte). En général, +vous n'avez à traiter avec le PAC que si les couches +qui sont plus hautes ne répondent pas à vos besoins ou lorsque vous les développez. +Le PAC que nous allons (implicitement) utiliser est soit celui du [nRF52] +soit celui du [nRF51]. -### The Hardware Abstraction Layer (HAL) -The job of the HAL is to build up on top of -the chip's PAC and provide an abstraction that is actually usable for -someone who does not know about all the special behaviour of this chip. -Usually they abstract whole peripherals away into single structs that can -for example be used to send data around via the peripheral. We are -going to use the [nRF52-hal] or the [nRF51-hal] respectively. +### La couche d'abstraction matérielle (HAL - Hardware Abstraction Layer) +Le rôle de la couche HAL est de s'appuyer sur +le PAC de la puce et de fournir une abstraction réellement utilisable par +quelqu'un qui ne connaît pas tout le comportement spécial de cette puce. +En général, ils abstraitent des périphériques entiers dans des structures uniques qui peuvent +par exemple être utilisées pour envoyer des données via le périphérique. Nous allons +utiliser respectivement le [nRF52-hal] ou le [nRF51-hal]. -### The Board Support Crate (historically called Board Support Package, or BSP) -The job of the BSP is to abstract a whole board -(such as the micro:bit) away at once. That means it has to provide -abstractions to use both the microcontroller as well as the sensors, -LEDs etc. that might be present on the board. Quite often (especially -with custom-made boards) you will just be working with a HAL for the -chip and build the drivers for the sensors either yourself or -search for them on crates.io. Luckily for us though, the micro:bit -does actually have a [BSP] so we are going to use that on top of our -HAL as well. +### Le Board Support Crate (historiquement appelé Board Support Package, ou BSP) +Le rôle du BSP est d'abstraire une carte entière +(comme le micro:bit) en une seule fois. Cela signifie qu'il doit fournir +des abstractions pour utiliser à la fois le microcontrôleur ainsi que les capteurs, +les LED, etc. qui peuvent être présents sur la carte. Très souvent (en particulier +avec des cartes personnalisées), vous travaillerez simplement avec un HAL pour la +puce et construirez les pilotes pour les capteurs vous-même ou +les rechercherez sur crates.io. Heureusement pour nous, le micro:bit +dispose en fait d'un [BSP], nous allons donc l'utiliser en plus de notre +HAL également. -[nrF52]: https://crates.io/crates/nrf52833-pac -[nrF51]: https://crates.io/crates/nrf51 -[nrF52-hal]: https://crates.io/crates/nrf52833-hal -[nrF51-hal]: https://crates.io/crates/nrf51-hal -[BSP]: https://crates.io/crates/microbit +[nrF52] : https://crates.io/crates/nrf52833-pac +[nrF51] : https://crates.io/crates/nrf51 +[nrF52-hal] : https://crates.io/crates/nrf52833-hal +[nrF51-hal] : https://crates.io/crates/nrf51-hal +[BSP] : https://crates.io/crates/microbit -## Unifying the layers +## Unifier les couches -Next we are going to have a look at a very central piece of software -in the Rust Embedded world: [`embedded-hal`]. As its name suggests it -relates to the 2nd level of abstraction we got to know: the HALs. -The idea behind [`embedded-hal`] is to provide a set of traits that -describe behaviour which is usually shared across all implementations -of a specific peripheral in all the HALs. For example one would always -expect to have functions that are capable of turning the power on a pin -either on or off. For example to switch an LED on and off on the board. -This allows us to write a driver for, say a temperature sensor, that -can be used on any chip for which an implementation of the [`embedded-hal`] traits exists, -simply by writing the driver in such a way that it only relies on the -[`embedded-hal`] traits. Drivers that are written in such a way are called -platform agnostic and luckily for us most of the drivers on crates.io -are actually platform agnostic. +Nous allons maintenant examiner un élément logiciel très central +dans le monde de Rust Embedded : [`embedded-hal`]. Comme son nom l'indique, il +fait référence au 2e niveau d'abstraction que nous avons appris à connaître : les HAL. +L'idée derrière [`embedded-hal`] est de fournir un ensemble de traits qui +décrivent le comportement qui est généralement partagé par toutes les implémentations +d'un périphérique spécifique dans tous les HAL. Par exemple, on s'attendrait toujours +à avoir des fonctions capables d'allumer ou d'éteindre une broche. Par exemple, pour allumer et éteindre une LED sur la carte. +Cela nous permet d'écrire un pilote pour, par exemple, un capteur de température, qui +peut être utilisé sur n'importe quelle puce pour laquelle une implémentation des traits [`embedded-hal`] existe, +simplement en écrivant le pilote de telle manière qu'il ne repose que sur les +traits [`embedded-hal`]. Les pilotes qui sont écrits de cette manière sont dits +indépendants de la plate-forme et heureusement pour nous, la plupart des pilotes sur crates.io +sont en fait indépendants de la plate-forme. -[`embedded-hal`]: https://crates.io/crates/embedded-hal +[`embedded-hal`] : https://crates.io/crates/embedded-hal +## Lectures complémentaires -## Further reading - -If you want to learn more about these levels of abstraction, Franz Skarman, -a.k.a. [TheZoq2], held a talk about this topic during Oxidize 2020, called +Si vous souhaitez en savoir plus sur ces niveaux d'abstraction, Franz Skarman, +alias [TheZoq2], a tenu une conférence sur ce sujet lors d'Oxidize 2020, intitulée [An Overview of the Embedded Rust Ecosystem]. -[TheZoq2]: https://github.com/TheZoq2/ -[An Overview of the Embedded Rust Ecosystem]: https://www.youtube.com/watch?v=vLYit_HHPaY +[TheZoq2] : https://github.com/TheZoq2/ +[An Overview of the Embedded Rust Ecosystem] : https://www.youtube.com/watch?v=vLYit_HHPaY \ No newline at end of file