器件型号: TMS320F28377S
尊敬的 TI 工程师:
当我使用 CodeSection 指令将函数从闪存移动到 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.
器件型号: TMS320F28377S
尊敬的 TI 工程师:
当我使用 CodeSection 指令将函数从闪存移动到 RAM 时。 我发现当执行上述操作时、如果调用此函数、产品会异常。

那么、您对这个问题有什么想法吗? 或者您是否需要更多详细信息以进一步发现。
期待您的答复。
祝你一切顺利。
焦炭。
焦炭、
很抱歉耽误你的时间。
如果要将函数移至 RAM、 还应该添加代码以将代码复制到 RAM。
该 pragma 仅告知链接器在 RAM 中分配一个运行地址、在闪存中分配一个加载地址。 它实际上不会移动代码。
您必须在调用函数之前添加此代码。
extern uint16_t RamfuncsLoadStart、RamfuncsLoadSize、RamfuncsRunStart;
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);
请检查代码中是否添加了这些内容、您仍然会看到此问题。
此致
Siddharth
您好、
Siddharth、
由于信息安全、很难共享整个项目。 只有将函数复制到 ram 时才会发生此问题。 只有我上面显示的函数才会出现问题。 其他人会正常工作,但这除外。
我检查了两个动作之间的不同映射。 但没有找到任何东西(如果你需要地图文档,我很高兴发送给你)。 地址和我设计的一样。 不同的现象只会发生在 机器的工作状态,即并网逆变器。 如果我没有将函数复制到 ram,这将是正常的。相反,输出电流将振动。 即使 CPU 未引用该函数也是如此。
祝你一切顺利、
焦炭。