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.

[参考译文] TMS570LS1114:如何将重要数据保存到分割的 ROM 空间中

Guru**** 2460850 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS1114

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/653519/tms570ls1114-how-to-save-my-important-data-into-the-divided-rom-space

器件型号:TMS570LS1114
主题中讨论的其他器件:HALCOGEN

尊敬的专家:

如何将重要数据保存到分割的 ROM 空间 中。一些变量数据不会复制代码、而是进入我分割的 ROM 区域

1.我想根据 F021闪存 API 读取和写入闪存,并且我在论坛上发布了我的问题。 但当我解决这个问题时、出现了一些问题。

我的目的是对地址为0x000fe000且长度为0x00001000的小字段进行分频、以恢复重要数据、而不是只将闪存代码复制到 SRAM 中运行。 例如:

uint32_t 参数=18;

我想将参数的地址恢复到 CAL_ROM 中、以便修改参数的阀。 像这样的大量数据将被放入 CAL_ROM 而不是 RAM 中。

4.我在声明函数 copyAPI 2RAM()后不知道该怎么办。事实上,copyAPI 2RAM()是用汇编语言编写的,由于我对汇编代码的理解程度较差,所以我已经用 C 代码替换了它。

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

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

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

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

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

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

    因此、为了让我了解问题说明、您需要在闪存内的某个位置分配4K (长度为0x1000)的空间来存储校准数据。 您提到的位置是0x000fe000的起始地址、我假设您确定的位置只是将其放置在偏僻的地方、如果需要、有一些增长空间。

    您是否考虑为此目的使用第7列气缸组? 或者是否计划使用组7来仿真 EEPROM 并存储更多动态数据? 请注意、如果您使用组7、则可以在从组0执行时对其进行编程、而无需将 API 复制到 RAM 中、也可以使用 Halcogen 随附的 FEE 驱动器、并像仿真 EEPROM 一样对其进行管理、以便将来进行更新。 如果您选择 FEE 驱动器选项、则会产生一些开销、因此您需要为数据分配略高于4K 的区域、 但是、如果您严格地将其用作仅用于 THR 校准信息的附加数据闪存、则可以跳过 FEE 驱动器并直接使用闪存 API 以更高效地使用该空间。

    如果您选择将校准数据保留在 Bank0中、则必须继续将 API 和支持代码复制到 RAM 中、以便可以将信息编程到 Bank0中。 这是因为无法同时从同一个银行执行和编程。 请注意、这与数据将存储在末尾无关、而是与执行数据位于同一个存储区中。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Chuck Davenport:
    非常感谢您的热情申请。
    您的理解。 由于 EEPROM 被用于其他函数并且 TMS570LS1114只有一个 BANK0、我必须将校准信息恢复到 CAL_ROM 中。因此我别无选择、只能使用闪存 API。我知道我必须首先将代码从闪存复制到 RAM、此外、 我需要将此数据加载到4K 室中(CAL_ROM、原始地址为0x000fe000、长度为0x00001000)。但我不知道如何加载此原始校准信息、 无论我是应该编写一个函数来加载此重要数据,还是应该使用 FAPI 函数直接在 main.c 中写入数据,都应该编写此信息帐户以复制闪存代码。
    实际上、我知道我必须将此代码从闪存复制到 RAM 才能运行、但在应用此操作 FAPI 函数之后、我会遇到任何问题。 我尝试从 QJ Wang 中找出代码根、但我不熟悉汇编语言、构建项目时出现了许多问题。

    谢谢、此致、
    秋奇
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是否可以这样操作:
    #pragma CODE_SECTIONS (main、".system");// RAM 中的印象代码
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、邱奇、

    有关此主题的文章有很多。 以下是一些供您参考的内容:
    e2e.ti.com/.../541952
    e2e.ti.com/.../62954
    e2e.ti.com/.../254376

    请查看这些内容、看看这些内容是否能解决您的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Chuck Davenport、您好:

        现在、第二种方法是、我已经成功地将代码从闪存复制到 RAM。但 我无法将数据写入 CAL_ROM

    谢谢、此致、

        秋奇