This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMDXRM46HDK:如何将存储器段映射到外部存储器

Guru**** 1838760 points
Other Parts Discussed in Thread: RM46L852
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/582125/ccs-tmdxrm46hdk-how-to-map-memory-sections-into-external-memory

器件型号:TMDXRM46HDK
主题中讨论的其他器件:RM46L852

工具/软件:Code Composer Studio

您好!

在我们的 Hercules RM46x 开发套件上、我们希望将一些存储器部分映射到外部存储器。 但是、使用链接器命令文件执行此操作会导致以下 GEL 错误:

CortexR4:GEL 输出:   闪存的存储器映射设置@地址0x0CortexR4:GEL 输出:   由于系统复位、闪存的存储器映射设置@地址0x0
CortexR4:文件加载器:验证失败:地址0x80000020处的值不匹配请验证目标存储器和存储器映射。
CortexR4:GEL:文件:/local_ssd2/tmp/WIP /LaunchProj0_RM46/Release/LaunchProj0_RM46.out:发生数据验证错误、文件加载失败。
CortexR4:GEL 输出:   由于系统复位、闪存@地址0x0的存储器映射设置


在 CCS 中、通过"Texas Instruments XDS100v2 USB Debug Probe"连接到"RM46L852"。

GEL 文件是 emulation/gel/rm46l852.gel

段定义如下:

存储器

   引导程序(X) :origin=0x00000000 length=0x00000020
   FLASH0 (RX):origin=0x00000040 length=0x0017FFC0
   FLASH1 (RX):origin=0x00180000 length=0x00180000
   堆栈 (RW):origin=0x08000000 length=0x00004500
   RAM    (RW):origin=0x08004500 length=0x0002BB00
   RAM_EXT (RW):origin=0x8000000 length=0x00800000



部分

   .intvecs:{}>向量
   .text   :{}> RAM_EXT
   .const  :{}> RAM_EXT
   .cinit  :{}> RAM_EXT
   .pinit  :{}> RAM_EXT
   .bss    :{}> RAM_EXT
   .data   :{}> RAM_EXT
   .sysmem :{}> RAM_EXT
   
   .stack  :{}> RAM_EXT

   .arm.extab:{}> RAM_EXT
   .arM.exidx:{}> RAM_EXT



链接器选项包括:

-mv7R4 --code_state=32 --float_support=fpsalib -me -o3 --symdebug:none --diag_warning=225 --diag_wrap=off --display_error_number --hw_ram_type=int --wchar_t=32 --abi=es="-mag_warne-m="-linux/linux/infother"-status/linux-track_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_remote_rem /source/main.obj

我想我缺少一些东西、但我看不到什么-任何帮助都是非常感激的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Tobias、您好!

    在代码初始化之前、您无法将其加载到 SDRAM 中。 我建议您将代码加载到闪存中、并在数据初始化后将其移动到 SDRAM 中。

    此致、
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    QJ 您好、感谢您的回复!

    是的、实际上、这正是我要找的:可以初始化 SDRAM、但是:在加载程序之前。

    我们需要将一些段映射到外部存储器、因为它们不适合内部存储器、因此从闪存加载到 SDRAM 可以超越此目的。 我知道一些 C6x 板的 SDRAM 初始化是通过 GEL 文件完成的、我可以仅使用链接器命令文件将所有存储器部分映射到外部 SDRAM 中。 您能不能让我指向一些初始化 RM46HDK 的 SDRAM 的 GEL 文件? 谢谢!