F1SYH‑TX1 — lot 43

main.c et initialisation sûre

Initialiser les GPIO dans un état sûr avant les périphériques et les tâches applicatives.

GPIO OFFboot
POSTavant RX
watchdogaprès init
loopnon bloquante
ResetGPIO sûrsDriversPOSTBoucle
Point critique : Ne jamais initialiser les sorties TX à l’état actif par défaut.

Détails

Séquence main :
stdio_init_all();
board_safe_gpio_init();
power_monitor_init();
si5351_init();
radio_state_init();
ui_init();
cat_init();
config_load();
post_run();
watchdog_enable();
while (true) {
 scheduler_run_due_tasks();
 tight_loop_contents();
}

Aucun appel bloquant long dans la boucle.

Sécurité

Bias et relais forcés OFF.

RX autorisé seulement après POST.

Initialisation

Ordre documenté.

Chaque driver retourne un statut.

Boucle

Planification coopérative.

Pas de temporisation globale.

Spécifications

État resetbias OFF
POSTobligatoire
Watchdogactivé après init
Bouclecoopérative
ConsoleUSB série

Repères

L’ordre d’initialisation est une fonction de sécurité
Un driver en erreur empêche TX

Procédure

Créer safe_gpio_init.
Ajouter drivers.
Ajouter POST.
Ajouter scheduler.
Ajouter watchdog.
Simuler erreurs.
Tester reset.
Tester alimentation instable.
Validation : les résultats sont contrôlés et consignés avant l’étape suivante.