The STM32 Connectivity Expansion Pack is an extension of the CMSIS-Pack standard established by Arm to support Wi-Fi and Bluetooth LE application on STM32 MCUs with Infineon Wireless Combo devices.Infineon STM32 Connectivity Expansion Pack
Other
45
stars
9
forks
source link
SDIO DMA of STM32H743 needs buffer to be in AXI SRAM #18
cyhal_sdio_bulk_transfer function uses a temp buffer declared static. This buffer is located in .bss section and, by default, this section is located in DTCMRAM. On STM32H743 the SDIO DMA cannot access this memory so the buffer is never filled (but no error is reported).
This can be fixed by modifying the linker script :
/* Uninitialized data section */
. = ALIGN(4);
.bss :
{
/* This is used by the startup in order to initialize the .bss secion */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
*(.bss*)
*(COMMON)
. = ALIGN(4);
_ebss = .; /* define a global symbol at bss end */
__bss_end__ = _ebss;
} >RAM_D1
But it will be overwritten when re-generating code.
Steps to Reproduce:
Generate a project for STM32H743 (or maybe other H7xx)
Expected Result:
wifi scan
Actual Result:
Chip id is 0 because DMA buffer is not filled
Description:
cyhal_sdio_bulk_transfer
function uses a temp buffer declared static. This buffer is located in .bss section and, by default, this section is located in DTCMRAM. On STM32H743 the SDIO DMA cannot access this memory so the buffer is never filled (but no error is reported).This can be fixed by modifying the linker script :
But it will be overwritten when re-generating code.
Steps to Reproduce:
Expected Result: wifi scan
Actual Result: Chip id is 0 because DMA buffer is not filled
Frequency (1/1, 1/50, 1/100): 1/1
Build/Commit:
1.6.0
Target:
STM32H743 and CYW55573
Host OS and Version:
Arch Linux
Compiler:
Environment
FreeRTOS, Nucleo H743ZI2, chip connected on SDMMC1 with Murata hat.