Skip to content

SiFli-SDK Release v2.5.1

Latest

Choose a tag to compare

@rabbitsaviola rabbitsaviola released this 27 Aug 05:52
· 285 commits to main since this release

Changelog

Documentation for v2.5.1 is available at https://docs.sifli.com/projects/sdk/v2.5.1/sf32lb52x/index.html

Major Changes

  • Add support of the SF32LB57X chip family, including new boards (sf32lb57-dpi-hdk, sf32lb57-spi-hdk and sf32lb57x-ramrun series), drivers (LCD DPI/DBI/DIRECT_EPD, PSRAM calibration, SDIO single-wire, CAN, etc.), RF driver and 2nd bootloader.
  • Add DFU_V2 middleware, with CDC_DFU, BLE_DFU and PAN_DFU subprograms and examples.
  • Add crypt_block_dev middleware to support encrypted block device.
  • Add rt_bt_app_core middleware for device-framework Bluetooth control.
  • CherryUSB adds UAC/UVC host support and MTP device support.
  • Add a2dp_sharing example: share media stream & call voice from phone to earphones
  • Add hfp_relay example: relay phone call audio to earphones

Change log since v2.5.0

Drivers

Fixed

  • adc: Fix slot and channel greater than 7 is not handled correctly (d140b2c)
  • adc: Add double check of end of conversion flag when timeout (5c68730)
  • adc: Update gpadc driver for 57x (042a9cc)
  • aon: Fix wakeup pin query error on 57x (ec4ca8f)
  • aon: Fix wakeup pin query error for PA24~PA27 on 57x (f70907c)
  • audprc: Fixed 57x audio resample driver (45ce529)(1649f37)
  • bbm: Fix data in bad block is not copied successfully (2736bfa)
  • can: Fix single message is not transmitted (f3209cb)
  • cherryusb: Fix clock is not enabled on 57x when acting as host (ba079e8)
  • cherryusb: Fix thread freezing when deleting itself (9d64d3c)
  • cherryusb: Fix type mismatch due to the removal of duplicate rt_ssize_t definition (f7e7ea3)
  • cherryusb: Remove duplicate rt_ssize_t as it's already defined in rtdef.h (5fc2683)
  • cmsis: Align gcc link script used by ptab v3 with link.lds (b46c320)
  • cmsis: Delete lvsf_font_*.o from section description to avoid including data by mistake (24dfdda)(924ef6d)
  • cmsis: Fix 57 lcpu build error as cache line size is not available (3deee68)
  • cmsis: Fix missing default hcpu2acpu_irqHandler on 57x (36e964f)
  • cmsis: Not use bt_rf_fulcal.c on 57x FPGA board (354e539)
  • cmsis: Add .app_subpage_db section for subpage database in linker (a6aad68)
  • dma: Fix dma channel register is modified by module which doesn't own the channel (d9fffa7)
  • dma: Fix previous DMA S/DBURST setting was not cleared (f4a5381)
  • drv_common: 57x uses the same method to get LPTIM frequency as other chips (661bd17)
  • epic: Fixed EZIP completion race in fast-start path (bf639a8)
  • epic: Fix black lines on rotated images (cb3e945)
  • epic: Fix several issues with gradient filling in tiled mode (3fcb149)
  • epic: Abnormal result when blending A2/A4 formats on 57x (4190e80)
  • epic: Fixed YUV blending abnormal (d34630a)
  • epic: Increase the size of the letter pool (df9964e)
  • epic/lcdc: Fixed some graphic issues (8fcd42e)
  • i2c: Fix i2c bug for 55x a2 (ad8125d)
  • lcd: Fixed DPI LCD errors on 57x (ee32d21)
  • math: Fix CDE is enabled by mistake on 57x (4419c5d)
  • nand: Fix single-line parameter of type5 (ef7e3c7)
  • pdm: enable 57x pdm pll (f812ff3)
  • pinmux: Fix some IO's pinmux mismatch with spec of 58x (4f70185)
  • pmu: Fix hxt48 ready delay time not enough on 57x (b55aec3)
  • psram: Fix r/w error after PSRAM frequency switching from 156MHz to 24MHz (ef72951)
  • psram: Fix psram init error introduced by 57x change (04aa88f)
  • psram: Fix PSRAM calibration error on 57x (46e3fcd)
  • psram: Set protocol register for 57x (0389734)
  • pwm: Fix PWM clock is not enabled on 57x (5e71aeb)
  • rcc: Fix ACPU doesn't start on 57x (7e9d4a3)
  • rcc: Enable WAIT to avoid ACPU starting automatically after SYSRESETREQ (f4f681a)
  • rtc: Fix RTC_DR_ERROR check fail and add RSF check on 57x (c62b748)
  • sdio: Fix missing name field in 57 sdio_config (0caf581)
  • spi: Fix duplicate spi callback definition on 55 LCPU (0754756)
  • tsen: Fix tsen measurement error on 52x (3803071)
  • usb: Fix USB clock is not enabled in 57 bootrom (b94115b)
  • usb: Add delay to make sure rcc usb clock is ready on 57x (c03d2c9)
  • wdt: Update watchdog driver for 57x (6c83d69)
  • kconfig_drv: Fix MPI1 and MPI2 are enabled by ACPU side (5ad9210)
  • cmsis: Add the missing segment names for the MTP library to link (b046469)
  • spi: Fix for 3-Wire SPI Receive Failure (3c95753)
  • aon: Fix PA24~PA27 AON pin wakeup not work (53741fe)
  • sdio: For standby mode, skip SDIO destroy/recreate; only restore hardware on wakeup (83225df)
  • Kconfig_drv: Set MEM_ASYN_FREE to be dependent on PKG_USING_LITTLEVGL2RTT (bc108fe)
  • epic: Add "rotation" to the sram switch configuration (e62b74f)

Changed

  • adc: Update to support 57x (38e545a)
  • cache: Add cache macro for 57x (629d6d0)
  • can: Upgrade rt can device driver to v5.2.2 (384ba14)
  • can: Add secondary TX buffer and interrupt mode (3c180bd)
  • cmsis: Still call cache_enable to enable cache to keep compatibility on 57x (62c0e50)
  • cmsis: Add symbol used by pm in gcc ld for 57x (8f6bb76)
  • drv_common: Update for 57x support (32192b3)
  • epic: Support larger transformed area (54300b4)
  • lcdc: Not overwrite other PTM core setting (6fb08e2)
  • lcdc: Optimize the DPI_AUX timing on 57x (2f85f2b)
  • mpu: Add space of MPI2 on 57x (bfa145d)
  • nor: Add DTR support for 57x (ac8f1c3)
  • pinmux: Add pin function definition for JDI, DPI and EPD on 57x (7c9af0d)
  • pinmux: Add SPI dedicated pin support on 57x (7e63eb2)
  • pmu: Set VBAT_LDO output voltage to 3.3V on 57x (8e396fd)
  • pmu: Raise LDO_1V8 voltage on 57x (4590b0d)
  • psram: Update HyperRAM to support 156MHz on 57x (722b085)
  • psram: Update calibration for 57x (7cbe2ab)(c52f5b4)
  • psram: Use psram mode in handle (ca85ff6)
  • psram: Support dynamic PSRAM type and pinmap detection at runtime for 57x (0b9e4a1)
  • psram: Use HAL_Delay_us to achieve more accurate delay (4f00c07)
  • psram: Raise drive strength of PSRAM pin on 57x (ee0c97c)
  • sdadc: Move SDADC calibration processing down to the HAL layer (37a145d)
  • sdadc: Update drv_sdadc (3de41ea)
  • sdhci: Gated sd clock dynamically to save power (57610ff)
  • sdhci: Add config to disable sdhci auto clock control by default (15e456a)
  • sdio: Add sd/mmc single-wire support (59e2863)
  • sdio: Add sdmmc2 support on 57x (a339bdd)
  • usb: Enable BG for USB clock in case it's disabled on 57x (f887c17)
  • hal: Remove volatile from HAL_Delay_us_ declaration (dda5150)
  • lcdc: 57x LCDC supports to switch to DLL2/AUDPLL (ebf20ad)
  • lcdc: DBI 8/16bit LCD works on 57x (9152564)
  • lcdc: DIRECT_EPD mode (LCDC directly drive EPD) works on 57x (46fe563)
  • pdm: add 57 4mic config (8424f11)
  • lcdc: The 800x480 DPI LCD can works on 57x (f42c3c4)
  • sdio: Select MMCSD detection by configured card type (41327fd)
  • epic: Add DRV_EPIC_DEBUG_LOG to control EPIC driver debug output (31920f9)
  • epic: Optimize JPEG blending performance in some cases (7c89eb1)
  • ezip: Add 'EZIP_WIN_SIZE' macro (97b0b2d)

Added

  • can: Add can adaptor layer implementation (7dbb4b6)
  • can: Add API HAL_CAN_CalcTiming to calculate timing setting according to bitrate (f5cee75)
  • cherryusb: Add cherry usb uac and uvc host support (3be5495)
  • cherryusb: Add cherry USB MTP device support (ce41b22)
  • pinmux: Add sip flash and psram pinmux set API for 57x (0201498)
  • psram: Add API to read psram size from psram chip (b1ba5cc)
  • nand: Add unim 4Gbit single die config table (ff17cb0)

Middleware

Fixed

  • audio: Fix the parameter memory size error in the anyka algorithm (1af38a9)(137fdec)
  • audio: wakeup LCPU when bt voice coming on SF32LB57X (917270d)
  • audio: Fix i2s modem bug (84bbc39)(2f62758)
  • audio: Fix 57x audcodec pll config (ca6f2ef)(70785a4)(42572b4)
  • audio: Fix noise for high bitrate mp3 in mix mode (7b292b8)
  • acpu_ctrl: Flush cpu cache for multicore data exchange (fd6a1c3)
  • button: Fix build error on 57x (74f7cfd)
  • ezipa: Fix invalid curr_frame parameters for the first frame (d2e839a)
  • lvgl_v8_ttf: Fix use-after-free when opening a face fails while the size cache is full (0ef21cb)
  • lvgl: Remove the fixed address range check for PSRAM (f936f1c)
  • lvgl: RAMLESS LCD will blink when switched to full screen buffer (d1b4492)
  • lvgl_v9: Fixed watch_v9 jpeg decoding error on 57x (8eb7e05)
  • lvgl_v8: When FreeType is enabled, by default LV_FONT_DEFAULT will use lvsf_get_font_from_size(16) (f7b6d39)
  • lv_drivers: The EPIC letter batch key includes font color mode and opacity to prevent A4/A8 font data from sharing the same drawing operations (e36fadf)
  • lv_drivers_v9: fix v9 render-list double-buffer switch timing causing scanline stall (6c2fa4c)
  • lv_drivers_v9: Fix the screen pushing issue of the LCD framebuffer (363c941)
  • lvsf: Add sequence image widget (dc16df7)
  • lvsf: Update the library file and added the complete circle mask display for lvsf_arcimg (b19f9c1)
  • lvsf: Modify the macro definitions and standardize them (1f43bc9)
  • lvsf: Modify lvsf_sjpg.c using dependencies (0431068)
  • lvsf: Update the gui_widgets library file and expose the lvsf_jpg framework for external use (30dc558)
  • lvgl: Fix local redrawing, no longer force global redrawing under the new_api mode (3ac4b27)
  • pm: Reconfig psram2 and flash3 when freq scaling on 57x (d5fe3ce)
  • audio: Fix crash in record command caused by invalid log format (12e2a86)
  • lvsf: Prevent SJPG cleanup from closing console fd (7bec9ec)
  • lvsf: Remove global image cache invalidation during frame switching and clean up (60eed78)
  • net: Fix crash caused by dangling pointer when performing ping network operation (080fb40)

Changed

  • lvgl: lvgl v8 render list support to switch to full screen buffer (e4d87e0)
  • pm: No need to use RW_IRAM_RET region unless STANDBY is used (44e595c)
  • pm: 57x HCPU also use deepsleep by default (979a02f)
  • pm: Record rt_pm_request/release for debugging (f9845c1)
  • audio: Support 32k samplerate hfp voice (58cd061)
  • audio: Update bt_voice to support sco_relay feature (6292059)
  • lvsf: Update widget lib to support more widgets (7dd4c0d)
  • lvsf: Make font unloading safe and let the font manager refuse fonts that do not fit (81ee58f)
  • lvsf: Load TTF fonts from the file system with correct glyph lifetime, face caching and thread safety (ef9c3a5)
  • ipc_queue: 58x add HCI IPC buffer data double check (ce997d2)
  • lvgl: Merge the graphic changes from solution (49fa170)
  • lwip: Add http server and client support (43c4a89)
  • coredump: Add eMMC support for the coredump feature (2c0134e)

Added

  • audio: Add lc3codec for hfp service (a01c5ff)
  • crypt_block_dev: Add crypt block device (9ee8238)
  • rt_bt_app_core: Add RT-Thread BT application core middleware for device-framework Bluetooth control (78cb3a2)
  • dfu_v2: Add the DFU_V2 middleware (d0ccd60)
  • mbedtls_228: Support configurable CA certificate search directories (a38f364)(890c60c)

Bluetooth

Fixed

  • bt: Fix 58x BT SCO no sound caused by IPC error (b10bf60)
  • bt: Fix 52 bt controller ld stop assert (f8e025e)
  • bt: Fixed BT sleep clock type does not set in 57x (4f74a64)
  • bt: Resolve HFP service wrong codec ID usage
  • bt: Update RF driver and lcpu patch for 56x and 58x (0fe1263)
  • bt: Update 56 LCPU patch to only send 2-DH-1 packet after role switch (aaf6883)
  • ble: Allow adv data to be updated when BLE adv is turned off (66588455)

Changed

  • bt: Update RF driver (bab03f9)
  • bt: Add three weak functions for retrieving transmit power (7c66848)
  • bt: Modify for 56/58 tx power uniformity (2ffdd4a)
  • ble: Integrate CSRK support into BLE connection manager
  • bt: Optimize A2DP relay processing logic
  • bt_rt_device: Move bt_rt_device code from middleware/bluetooth to customer/peripherals/bluetooth/bt_sifli (42b6257)
  • bt: Add link key save type (a53fbc4f)
  • ble: Improve ctkd and gatt over br/edr (afc16f54)
  • ble: Add sibles write node cache for gatt notify (a2f6ca10)

Added

  • bt: Add 57x rf driver (4879ba4)(5dc70b0)(ae9c7ce)(0fe1263)
  • ble: Add ble csrk support (f4706792)
  • ble: Add an API allowing the controller to filter out specific ad data from advertising in advance (4d081f8f)

RTOS

Fixed

  • kservice: Fix secondary crash caused by file operations after eMMC assertion failure (cbe1263)

Changed

  • workqueue: Update workqueue to rt-thread v5.x (33ebc48)
  • workqueue: Add delayed_work APIs to maintain interface compatibility (40d876d)

Examples

Fixed

  • lvgl/watch/lvgl/watch_v9: Increase the blank space at the bottom to ensure that the second slider knob is fully displayed (440ac1b)
  • hal/iwdt: Fix SF32LB57X IWDT feed failure and no reset on timeout issue (0335061)
  • rt_device/i2s: Fix device lookup on SF32LB57 (caad335)
  • rt_device/i2s: Add support of board sf32lb57-spi-hdk (976450c)
  • rt_device/pdm: Add support of board sf32lb57-spi-hdk (ffeabcf)
  • hal/adc: The ADC routine uses the unified HAL layer ADC calibration interface (1e0fad8)
  • rt_device/audprc: Fix crash on repeated loopback start (0c47d49)
  • pm/coremark: Fix board 57x crash caused by MPI disabled in custom_printf without subsequent re-enablement (edf14cf)
  • cherryusb/device/sdcard_disk: Add support of board sf32lb57-spi-hdk (ee2e03f)
  • get-started/dualcore: Configure LCPU project based on SoC dependencies (eb6508b)
  • storage/fatfs/nand: Modify registration interface and device mounting (d8e8270)
  • rt_device/emmc: Fix sd device name if using SDMMC2 (0a4c074)
  • bootloader: Decrease flash frequency in 2nd bootloader stage on 57x (4bbe146)
  • hal/lcd: Fix compilation errors of the routine under the Keil toolchain (ca641e0)
  • ble/multi_connection: Add lb55x a2/a3 lcpu_img choose (1649388)
  • rt_device/i2s: Fix I2S pin configuration in README (45d84bb)
  • rt_device/i2s: Fix LB56 I2S BCK pin assignment (ec2f0a7)
  • ezip: Add the required ezip resources for 57 (9383dc4)(11a7db6)

Changed

  • gpu/single_mode: Add support for the 56 and 58 series chips (fccee89)
  • rt_device/emmc: Add sdio single-wire test (8d9bb25)
  • multicore/acpu_task: Reduce heap and stack size for stdlib (64ff8f2)
  • hal/can: Add interrupt mode example code (8f56edb)
  • pm/coremark: Add initial support for 57x (0691d1e)
  • pm/bt: Add initial support for 57 test on evb board (0e7f93a)
  • lvgl/watch: The watch example works on sf32lb57-spi-hdk board (9afc01a)
  • bootloader: Update bootloader (52x) for DFU_V2 (44a4fd1)
  • bootloader: Switch PSRAM clock to DLL2 in 57 2nd bootloader (38a6237)
  • bootloader: Raise Flash IO drive strength for 57x (d482e5c)
  • bootloader: Boot DFU loader on needs_update trigger on sf32lb57x (ae9a6b3)
  • bootloader: Enable LDO_1V8 if PSRAM is used (ab49c91)
  • bootloader: Update 57x 2nd bootloader used by old style project (80d005c)
  • bootloader: Support dynamic psram type detection on 57x (e00751c)
  • hal/lcd: Update the SConstruct script for the HAL/LCD example project (30ab1cb)
  • pm/bt: Add FinSH commands to dynamically control Bluetooth transmit power (5657232)
  • multimedia/audio/flac: Fix 573 no enough SRAM in flac encode (21a5715)
  • multimedia/audio/flac: fix record operation write to RAM (8868bb5)
  • hal/adc: Add SF32LB57 support to ADC example (6abf307)
  • misc/adc_button: Update adc_button example and documents (dd2fdb7)
  • hal/ezip: Add support for SF32LB57 (c2ef7f9)
  • gpu/single_mode: Add support for the 57 series (8a826a2)
  • rt_device/pulse_encoder: Complete and refine the document (85d8f01)
  • ble/central_and_peripheral_with_pingpong_ota: Improve the expected-results section in OTA-related example docs (b754bba)
  • ble/peripheral_with_ota: Improve the expected-results section in OTA-related example docs (b754bba)
  • ble/ibeacon: Update document and add test result descriptions (195edc2)

Added

  • sdadc: Add SDADC sample routines based on HAL and RT (097a11e)(5f26f65)
  • lvgl_v8_freetype: Add the lvgl_v8_freetype example (c12af3b)
  • rt_device/crypt_block_dev: Add example crypt_block_dev (c65187f)
  • lvgl_v8: Add several gui_widgets demonstration examples for the lvgl8 version (0a1f43f)
  • cherryusb/host/uvc_uac_host: Add cherry USB uac and uvc host example (6221991)
  • cherryusb/device/mtp: Add cherry USB mtp device example (9b75c17)
  • cdc_dfu: Add the CDC_DFU subproject for DFU_V2 (9c02974)(d52f807)
  • ble_dfu: Add the BLE_DFU Subprogram for DFU_V2 (fa00349)(a316099)
  • pan_dfu: Add the PAN_DFU Subprogram for DFU_V2 (ec6aadc)(bd6ec9d)
  • bt/hfp_relay: Add hfp relay example (18d970d)(4748b15)
  • bt/a2dp_sharing: Add a2dp sharing example (24ef23e)(a11b743)
  • hal/lcd: Add HAL LCD based display transmit demo supporting DPI hardware boards (d7b59b2)
  • rt_device/bt: Add HFP example based on bt_device API (e6cb877)
  • hal/jpegd: Add HAL jpeg decoder example for 57x (ce67c33)

Tools

Fixed

  • build: Limit the EZIP decoding processing window for generating resources of SF32LB57 to 2048 (b4d5d83)
  • build: Use cross ranlib for gcc static libraries (524f3a5)
  • ptab: Fix v3 ptab.h storage/exec macro collision and ACPU execution address of ptab v2 (257050f)
  • sf-pkg: Fix the function of deleting external components (612bd65)
  • ptab: Fixed default bootload data region is not added on 52x and 57x (7c0b4b4)

Changed

  • BurnDriverEx: Update to support FLM write (330bf10)
  • ImgDownUart: Update to support 57 (0d3d733)
  • build: Update building.py for DFU_V2 (625583b)
  • jlink_drv: Add 57x device (708b4d9)
  • sdk_env: recover pruned environment state from disk on export (67c6536)
  • sftool: Update sftool to 0.2.5 to support sf32lb57x (50fcf07)
  • skills: Update sifli-code-review to support local commit review (e69e44e)
  • uart_download: Update ram_patch_57x_nor to fix download issue (0ba9987)

Added

  • crash_dump: Add crash dump capture and analysis (6c5eed5)
  • crash_dump_analyser: Add uart dump script for 57x (a9c3046)
  • skills: Add two skills for code review and 57 part number add (18fb18c)
  • svd: Add svd for 57x (2b41676)
  • segger: Add support of 57x (c467f90)

BSP

Fixed

  • board: Correct the resolution of OPM060DA display (fa11859)
  • board: Fix ACPU config of board sf32lb58-lcd_n16r32n1 (33b8cfa)
  • camera/gc032a: Fix build error if dfs is not enabled (8d01b61)
  • board: Enable configuration of transmit power value on sf32lb56-wlan-core_n16r12n1 (6c63754)
  • board: Disable unused MPI3 and point dfu/ble FAL partitions to flash2 on dpi-hdk_lb57gyd7n6_epd (a9a7fe7)
  • board: Add wave_table partition and EPD adapter board power supply for 57X EPD board (1b3ff47)
  • board: Improve driving capability for SDIO-related IOs on 57x (2d15c36)

Changed

  • board: Add support of chip SF32LB577UDNN6 (58904fd)(85a21be)
  • board: Not enable GC032A in board to avoid build error (c687bd3)
  • board: Add sf32lb57 part definition (6e62b7f)
  • peripherals: Move the TP&LCD drivers to their own folders (f88476a)
  • wifi/swt6621: Modified the name of the switch port interface (b14bab1)
  • wifi/swt6621: Implement AT command feature (91e2b4c)
  • board: Configure SDMMC card types for supported boards (283c159)
  • display: Add logic for using library wave table and screen rotation (593b0bf)
  • display: Optimize EPD driver on 57x (f2a80fe)

Added

  • board: Add sf32lb57-dpi-hdk board
  • board: Add sf32lb57-spi-hdk board
  • board: Add sf32lb57x-ramrun board
  • board: Add board sf32lb58-lcd_n16r16n1 using SF32LB583VCC36 (c533834)
  • camera: Implement the DVP interface with DVP (459b992)
  • display: Add htm 800x480 DPI LCD option (edb36c5)
  • wifi/aic8800mc: Add AIC8800MC driver (bdb766c)

Docs

Added

  • Add DFU V2 middleware documentation (46aff2f)
  • Add debugging related docs (cbe6cd6)
  • Add the LVGL FreeType middleware document (73efca2)