1373296_zh-CN

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

1373296_zh-CN

1373296_zh-CN

针对同步动态随机存取存储器(SDRAM)版本构建的 RT1170 调试

您好,

我正在使用 MCUXpresso 及其 SDK 为 RT1170 开发一个应用程序。

所提供的示例项目似乎都是使用 “DTC” RAM 版本的。与许多其他用户一样,我的应用程序太大了,无法容纳在那里,所以我正在尝试使用“同步动态随机存取存储器(SDRAM)”。

在尝试了论坛上其他一些帖子(尤其是https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/m-p/896979)中提出的解决方案后现在,我可以执行我的程序,如果应用程序已闪存,我还可以调试程序

但是,如果我使用 “将应用程序链接到RAM” 进行版本和执行,那么一旦遇到断点,应用程序通常会卡在那里。

我的假设是这是因为我没有正确初始化同步动态随机存取存储器(SDRAM)。上述文章使用 “rt1050_SDRAM_init.scp 作为调试器初始化 同步动态随机存取存储器(SDRAM) 控制器的连接脚本”。如果我使用这个文件,失败也就不足为奇了。

我不知道如何调整这个脚本才能在 RT1170 上运行。有没有人这样做过,或者能提供如何生成的建议?

感谢您提供的任何帮助。

Re: RT1170 debugging when application is built for SDRAM

你好@ Jingpan


按照提供的步骤,使用 RT1170_BriefOverview_v210.pdf 中提到的修改刷新 hello world,我可以在调试模式下使用同步动态随机存取存储器(SDRAM)。

但是在这种变化之后,同步动态随机存取存储器(SDRAM)也用于存储代码。


在我的应用程序中,我希望代码存储在闪存中,而 BOARD_SDRAM 仅用于堆和堆栈部分。


我将把我的应用程序闪存到闪存中,该应用程序的堆和栈部分将使用 BOARD_SDRAM。


请指导我进行所需的更改。

Re: RT1170 debugging when application is built for SDRAM

谢谢@ Jingpan

我只需要添加 .scp文件,结果成功了。

我已经掌握了第 5、第 6 和第 8 步,但我会试试其他步骤。

如果有帮助我还在 board.c 中做了以下更改,我认为这等同于<https://community.nxp.com/t5/i-MX-RT/MCUXpresso-and-RT1050-download-and-debug-in-SDRAM/m-p/896979>中描述的 RT1170_SDRAM_NOT_CACHED:

#ifdef USE_SDRAM
#ifndef RT1170_SDRAM_NOT_CACHED
/* 区域 9 设置:内存为普通类型,不可共享,外部/内部回写 */
MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_64MB);
#else
MPU->RBAR = ARM_MPU_RBAR(9, 0x80000000U);
MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, ARM_MPU_REGION_SIZE_64MB);
#endif /* RT1170_SDRAM_NOT_CACHED */
#endif


Re: RT1170 debugging when application is built for SDRAM

你好@robert_s

此脚本适用于 RT1050/60,但不适用于 RT1170/60。您可以使用附带的脚本。除脚本文件外,您还需要执行其他步骤。

在 C/C++ 版本 > MCU 属性设置中的内存详细信息中,将 BOARD_SDRAM 移至 SRAM_DTC_M7 上方。

  1. 连接脚本使用 RT1170_connect_M7_wake_M4_SDRAM_init.scp。
  2. 在附加选项中添加 --cachelib libm7_cache.so。
  3. 如果使用 USB/以太网/SDHC,请将 DMA 缓冲区放入非缓存区。
  4. 在 MCU C 编译器> 预处理器中添加 USE_SDRAM。
  5. 在属性中选择链接到 ram->设置->受管链接器脚本
  6. 如果项目与 USB 关联,则在 MCU C 编译器> 预处理器中添加 DATA_SECTION_IS_CACHEABLE=1。
  7. 如果项目与不带 freertos 的 USB 主机相关联,则将堆放入 DTCM 或不可缓存区域 (bm)

此致,




Tags (1)
No ratings
Version history
Last update:
‎12-20-2025 02:36 AM
Updated by: