Zum Inhalt

Beispiele

Beginnen Sie mit einem passenden Beispiel. Die Entwicklung von SF32-Firmware geht meist schneller, wenn Sie ein funktionierendes boardspezifisches Beispiel anpassen, statt jedes Subsystem von Grund auf neu zu erstellen.

Das kleinste Beispiel ist nicht automatisch das beste. Wählen Sie eines, das bereits den anspruchsvollsten Teil Ihres Produkts enthält: Bluetooth-Profil, Display, Audio-Signalweg, Dateisystem, OTA, USB, Energiesparzustand oder KI-Beschleuniger.

Beispielbereiche

Tabelle: Beispielbereiche
Bereich Beginnen Sie mit
Erstinbetriebnahme example/get-started/hello_world/rtt/project
LED-Blinken / GPIO example/get-started/blink/rtt oder GPIO-Beispiele aus HAL und RT-Device.
Bluetooth BLE-, BT-Classic-, LE-Audio-, Durchsatz-, Beacon-, OTA- und Profilbeispiele. Beginnen Sie mit der Aufgabenübersicht Bluetooth-SDK-Beispiele.
Grafik LVGL-Demos, Design-Tool-Integrationen, Widgets, komprimierte Assets, Animationen, Medien und Beispiele für bestimmte Displays. Beginnen Sie mit der Aufgabenübersicht LVGL-SDK-Beispiele.
Audio Wiedergabe, Aufnahme, PDM-Erfassung, Codec, Opus, MP3, Audiomischung und USB-Audio, sofern unterstützt. Beginnen Sie mit der Aufgabenübersicht Audio-SDK-Beispiele.
Energiesparen Beispiele zu PM-Zuständen, GPIO, Prozessor, Bluetooth, Display, UI und Wearable-Szenarien. Beginnen Sie mit der Aufgabenübersicht Energiesparbeispiele des SiFli-SDK.
Speicher Beispiele zu Dateisystemen, Flash, SD und Partitionen.
USB CherryUSB-Device- und -Host-Beispiele.
KI NNACC-HAL- und RT-Device-Beispiele.

Repräsentative SDK-Ausgangspunkte

Verwenden Sie diese Tabelle, nachdem Sie den relevanten Bereich ausgewählt haben. Die Pfade sind repräsentativ und können sich zwischen SDK-Releases ändern; überprüfen Sie das gewählte SDK, das Ziel-Board und die Konfiguration vor dem Bauen.

Typische Einstiegspunkte für SF32-SDK-Beispiele
Entwicklungsziel Repräsentativer SDK-Ausgangspunkt Was zuerst zu prüfen ist Weiter mit
GPIO-Ausgabe oder -Eingabe example/hal/gpio, example/rt_device/gpio Korrekte Pin-Multiplex-Konfiguration, Polarität und Interrupt-Verhalten auf dem konkreten Board. Einstieg in die Peripherie
Konsole und Systemprüfung example/system/finsh Serielle Konsole, Logs und grundlegende Laufzeitprüfung. Einstieg in die Peripherie
ADC, PWM oder RTC example/hal/adc, example/rt_device/pwm, example/rt_device/rtc Board-spezifische Pin-, Takt- und Peripheriekonfiguration. Einstieg in die Peripherie
I2C-Sensor example/hal/i2c/master, example/rt_device/i2c/eeprom Elektrischer Anschluss, Busadressierung und zuverlässige wiederholte Übertragungen. Subsystemintegration
LVGL und lokales Display example/multimedia/lvgl/lvgl_v8_examples Panel-Initialisierung, Pixelformat und ein stabiler Flush-Pfad, bevor komplexe Ansichten erstellt werden. Grafikübersicht, Display-Controller
BLE-Peripheral-Dienst example/ble/peripheral, example/ble/hrpc Advertising, Verbindung, eine GATT-Charakteristik und Wiederverbindungsverhalten. Bluetooth-Übersicht
Lokale Audiowiedergabe example/multimedia/audio/local_music, mp3_sd_player Codec-/Board-Pfad, Pufferstabilität und Aufräumen nach der Wiedergabe. Audioübersicht
Flash-Speicher example/storage/littlefs/nor, example/storage/flashdb Einhängen, Lese-/Schreibverhalten und Wiederherstellung nach einem Reset oder bei vollem Speicher. Subsystemintegration
Energiesparverhalten example/pm/classical, example/pm/raise_wrist Gemessener Strom in benannten Zuständen und korrektes Verhalten der Weckquellen. Energiesparendes Design im Überblick
BLE-OTA example/ble/peripheral_with_ota Wiederherstellung nach unterbrochenem Update und Rollback auf der Zielhardware. Produktvalidierung
Laufzeitdiagnose example/system/cpu_usage_profiler, example/system/coredump Reproduzierbarer CPU-Trace oder Crash-Erfassung vor der Optimierung. Produktvalidierung

So wählen Sie ein Beispiel aus

Gehen Sie in dieser Reihenfolge vor:

  1. Wählen Sie ein Beispiel für das Ziel-Board.
  2. Wählen Sie ein Beispiel für das verwendete Framework.
  3. Wählen Sie ein Beispiel, das die anspruchsvollste Peripherie abdeckt.
  4. Wählen Sie ein Beispiel mit der benötigten Middleware.
  5. Berücksichtigen Sie Leistungsaufnahme und Speicherbedarf.

Ein Bluetooth-Audio-Produkt sollte beispielsweise mit einem passenden Audio-/Bluetooth-Beispiel beginnen und nicht mit einem schlichten hello_world, auch wenn Letzteres leichter zu verstehen ist.

Anpassungs-Workflow

  1. Das unveränderte Beispiel bauen und flashen.
  2. Den erfolgreichen Build-Befehl, Boardnamen, Flash-Befehl, seriellen Port und das Log sichern.
  3. Eine Produktänderung vornehmen.
  4. Neu bauen und erneut testen.
  5. Die Änderung committen oder dokumentieren, bevor ein weiteres Subsystem hinzugefügt wird.

Dieser Ablauf ist in der ersten Stunde langsamer und nach dem ersten schwerwiegenden Fehler deutlich schneller.

Zu bewahrende Nachweise

Dokumentieren Sie für jedes Beispiel, das zur Produktbasis wird:

  • SDK-Branch oder Paketversion.
  • Boardname oder FQBN.
  • Erforderliche Konfigurationsoptionen.
  • Erforderliche Pins und Peripherie.
  • Erwartete serielle Ausgabe.
  • Bekannte Einschränkungen.
  • Speicherbedarf, falls verfügbar.
  • Wiederherstellungsbefehl.

Regel zur Beispielauswahl

Wählen Sie das Beispiel für das Subsystem mit den strengsten technischen Randbedingungen:

  • Bei Bluetooth-Produkten mit dem nächstliegenden Profil beginnen.
  • Bei Display-Produkten mit dem Display- und LVGL-Pfad beginnen.
  • Bei akkubetriebenen Produkten mit einem Energiesparbeispiel beginnen.
  • Bei OTA-Produkten mit dem Update-Ablauf und dem Partitionslayout beginnen.

Fügen Sie dann die übrigen Subsysteme nacheinander hinzu.

Empfohlener Lernpfad

Wenn Sie neu im SDK sind, beginnen Sie mit Einstieg in die Peripherie und wechseln Sie zu Subsystemintegration, sobald eine einzelne Peripherie stabil läuft. Nutzen Sie Produktvalidierung für Messungen des Stromverbrauchs, OTA, die Inbetriebnahme kundenspezifischer Displays, Fehleranalyse, mehrere Bluetooth-Verbindungen und eigene Treiber. Die Themenübersichten erklären die Architektur und Abwägungen hinter diesen Beispielen.

Zuletzt aktualisiert: