工具与软件:
您好、E2E 专家、
你好。
关于如何将 .text 从闪存复制到 RAM、是否有相关指南?
我使用 TMS570LS31371HDK、并想将.text 从闪存复制到 RAM、因为 RAM 的工作速度非常快。
我查看了下面的 E2E 主题。
CCS/TMS570LS3137:将代码从闪存复制到 RAM
但是、它不起作用。
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.
工具与软件:
您好、E2E 专家、
你好。
关于如何将 .text 从闪存复制到 RAM、是否有相关指南?
我使用 TMS570LS31371HDK、并想将.text 从闪存复制到 RAM、因为 RAM 的工作速度非常快。
我查看了下面的 E2E 主题。
CCS/TMS570LS3137:将代码从闪存复制到 RAM
但是、它不起作用。
尊敬的 TI-CSC:
根据我的理解、我们无法将整个文本部分保存到 RAM 中、因为在某种情况下、我们应该需要调用例程来将闪存文本数据复制到 RAM 中。这个复制例程应该位于闪存中、因为在不调用此例程的情况下、RAM 中的代码会是怎样的。
所以、我的想法是我们应保留.text 段、直到这个复制到 RAM 例程中的内容只在闪存中、因此、在这之后、我们可将代码从闪存复制到 RAM 中。
我为此创建了一个示例工程:
e2e.ti.com/.../TEXT_5F00_Section_5F00_Executing_5F00_RAM_5F00_LS3137.zip
我将解释我在该项目中所做的工作:
1、这里我将创建一个新的部分、名为 MAIN_CODE_SECTION、
2.想法是将我的所有主代码保留在这个部分中、而 main 之前的所有代码将像以前一样出现在.text 部分中。
3.现在在调用 main 例程之前、我会将主例程代码从闪存复制到 RAM 中、如下所示。
4.一旦我们将数据从闪存复制到 RAM 中、现在我们可以调用 main 例程来将剩余的代码执行到 RAM 中而不是闪存中。
注意:
如果我们尝试将整个.text 放入 RAM、则会出现 中止异常 、因为在 POR 后、RAM 将为空、在我们手动复制数据之前、RAM 中将没有代码。 因此、如果我们尝试在复制之前从 RAM 运行.text 段、显然会出现一些无效的指令、而这会导致出现异常。
——
谢谢、此致、
Jagadish。
尊敬的 TI-CSC:
您是否可以尝试以下步骤:
1.正确无误;进入调试过程后、无法看到暂停选项、并且代码不会在 main.c 起始处停止
这可能是因为我们会将整个代码移至 RAM 中而不是闪存中。 这可能会阻止、但我们可以做一件简单的事情:
2.转到"Debug"选项卡、然后选择"Texas Instruments XDS1xx USB Debug Probe"
3.一旦您选择它,它应该会启用暂停选项
4.现在如果您暂停代码、可以看到执行的位置:
5.如果要再次开始调试工程、请点击"System Reset"选项、如下所示:
6.这会将代码带到重置条目
然后、您可以再次正常执行代码
——
谢谢、此致、
Jagadish。