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.
工具/软件: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 文件附加到您的下一篇文章中。
谢谢、此致、
乔治
我没有找到问题的原因。 但我确实有一个猜测。
我发现您的计划有两个小问题。 我不认为这些问题是问题的原因。 但我将在下面详述这些内容。
我猜是问题的根本原因... 我怀疑某些系统配置详细信息是错误的。 外部存储器接口可能初始化不正确。 或类似的东西。 对这个猜测进行分析比较困难、需要我以外的专家的帮助。 既然如此、让我们先尝试解决小问题。 虽然这不可能解决问题、但无论如何都需要解决这些问题、也许我们会很幸运。
第一个小问题... 存储器范围 iDATA 中的所有段都未初始化、.cinit 除外。 您的系统是否支持在 iDATA 内存范围内的未初始化段.stack 和.far 之间刷写(或刻录或执行任何操作).cinit 段?
第二个小问题... 链接器命令文件 C6701.cmd 指定.cinit 段两次。 这不会导致任何问题。 但是、要清理东西、请将其中一个删除。
请告诉我解决这些小问题是否可以解决问题。 如果没有、我将向一些 C6700器件专家通知有关此主题的信息。
谢谢、此致、
乔治
Anton、
您是否仍在寻找有关此器件的指导?
此致、
Rahul