# opensifli/sifli-sdk architecture

> Architecture diagram of the GitHub repository opensifli/sifli-sdk, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/opensifli/sifli-sdk
- Repository: https://github.com/opensifli/sifli-sdk

## Overview

SiFli-SDK is an embedded development framework for SiFli SF32LB-series chips, built around RT-Thread. A developer builds an application against SDK services; hardware access can use HAL directly or RT-Thread device drivers layered on HAL. The repository also provides board support, middleware and third-party components. The README documents the overall layers; sampled files confirm specific DFU, UI, sensor, and connectivity components, but do not expose their complete runtime wiring, so those relationships are not inferred here.

Main entry points: [`middleware`](https://github.com/opensifli/sifli-sdk/tree/main/middleware) (SDK Middleware), [`example`](https://github.com/opensifli/sifli-sdk/tree/main/example) (Application), [`external`](https://github.com/opensifli/sifli-sdk/tree/main/external) (Third-Party Components), [`drivers/hal`](https://github.com/opensifli/sifli-sdk/tree/main/drivers/hal) (Hardware Abstraction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform Support"]
  node_boards["Board Support"]
  node_peripherals["Board Peripherals"]
end

subgraph group_runtime["Runtime Layers"]
  node_hal["Hardware Abstraction"]
  node_rt_drivers["RT Device Drivers"]
  node_rtthread["RT-Thread"]
  node_os_adaptor["OS Adaptor"]
end

subgraph group_middleware["Middleware"]
  node_middleware["SDK Middleware"]
  node_data_bus["Data Bus Services<br/>[data_service.c]"]
  node_power_service["Power Service"]
  node_dfu["DFU Engine<br/>[dfu_engine.c]"]
  node_nvm[("NVM Storage<br/>[nvm_storage.c]")]
  node_lvgl["LVGL UI"]
end

subgraph group_integrations["Included Components"]
  node_lvgl_fragments["UI Fragments"]
  node_mpu_storage["MPU6050 Storage<br/>[storage_manager.c]"]
  node_third_party["Third-Party Components"]
  node_psa_storage[("PSA Key Storage")]
  node_wifi["Wi-Fi Supplicant"]
  node_flashdb[("FlashDB<br/>[flashdb.h]")]
end

node_developer(("Application Developer"))
node_application["Application"]

node_developer -->|"develops"| node_application
node_application -->|"uses services"| node_hal
node_application -->|"uses services"| node_rt_drivers
node_rt_drivers -->|"builds on"| node_hal
node_boards -.->|"configures hardware"| node_hal
node_boards -.->|"supports"| node_peripherals
node_application -->|"uses components"| node_middleware
node_middleware -->|"includes components"| node_rtthread
node_middleware -->|"includes components"| node_third_party
node_middleware -.->|"provides services"| node_data_bus
node_middleware -.->|"provides service"| node_power_service
node_middleware -.->|"provides update"| node_dfu
node_middleware -.->|"provides storage"| node_nvm
node_middleware -.->|"provides UI"| node_lvgl
node_lvgl -.->|"integrates"| node_lvgl_fragments
node_peripherals -.->|"includes driver"| node_mpu_storage
node_third_party -.->|"includes"| node_psa_storage
node_third_party -.->|"includes"| node_wifi
node_dfu -->|"persists progress"| node_flashdb

click node_application "https://github.com/opensifli/sifli-sdk/tree/main/example"
click node_boards "https://github.com/opensifli/sifli-sdk/tree/main/customer/boards"
click node_peripherals "https://github.com/opensifli/sifli-sdk/tree/main/customer/peripherals"
click node_hal "https://github.com/opensifli/sifli-sdk/tree/main/drivers/hal"
click node_rt_drivers "https://github.com/opensifli/sifli-sdk/tree/main/rtos/rtthread/bsp/sifli/drivers"
click node_rtthread "https://github.com/opensifli/sifli-sdk/tree/main/rtos/rtthread"
click node_os_adaptor "https://github.com/opensifli/sifli-sdk/tree/main/rtos/os_adaptor"
click node_middleware "https://github.com/opensifli/sifli-sdk/tree/main/middleware"
click node_data_bus "https://github.com/opensifli/sifli-sdk/blob/main/middleware/data_bus/public/data_service.c"
click node_power_service "https://github.com/opensifli/sifli-sdk/blob/main/middleware/data_bus/public/power_manager_service.c"
click node_dfu "https://github.com/opensifli/sifli-sdk/blob/main/middleware/dfu_v2/engine/dfu_engine.c"
click node_nvm "https://github.com/opensifli/sifli-sdk/blob/main/middleware/nvm_storage/nvm_storage.c"
click node_lvgl "https://github.com/opensifli/sifli-sdk/tree/main/middleware/lvgl"
click node_lvgl_fragments "https://github.com/opensifli/sifli-sdk/blob/main/external/lvgl_v9/src/others/fragment/lv_fragment_manager.c"
click node_mpu_storage "https://github.com/opensifli/sifli-sdk/blob/main/customer/peripherals/sensor/mpu6050/core/mllite/storage_manager.c"
click node_third_party "https://github.com/opensifli/sifli-sdk/tree/main/external"
click node_psa_storage "https://github.com/opensifli/sifli-sdk/blob/main/external/mbedtls_228/mbedtls/library/psa_crypto_storage.c"
click node_wifi "https://github.com/opensifli/sifli-sdk/tree/main/external/wpa_supplicant-rtos"
click node_flashdb "https://github.com/opensifli/sifli-sdk/blob/main/external/FlashDB/inc/flashdb.h"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_boards,node_peripherals toneBlue
class node_hal,node_rt_drivers,node_rtthread,node_os_adaptor toneAmber
class node_middleware,node_data_bus,node_power_service,node_dfu,node_nvm,node_lvgl toneMint
class node_lvgl_fragments,node_mpu_storage,node_third_party,node_psa_storage,node_wifi,node_flashdb toneRose
class node_developer toneIndigo
class node_application toneTeal
```

## Components

### Platform Support

- [Board Support](https://github.com/opensifli/sifli-sdk/tree/main/customer/boards): `customer/boards`
- [Board Peripherals](https://github.com/opensifli/sifli-sdk/tree/main/customer/peripherals): `customer/peripherals`

### Runtime Layers

- [Hardware Abstraction](https://github.com/opensifli/sifli-sdk/tree/main/drivers/hal): `drivers/hal`
- [RT Device Drivers](https://github.com/opensifli/sifli-sdk/tree/main/rtos/rtthread/bsp/sifli/drivers): `rtos/rtthread/bsp/sifli/drivers`
- [RT-Thread](https://github.com/opensifli/sifli-sdk/tree/main/rtos/rtthread): `rtos/rtthread`
- [OS Adaptor](https://github.com/opensifli/sifli-sdk/tree/main/rtos/os_adaptor): `rtos/os_adaptor`

### Middleware

- [SDK Middleware](https://github.com/opensifli/sifli-sdk/tree/main/middleware): `middleware`
- [Data Bus Services](https://github.com/opensifli/sifli-sdk/blob/main/middleware/data_bus/public/data_service.c): `middleware/data_bus/public/data_service.c`
- [Power Service](https://github.com/opensifli/sifli-sdk/blob/main/middleware/data_bus/public/power_manager_service.c): `middleware/data_bus/public/power_manager_service.c`
- [DFU Engine](https://github.com/opensifli/sifli-sdk/blob/main/middleware/dfu_v2/engine/dfu_engine.c): `middleware/dfu_v2/engine/dfu_engine.c`
- [NVM Storage](https://github.com/opensifli/sifli-sdk/blob/main/middleware/nvm_storage/nvm_storage.c): `middleware/nvm_storage/nvm_storage.c`
- [LVGL UI](https://github.com/opensifli/sifli-sdk/tree/main/middleware/lvgl): `middleware/lvgl`

### Included Components

- [UI Fragments](https://github.com/opensifli/sifli-sdk/blob/main/external/lvgl_v9/src/others/fragment/lv_fragment_manager.c): `external/lvgl_v9/src/others/fragment/lv_fragment_manager.c`
- [MPU6050 Storage](https://github.com/opensifli/sifli-sdk/blob/main/customer/peripherals/sensor/mpu6050/core/mllite/storage_manager.c): `customer/peripherals/sensor/mpu6050/core/mllite/storage_manager.c`
- [Third-Party Components](https://github.com/opensifli/sifli-sdk/tree/main/external): `external`
- [PSA Key Storage](https://github.com/opensifli/sifli-sdk/blob/main/external/mbedtls_228/mbedtls/library/psa_crypto_storage.c): `external/mbedtls_228/mbedtls/library/psa_crypto_storage.c`
- [Wi-Fi Supplicant](https://github.com/opensifli/sifli-sdk/tree/main/external/wpa_supplicant-rtos): `external/wpa_supplicant-rtos`
- [FlashDB](https://github.com/opensifli/sifli-sdk/blob/main/external/FlashDB/inc/flashdb.h): `external/FlashDB/inc/flashdb.h`

### Other components

- **Application Developer**
- [Application](https://github.com/opensifli/sifli-sdk/tree/main/example): `example`

## Connections

- Application Developer → Application: develops (evidence: `README.md`)
- Application → Hardware Abstraction: uses services (evidence: `README.md`)
- Application → RT Device Drivers: uses services (evidence: `README.md`)
- RT Device Drivers → Hardware Abstraction: builds on (evidence: `README.md`)
- Board Support → Hardware Abstraction: configures hardware
- Board Support → Board Peripherals: supports
- Application → SDK Middleware: uses components (evidence: `README.md`)
- SDK Middleware → RT-Thread: includes components (evidence: `README.md`)
- SDK Middleware → Third-Party Components: includes components (evidence: `README.md`)
- SDK Middleware → Data Bus Services: provides services
- SDK Middleware → Power Service: provides service (evidence: `middleware/data_bus/public/power_manager_service.c`)
- SDK Middleware → DFU Engine: provides update (evidence: `middleware/dfu_v2/engine/dfu_engine.c`)
- SDK Middleware → NVM Storage: provides storage
- SDK Middleware → LVGL UI: provides UI (evidence: `middleware/lvgl/lvsf/lvsf_font_manager.c`)
- LVGL UI → UI Fragments: integrates
- Board Peripherals → MPU6050 Storage: includes driver (evidence: `customer/peripherals/sensor/mpu6050/core/mllite/storage_manager.c`)
- Third-Party Components → PSA Key Storage: includes (evidence: `external/mbedtls_228/mbedtls/library/psa_crypto_storage.c`)
- Third-Party Components → Wi-Fi Supplicant: includes (evidence: `external/wpa_supplicant-rtos/wpa_supplicant/gas_query.c`)
- DFU Engine → FlashDB: persists progress (evidence: `middleware/dfu_v2/engine/dfu_engine.c`)
