原因
由图可知BDMA只能访问SRAM4里的数据,但是我当时是把数据存到了外置的SDRAM中用FMC访问所以导致在使用HAL_SPI_Transmit_DMA(&hspi6, (uint8_t*)LCD_BUF_1, 3200)
无法传输数据。
解决方法
-
修改链接文件
STM32H743IITX_FLASH.ld
:在SECTIONS { }
中添加
.sram4 (NOLOAD) : { . = ALIGN(4); *(.sram4) . = ALIGN(4); } >RAM_D3
-
给定义的变量加上前缀如:
__attribute__((section(".sram4")))uint8_t LCD_BUF_1[10][320];
-
编译后可以看到变量已经成功存储到D3域了
-
到此已经可以正常使用
HAL_SPI_Transmit_DMA(&hspi6, (uint8_t*)LCD_BUF_1, 3200)