我按照https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/RT1170-debugging-when-application-is-built-for-S...和 RT1170_BriefOverview_v210.pdf 中提到的步骤进行了操作。
我正在开发一个需要大量头部内存的应用程序。
按照提供的步骤,使用 RT1170_BriefOverview_v210.pdf 中提到的修改刷新 hello world,我可以在调试模式下使用同步动态随机存取存储器(SDRAM)。
但是在这种变化之后,同步动态随机存取存储器(SDRAM)也用于存储代码。
在我的应用程序中,我希望代码存储在闪存中,而 BOARD_SDRAM 仅用于堆和堆栈部分。
我将把我的应用程序闪存到闪存中,该应用程序的堆和栈部分将使用 BOARD_SDRAM。
请指导我进行所需的更改。
按照恩智浦支持中的步骤,我得以在 RT1170 EVKB 上加载多核项目(如何在 RT1176 & [RT1170] 中调试双核项目)。
当我能够从同步动态随机存取存储器(SDRAM)运行后,在 Master/Core M7 项目中,我进入了项目设置-> C/C++ 版本-> 设置-> 托管链接器脚本并禁用了 " 将应用程序链接到 RAM " 设置。
然后我得以刷新二进制文件,并确认应用程序在 RESET 时从闪存运行,并成功地将 M4 应用程序从闪存复制到同步动态随机存取存储器(SDRAM)。
感谢您对 NXP MIMXRT 系列的关注!
问题的根本原因在于您使用了这个步骤6:
这会将整个图像加载到 RAM 中执行,也是生成非 XIP 图像的选项。
对于您的应用场景,在启用和配置同步动态随机存取存储器(SDRAM)之后,您只需要在 MCUXpresso IDE 中正确配置 Head/Stack:
致以最诚挚的问候,
Gavin
在步骤 6 的基础上做了你建议的更改,并在预处理器中使用了 "XIP_BOOT_HEADER_DCD_ENABLE=1" 宏之后,我的固件使用了同步动态随机存取存储器(SDRAM)。
但我的应用程序是用 C++ 编写的,所以我最初对它进行了与 hello world C 应用程序相同的修改,但没有成功。
因此,还在 C++ 预处理器宏中添加了"USE_SDRAM" 和"XIP_BOOT_HEADER_DCD_ENABLE=1" 宏,结果成功了。
C++ 预处理器宏
C 预处理器宏
感谢您的帮助。