ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Auto-formation Ada/SPARK et DO-178C : 13 modules vérifiés, preuve formelle SPARK (DO-333), couverture MC/DC, même cas d'étude FQMS DAL B que le dépôt frère en C++
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Support d'auto-formation d'un développeur C# à Ada / SPARK et à l'impact de la DO-178C sur la façon de développer. Ce n'est pas un produit : c'est un cours qu'on peut compiler, exécuter, prouver et mesurer. Rien n'y est affirmé sans avoir été exécuté. geeooff/DO-178C-training traite la même démarche en C++17. Les deux dépôts partagent le même cas d'étude — un système de jaugeage carburant FQMS, DAL B — contre les mêmes exigences de haut niveau, énoncé pour énoncé.查看完整 README ↗
Support d'auto-formation d'un développeur C# à Ada / SPARK et à l'impact de la DO-178C sur la façon de développer. Ce n'est pas un produit : c'est un cours qu'on peut compiler, exécuter, prouver et mesurer.
Rien n'y est affirmé sans avoir été exécuté.
| Modules | 13, du SECI au projet intégré |
| Campagnes de test | 106 cas, 222 vérifications, 0 échec |
| Preuve SPARK | 253 obligations déchargées, 1 justifiée |
| Couverture | 100 % instructions, décisions et MC/DC sur le code sous test |
| Traçabilité | 0 défaut, matrice reconstruite par outil |
| Avertissements de compilation | 0, traités en erreurs |
geeooff/DO-178C-training traite la même démarche en
C++17. Les deux dépôts partagent le même cas d'étude — un système de
jaugeage carburant FQMS, DAL B — contre les mêmes exigences de haut
niveau, énoncé pour énoncé.
L'intérêt est là : le processus est la constante, le langage est la variable. Voir le module 12, qui met les deux implémentations en regard.
Ce dépôt-ci se lit néanmoins seul : il ne suppose connu ni le C++, ni le dépôt frère.
| Dépôt C++ | Ce dépôt | |
|---|---|---|
| Couverture | lignes et branches (gcovr) | instructions, décisions, MC/DC (gnatcov) |
| Absence d'erreur à l'exécution | argumentée, revue | prouvée (gnatprove, DO-333) |
| Couplage données/contrôle | tableau tenu à la main | Global / Depends, vérifiés par l'outil |
| Interdiction des exceptions | convention de codage | pragma Restrictions, vérifié à l'édition de liens |
| Absence d'allocation | revue | pragma Restrictions, vérifié |
| Qualification d'outil | clang-tidy, qualifié pour rien | kit DO-330 réel pour GNATcoverage |
Le protocole ne se lance pas sur le poste : il se lance dans le SECI. C'est ce qui rend le résultat reproductible, donc opposable.
docker build -t do178c-ada:verif .devcontainer
docker run --rm -v "$PWD:/workspace" do178c-ada:verif ./scripts/verify.sh
docker run --rm -v "$PWD:/workspace" do178c-ada:verif ./scripts/coverage.sh
VS Code ouvre directement le dépôt dans ce conteneur (Reopen in Container).
verify.sh enchaîne compilation, exécution, preuve SPARK, traçabilité et
formatage. Il accepte une étape isolée : ./scripts/verify.sh prove.
| # | Module | Ce qu'on en retire |
|---|---|---|
| 00 | environnement | la DO-178C en une page, et le SECI conteneurisé : pourquoi il est le document §11.15 |
| 01 | types et contraintes | la borne est dans le type, pas dans les gardes |
| 02 | vérifications à l'exécution | ce que GNAT ajoute, ce que ça coûte, ce que la suppression oblige |
| 03 | contrats Ada 2022 | le contrat remplace la programmation défensive |
| 04 | SPARK — analyse de flot | le couplage données/contrôle devient une sortie d'outil |
| 05 | SPARK — preuve, DO-333 | ce que la preuve crédite, et ce qu'elle ne voit pas |
| 06 | erreurs sans exceptions | interdire les exceptions oblige à prouver |
| 07 | mémoire statique | pas de tas, Ravenscar, analyse de pile |
| 08 | objet et DO-332 |
Plan détaillé et parcours abrégés : docs/00-plan-de-formation.md.
Aucun n'est une estimation, et chacun se rejoue d'une commande.
| Chiffre | Ce qu'il dit | Où |
|---|---|---|
| 13 % | surcoût en .text des vérifications à l'exécution | module 02 |
| 55 % | MC/DC d'une campagne, sur du code dont 28 obligations sur 28 étaient prouvées | module 05 |
| 33 % | MC/DC atteint par deux cas de test qui donnent 100 % de couverture de décisions | module 10 |
| 4 sur 10 | violations du standard de codage attrapées par le compilateur ; six restent à la revue | module 11 |
| 44 → 35 | instructions du FQMS après correction des écarts : le composant a maigri en gagnant en couverture | module 12 |
Ce que l'image contient est épinglé dans
.devcontainer/Dockerfile, qui tient lieu de
SECI exécutable (DO-178C §11.15) : l'image de base par son digest, les
paquets système par un instantané daté de l'archive Ubuntu, l'archive d'Alire
par son empreinte, la chaîne Ada par ses versions. Une réserve, dite dans
docs/03-outils.md : l'index communautaire d'Alire est
suivi en tête de branche.
| Outil | Version | Rôle |
|---|---|---|
GNAT (gnat_native) | 16.1.0 | compilateur Ada 2022 |
gprbuild | 26.0.1 | construction |
gnatprove (SPARK) | 16.1.0 (Why3 1.8.2, CVC5) | preuve formelle |
gnatcov | 26.2.1 | couverture structurelle, jusqu'au MC/DC |
gnatformat | 26.0.0 | formatage |
Alire (alr) | 2.1.1 | installation de la chaîne |
| Image de base | ubuntu:resolute (26.04 LTS), épinglée par digest | socle du SECI |
| Paquets apt | instantané snapshot.ubuntu.com du 2026-10-02 | compilateur C, git, python3… |
Détails, pièges vérifiés et statut DO-330 de chaque outil :
docs/03-outils.md.
alire existe dans l'univers Ubuntu 26.04, en version 1.2.1. Mais cette
version n'accepte que la branche d'index figée stable-1.2.1, de 2023 :
| Voie | alr | Index | gnatprove accessible |
|---|---|---|---|
apt universe | 1.2.1 | stable-1.2.1 | 13.2.1 au mieux |
| binaire amont | 2.1.1 | stable-1.4.0 | 16.1.0 |
.devcontainer/ le SECI : Dockerfile à versions épinglées
common/ le harnais de test, deux cents lignes, sans allocation
docs/ plan, glossaire, C# vers Ada, outils, entretien, ressources
modules/ les treize modules
NN-.../
README.md le cours
src/ le code, annoté @satisfies
tests/ la campagne
requirements/ SRD et SDD, là où la traçabilité s'applique
scripts/ verify, coverage, format, et trois scripts de mesure
templates/ gabarits de revue, fiches d'anomalie et de déviation
tools/ trace_check.py, config_index.py
shared.gpr les commutateurs de compilation, écrits une seule fois
| Document | Contenu |
|---|---|
docs/00-plan-de-formation.md | le parcours, et ce que le dépôt ne couvre pas |
docs/01-glossaire.md | sigles de certification et termes Ada/SPARK |
docs/02-csharp-vers-ada.md | les réflexes C# à désapprendre |
docs/03-outils.md | la chaîne, ses pièges, son statut DO-330 |
docs/04-entretien.md | les questions, et des réponses chiffrées |
docs/05-ressources.md | normes, livres, et le marché français |
Identifiants Ada, noms de cas de test et de suites : anglais, pour coller à ce qui se lit chez les donneurs d'ordre. Commentaires, documentation, exigences et messages de commit : français, parce que le lecteur visé apprend plus vite dans cette langue.
Le style est Mixed_Case_With_Underscores, conforme au style GNAT et vérifié
par gnatformat.
Tests sur cible réelle, vérification du code objet (A-7.9), analyse WCET réelle, multicœur (CAST-32A), DO-331 (SCADE, Simulink), rédaction complète des plans, relation avec l'autorité de certification.
Ces sujets sont cités là où ils s'insèrent, avec ce qu'il faut pour en parler juste. Ils ne sont pas traités, et le dire fait partie du travail.
| Contenu | Licence |
|---|---|
Code — common/, modules/*/{src,tests}, tools/, scripts/ | MIT |
Documentation — README, docs/, modules/*/README.md, requirements/, templates/ | CC BY 4.0 |
Deux licences parce que ce dépôt contient deux natures d'objets. MIT est rédigée pour du logiciel ; l'essentiel de la valeur est ici du support de formation, que CC BY 4.0 couvre correctement. Dans les deux cas : réutilisation libre, y compris commerciale, à condition de citer l'auteur.
Le dépôt ne contient aucun code tiers : le harnais de test de common/ est
écrit pour l'occasion, et la seule dépendance externe est la chaîne d'outils
elle-même, installée dans l'image.
| Liskov devient une obligation de preuve |
| 09 | exigences et traçabilité | la matrice se reconstruit, elle ne se tient pas |
| 10 | couverture et crédit de preuve | « 100 % de couverture » ne veut rien dire |
| 11 | standards et qualification | la bonne question n'est pas « l'outil est-il bon » |
| 12 | projet intégré FQMS | le même système DAL B qu'en C++, mêmes exigences |