ST意法半导体
直播中

英雄孤寂

11年用户 1187经验值
私信 关注
[问答]

为什么无法将STM32H743中的RAM_D2部分用作帧缓冲区?

RAM_D1 (0x24000000) 中的帧缓冲区一切正常。
这就是我尝试将帧缓冲区移动到 RAM_D2 (0x30000000) 所做的工作:
  • 我已经将 .ld 文件中的“TouchGFX_Framebuffer”设置为 RAM_D2
TouchGFX_Framebuffer :
{
  *(TouchGFX_Framebuffer)
  *(TouchGFX_Framebuffer*)
  . =对齐(4);
} >RAM_D2
  • 我在 main() 的开头启用 RAM_D2 时钟
__HAL_RCC_D2SRAM1_CLK_ENABLE();
__HAL_RCC_D2SRAM2_CLK_ENABLE();
__HAL_RCC_D2SRAM3_CLK_ENABLE();
  • 配置 MPU,将 RAM_D2 区域设置为与 RAM_D1 区域相同
我错过了什么才能使它起作用?





回帖(1)

刘斯宁

2023-1-10 11:00:16
DMA2D 可以将数据从 QSPI 复制到 RAM_D2(我可以通过调试确认这一点)但是 LTDC 不能从 RAM_D2 获取数据,因为它们之间没有连接。因此,在 STM32H7 上无法使用 RAM_D2 作为帧缓冲区。看看下面的内存架构。
我的结论正确吗?
举报

更多回帖

发帖
×
20
完善资料,
赚取积分