ST意法半导体
直播中

杨海清

7年用户 1697经验值
私信 关注
[问答]

STM32cubeIDE 1.3中带有SDRAM 的 FATFS导致STM32f746g-discovery不响应要怎么处理?

STM32f746g-Discovery 有外部 SDRAM,我想通过 FatFs 使用它。
然后我根据 BSP(板级支持包)驱动程序 [stm32746g_discovery_sdram.c][1] 在 cubeIDE 中启用了 FMC,除了一个参数“Write recovery time”,IDE 不允许我将其设置为 2,其最小值为 3 .
然后我根据 FatFs_RAMDisk 项目的 [ffconf.h][2] 配置了“FATFS->external SDRAM”中间件,注意这个项目也使用相同的外部 SDRAM。
现在我试图在 main() 中执行这段代码:
   结果结果;/* FatFs 函数公共结果码 */
     uint32_t 字节写入,字节读取;/* 文件写入/读取计数 */
     uint8_t wtext[] = "这是与 FatFs 一起工作的 STM32"; /* 文件写入缓冲区 */
     uint8_t rtext[100];/* 文件读取缓冲区 */
     如果(FATFS_LinkDriver(&SDRAMDISK_Driver,RAMDISKPath)== 0)
       {
         /*##-2-将文件系统对象注册到FatFs模块##############*/
         if(f_mount(&RAMDISKFatFs, (TCHAR const*)RAMDISKPath, 0) != FR_OK)
         {
           /* FatFs 初始化错误 */
           错误处理程序();
         }
         别的
         {
           /*##-3-在逻辑盘上创建FAT文件系统(格式)#########*/
           if(f_mkfs((TCHAR const*)RAMDISKPath, FM_ANY, 0, buffer, sizeof(buffer)) != FR_OK)
           .
           .
           .
但它挂在“f_mkfs”上。通过调试我发现它完全挂在 ff.c 上:
   如果(disk_write(pdrv,buf,b_vol,1)!= RES_OK)返回FR_DISK_ERR;/* 写入VBR扇区 */
在 sdram_diskio.c 上更进一步:
   DRESULT SDRAMDISK_write(BYTE lun, const BYTE *buff, DWORD sector, UINT count)
[那里][3] 是完整的 stm32cubeIDE 1.3 项目。






回帖(1)

杨华

2022-12-29 16:00:53
在以正确的方式配置 cubeMX 之后,我应该将我的 dicovery BSP 驱动程序的 sdram .c 和 .h 添加到我的项目中。现在一切正常。
而这驱动了__weak函数BSP_SDRAM_Init()。
举报

更多回帖

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