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/TMS320C6701:CCS/TMS320C6701

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/945263/ccs-tms320c6701-ccs-tms320c6701

器件型号:TMS320C6701

工具/软件:Code Composer Studio

您好!

需要有关 tms320c6701的帮助。  

问题出在程序(非数据)内存读取中。 链接器具有指令:.const > IPROG (所有常量值都放置在 prog 存储器中(IPROG:      O = 00000200h  l = 0000FE00h)。 程序代码最简单:

CONST int AR1[5]={1、2、3、4、5};
int AR2[5]={0、0、0、0、0};

int main (void)

{
AR2[0]= AR1[0];
AR2[1]= AR1[1];
AR2[2]= AR1[2];
AR2[3]= AR1]];AR1[AR1]


映射文件批准将 AR1放置在0x0000xxxx 地址、将 AR2放置在0x8000xxxx。

但是 AR2获得的值不是1、2、3、4、5、而是一些其他值。

有人知道为什么会发生这种情况吗? 请提供帮助。

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

    .const 是一个初始化段、它不包含代码、而是数据。  请描述此段从可执行.out 文件到系统内存的过程。  此过程是否有问题?

    谢谢、此致、

    乔治

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

    您好、George、  

    我的主要目的是从外部 MRAM 引导、而不处理任何数据存储器、仅处理程序存储器。 因此、这就是我尝试将.const、.cinit 段放置到 PROG 存储器的原因。  

    现在、我将使用简单程序 mator - sauris USB ISO plus 将.out 文件下载到芯片。 内存浏览器(在 Code Composer Studio 中处于调试模式)显示该值

    的.const 数据是正确的、并放置在0x0000xxxx mem 中。

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

    我假设您的代码是作为 CCS 项目组织的。  请按照文章 共享项目中的说明压缩项目、然后将该 zip 文件附加到您的下一篇文章中。

    谢谢、此致、

    乔治

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

    e2e.ti.com/.../c6701_5F00_t.zip

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

    我没有找到问题的原因。  但我确实有一个猜测。

    我发现您的计划有两个小问题。  我不认为这些问题是问题的原因。  但我将在下面详述这些内容。

    我猜是问题的根本原因... 我怀疑某些系统配置详细信息是错误的。  外部存储器接口可能初始化不正确。  或类似的东西。  对这个猜测进行分析比较困难、需要我以外的专家的帮助。  既然如此、让我们先尝试解决小问题。  虽然这不可能解决问题、但无论如何都需要解决这些问题、也许我们会很幸运。

    第一个小问题...  存储器范围 iDATA 中的所有段都未初始化、.cinit 除外。  您的系统是否支持在 iDATA 内存范围内的未初始化段.stack.far 之间刷写(或刻录或执行任何操作).cinit 段?  

    第二个小问题... 链接器命令文件  C6701.cmd 指定.cinit 段两次。 这不会导致任何问题。  但是、要清理东西、请将其中一个删除。

    请告诉我解决这些小问题是否可以解决问题。  如果没有、我将向一些 C6700器件专家通知有关此主题的信息。

    谢谢、此致、

    乔治

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

    您好、George、

    昨天、我花了一些时间阅读 SPRU577dma.pdf、并找到了一张有趣的图片:

    据我所知、仅可通过 DMA 来存取程序存储器。 出乎意料的功能! )

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

    Anton、

    您是否仍在寻找有关此器件的指导?

    此致、

    Rahul