Brick Groove Machine 0.9.3
Firmware embarqué pour contrôleur/synthé Brick
 
Chargement...
Recherche...
Aucune correspondance
Référence du fichier main.c

Point d’entrée principal du firmware Brick Control Platform — Phase 6 (LED backend intégré). Plus de détails...

#include "ch.h"
#include "hal.h"
#include "cart/cart_xva1_spec.h"
#include "drivers.h"
#include "cart_bus.h"
#include "cart_link.h"
#include "cart_registry.h"
#include "ui_task.h"
#include "ui_spec.h"
#include "ui_controller.h"
#include "ui_led_backend.h"
#include "brick_config.h"
#include "panic.h"
#include "usb_device.h"
#include "midi.h"
#include "midi_clock.h"

Fonctions

int main (void)
 Fonction principale : point d’entrée du firmware Brick.
 

Variables

CCM_DATA volatile systime_t ui_task_last_tick
 

Description détaillée

Point d’entrée principal du firmware Brick Control Platform — Phase 6 (LED backend intégré).

Ce module orchestre l’initialisation complète du système :

  • Initialisation du noyau ChibiOS (halInit(), chSysInit()).
  • Démarrage de tous les drivers matériels (boutons, LEDs, encodeurs…).
  • Démarrage de la pile USB device et de l’interface USB MIDI.
  • Initialisation du MIDI DIN (UART @ 31250) et des threads MIDI.
  • Initialisation de la clock MIDI 24 PPQN (GPT + thread @ NORMALPRIO+3).
  • Initialisation du bus cartouche, du registre et du lien cart.
  • Chargement du module UI avec la spécification du synthé XVA1 et configuration des cycles de menus dynamiques.
  • Lancement du thread principal de l’interface utilisateur.
  • Initialisation du backend LED et rafraîchissement continu dans la boucle principale.

Contraintes d’architecture respectées :

  • L’ordre d’initialisation garantit que l’I/O temps réel (USB/MIDI/Clock) est prêt avant tout usage par l’application/UI.
  • Les couches sont strictement séparées : l’UI ne touche pas aux drivers/bus, et le pont unique pour les LEDs reste ui_led_backend.

Documentation des fonctions

◆ main()

int main ( void  )

Fonction principale : point d’entrée du firmware Brick.

Effectue toutes les initialisations nécessaires puis lance la tâche UI avant d’entrer dans la boucle principale de rendu (LEDs).

Documentation des variables

◆ ui_task_last_tick

CCM_DATA volatile systime_t ui_task_last_tick
extern