NXP MCU 技术论坛
直播中

张昂笙

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

如何在dev_msc_ramdisk_bm_c7示例中将存储缓冲区移动到SDRAM?

我们正在破坏 RT1170 evkit 上的一些性能测试,我们正在使用 dev_msc_ramdisk_bm_cm7 示例。由于存储缓冲区受内部 DTCM 大小的限制,我们希望将其移动到外部 SDRAM 上。我们找不到一种简单的方法来做到这一点。任何人都可以帮助我们吗?

回帖(1)

LL-LING宁

2024-5-27 17:49:36
在 dev_msc_ramdisk_bm_cm7 示例中,存储缓冲区是通过定义缓冲区数组来实现的。您可以将该数组指针更改为指向 SDRAM。

以下是示例代码更改为将存储缓冲区移动到外部 SDRAM:

在 dev_msc_ramdisk_bm_cm7 示例中,找到以下代码段:

```
#define BUFFER_SIZE (4096U)
#define BLOCK_SIZE (512U)

static uint8_t s_diskWriteBuffer[BUFFER_SIZE];
static uint8_t s_diskReadBuffer[BUFFER_SIZE];
```

更改为:

```
#define BUFFER_SIZE (4096U)
#define BLOCK_SIZE (512U)

static uint8_t s_diskWriteBuffer[BUFFER_SIZE] __attribute__((section(".sdram")));
static uint8_t s_diskReadBuffer[BUFFER_SIZE] __attribute__((section(".sdram")));
```

使用 `__attribute__((section(".sdram")))` 将数组指定为位于 SDRAM 中的一个特定段。在修改后的代码中,缓冲区将被分配到 SDRAM 中。

请注意,使用 SDRAM 分配内存需要您在 sys_init() 函数中启用 SDRAM 控制器。如果您还没有这样做,请在启用 SDRAM 控制器后,进行此更改。
举报

更多回帖

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