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.

[参考译文] RM57L843:将 RUN_START 值强制到存储器部分

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1421852/rm57l843-force-run_start-value-to-a-memory-section

器件型号:RM57L843

工具与软件:

您好!

我尝试使用以下链接器脚本命令将闪存 API 加载到 RAM 中。 但我希望将其加载到链接器脚本中存储器下定义的 RAM 的特定存储部分。 有人能告诉我、我如何指定它吗?

小程序

.flashAPI (rwx) :origin=0x0806F000 length=(0x00001000)

}

闪存 API:

.\Boot\SDK (.text) Fapi_User
.\Boot\bl_flash.obj (.text、.data)
--library="c:\ti\Hercules\F021 Flash API\02.01.01\F021_API_CortexR4_LE_L2FMC.lib"(.text、.data)
}palign = 8 load = FLASH0 |FLASH1、run = RAM、load_start (apiLoadStart)、run_start (apiRunStart)、size (apiLoadSize)

在这里、我希望链接器脚本生成 apiRunStart 和位于上面定义的 flashAPI 存储器部分中的其他闪存地址。

谢谢!

Ravi

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

    尊敬的 Ravi:

    很抱歉,延迟响应,我在这个平均时间的其他问题被卡住。

    您可以尝试以下操作:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    MEMORY
    {
    FAPI_RAM (RW) : origin=0x0806F000 length=(0x00001000)
    }
    flashAPI:
    {
    .\Boot\Fapi_UserDefinedFunctions.obj (.text)
    .\Boot\bl_flash.obj (.text, .data)
    --library= "c:\ti\Hercules\F021 Flash API\02.01.01\F021_API_CortexR4_LE_L2FMC.lib" (.text, .data)
    } palign=8 load = FLASH0 |FLASH1, run = FAPI_RAM, LOAD_START(apiLoadStart), RUN_START(apiRunStart), SIZE(apiLoadSize)
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    完成此操作后、apiRunStart 将映射到 FAPI_RAM 部分(这是我们的必需部分)中的地址。

    因此、在主循环中、如果您调用以下函数、则闪存中的代码将移至 RAM 中的所需段。

    memcpy (&apiRunStart、&apiLoadStart、(UINT32)&apiLoadSize);

    ——
    谢谢、此致、
    Jagadish。