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¶
| 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.
| 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:
- Wählen Sie ein Beispiel für das Ziel-Board.
- Wählen Sie ein Beispiel für das verwendete Framework.
- Wählen Sie ein Beispiel, das die anspruchsvollste Peripherie abdeckt.
- Wählen Sie ein Beispiel mit der benötigten Middleware.
- 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¶
- Das unveränderte Beispiel bauen und flashen.
- Den erfolgreichen Build-Befehl, Boardnamen, Flash-Befehl, seriellen Port und das Log sichern.
- Eine Produktänderung vornehmen.
- Neu bauen und erneut testen.
- 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: