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/TMS320C6657:手动16位EMIF写入出错!

Guru**** 2558250 points
Other Parts Discussed in Thread: CCSTUDIO

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/589364/ccs-tms320c6657-manual-16-bit-emif-writes-go-wrong

部件号:TMS320C6657
主题中讨论的其他部件:CCStudio

工具/软件:Code Composer Studio

我正在使用CCS C6657 7.1。0.0.0014万 目标是双C6657板。

没有闪存作为16位设备连接到EMIFA。  

在CCS中,如果在地址0x7000万处打开内存浏览器窗口并将其设置为16位十六进制- TI样式,则可以从空闪存设备看到预期的0xFFFF。

闪存可以接受的命令之一是代码0x98,即CFI查询。 如果我在第一个地址中手动输入此地址,则闪存设备不响应。 逻辑分析器显示0xFFFF已写入。 写入的内容似乎是地址0x7000.0002万的读取内容,或者更一般地说,写入数据,即使是16位地址,也似乎是从该地址+1读取的数据。 例如,如果我写入地址0x7000.0004万,则实际写入的数据是驻留在地址0x7000.0006万处的数据。

如果我手动输入0x98代码到地址0x7000.0002万,将收到正确的响应。

如果我执行代码以访问闪存(而不是在CCS中手动执行),则它会按预期运行。

为什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在回答我自己的问题时,这与必须在Gel脚本中执行的存储器映射设置有关。
    这条线使其发挥作用:
    GEL_MapAddStr (0x7000万,0,0x400万,"R|W|AS2",0); // EMIF16
    AS2是重要的部分。 但是,在哪里有描述GEL_MapAddStr语法的文档?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    但是哪里有描述GEL_MapAddStr语法的文档?

    CCS 7帮助包含 GEL_MapAddStr()选项的描述。例如:

    可以使用"ASN"指定访问大小,其中n是访问大小(以字节为单位)。 例如,“R|AS4”指定32位ROM。

    使用CCS调试器通过EMIF访问内存时,waitstate参数也可能很重要。

    Shared Memory (共享内存)介绍如何在SMP调试时设置共享内存块编号。

    还 在创建设备初始化Gel文件(spra74a),但它是2004年为CCStudio版本2.40 编写的,因此不确定该文档中有多少内容仍然相关。

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

    Chester Gillon 说:
    目前还 在创建设备初始化Gel文件(spraa74a),但该文件是为 2004年的CCStudio 版本2.40 编写的,因此不确定该文档中有多少内容仍然相关。[/QUOT]

    它仍然是相当相关的。 当前版本的CCS将模仿3.1 的凝胶行为。 文档中描述的一些项目已经更改,即现在在启动调试会话时调用Startup(),而不是简单地启动CCS IDE,并且不再支持模拟器。

    谢谢

    KI