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.

[参考译文] TMS320F28388D:存储器映射阻止读取

Guru**** 2609955 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/997041/tms320f28388d-memory-map-prevented-reading

器件型号:TMS320F28388D
主题中讨论的其他器件:C2000WARE

当我调试28388时、我发现我无法从[表达式监视窗口]读取任何寄存器的值。  下面显示了一个示例

在[Register Watch Window]中、可以正确读取所有寄存器值。

CCS 版本为10.2.0.00009

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

    您好!

    是否正在调试 C2000Ware 示例? 如果是、以下哪一个示例? 您安装了什么版本的 C2000器件支持? 在尝试在"Expressions"窗口中输入寄存器时是否填充这些寄存器?

    此致、

    Ozino

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

    不、我正在调试我的项目。 但我的项目使用了版本为3.04的 C2000Ware 中的 drivelib 和 device_support。

    是的、 当尝试在"Expressions"窗口中输入它们时、会填充这些寄存器

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

    下面是我在 CCSv10.3.0中看到的内容。  我看到的一个不同之处是、在我的案例中、表达式视图中为我显示的"类型"是"注册组"。  它是 一个结构 I2CREGS。  因此、我认为在我的案例中、它使用 CCS 中的寄存器定义信息、在您的案例中、它使用 C2000Ware 中的头文件。

    我将尝试一些其他 C2000Ware 示例、看看我是否可以重现您看到的内容。  我还将尝试 CCSv10.2.0以查看这是否会产生影响。

    此致、

    John

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

    不幸运地使用其他 C2000Ware 示例或 CCSv10.2进行复制

    我可以看到您和我的另一个区别是您的访问地址@程序、我的访问地址@数据。   

    是否可以获取工程或.out 文件?

    CCS 将使程序中的符号优先于寄存器定义。  因此、由于您的程序在 C 语言中具有定义、这正是它尝试显示的内容。  您还可以发送链接器命令文件吗?   

    作为一种权变措施、您可以将其添加到 Expressions 视图中、以强制 CCS 使用寄存器定义。

    "REG":I2caRegs

    此致、

    John

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

    我可以 通过使用“REG”: “前缀”来查看寄存器的值。 您想告诉我您的电子邮件地址吗? 我可以向您发送 cmd 文件。

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

    我刚刚向您发送了一份友谊请求。  一旦您接受我们可以交换私人消息。   

    此致、

    John

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="3175" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/997041/tms320f28388d-memory-map-prevented-reading/3685561 #3685561"]我可以看到的另一个区别是,您的访问地址@程序,我的访问地址@数据。

    我将示例 C2000Ware (3.04.00.00)/英语/器件/ F2838XD/F28388D/示例/位字段/ CPU1/SPI_ex1_loopback 导入到 CCS 10.3中

    我没有尝试运行示例的硬件、但构建示例并查看映射文件会显示 用于将 C200Ware 位字段分配到 PAGE 0 (程序存储器)的 RegsFiles 结构。

     添加到示例项目的 C2000Ware_3_04_00_Software/device_support/f2838x/headers/cmd/f2838x_headers_nonBIOS_CPU1.cmd 文件不会定义将外设寄存器分配到哪个页面、因此默认情况下猜测链接器会放置在第0页中。

    而如果查看其他器 件的链接器命令文件、例如 C2000Ware_3_04_00_00_Software/device_support/f28004x/headers/cmd/f28004x_headers_nonbios.cmd、则外设寄存器会显式分配到第1页(数据存储器)。

    我认为编辑  f2838x_headers_nonBIOS_cpu1.cmd 文件会在外设寄存器的内存区域之前添加以下页行来解决这个问题:

    MEMORY
    {
     PAGE 0:    /* Program Memory */
     PAGE 1:    /* Data Memory */
       ACCESSPROTECTION           : origin = 0x0005F500, length = 0x00000040
    

    我尚未在 C2000Ware 中检查任何其他链接器命令文件、这些文件未将位域代码的外设寄存器显式分配到第1页(数据存储器)。  

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

    切斯特、

    感谢您深入探讨这一问题。  我将在 C2000团队中进行回放。

    Vesgine 您可以将 Chester 显示的 PAGE 语句添加到链接器命令文件中以更正问题。

    此致、

    John

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

    John、Chester、

    感谢您找到这种情况的根本原因。 我将为该问题创建一个问题、并在 C2000Ware 的未来版本中解决该问题。

    此致

    Siddharth

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

    Johns、Chester、

    感谢大家。 此问题得到了纠正、随后是 Chester 的建议。