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/TMS320F28.0049万:内存映射阻止读取(CAN,LIN)

Guru**** 2583385 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/653793/ccs-tms320f280049-memory-map-prevented-reading-can-lin

部件号:TMS320F28.0049万

工具/软件:Code Composer Studio

大家好,

使用最新的CCS 7.2 ,我只能读取CanaRegs,LinaaRegs等寄存器,而不能读取内存区域或我自己的CAN/LIN定义。

对于LIN或CAN地址区域,内存浏览器显示“---”;对于我自己的CAN/LIN寄存器,“表达式”窗口显示“内存映射阻止读取目标”。

其它寄存器显示正确。

我知道这些外设是特殊的,是通过BP_16,BP_32 byte_peripheral属性定义的。

但是,我想知道哪种设置会导致"内存映射阻止读取目标"。

我认为它位于加载的gel文件f28.0049万.gel或其中一个xml文件(如f28.0049万.xml,f2.8004万x_can_regs.xml)中。

但是,哪种设置?

Stephan

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

    GEL_MapAddStr (0x0.00060001亿,0x0A00,"R|W|AS2",0); /*高速串行端口寄存器(不包括LIN) */
    GEL_MapAddStr (0x0.0006万B00,1,0x0500,"R|W|AS2",0); /*高速串行端口寄存器(不包括LIN) */

    请注意,他们已跳过LIN寄存器。 您可以通过将这两行更改为一行来解决此问题:

    GEL_MapAddStr (0x0.0006万,0001,0001,0x1000,"R|W|AS2",0); /*高速串行端口寄存器(不包括LIN) */

    CAN寄存器的想法相同。 只是因为寄存器所在的内存桥的性质,所以它们不会完全准确地显示。

    Whitney
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供信息。
    是的,在f28.0049万.gel中,我甚至有3条线用于LIN,CAN_A和CAN_B:

    /*外设内存映射*/
    GEL_MapAddStr (0x0.0006万A00,3,0x0100,"R|W|AS2",0); /* LIN寄存器 */
    GEL_MapAddStr (0x0.00480003亿,0x800,"R|W|AS4",0); /* Cana寄存器 */
    GEL_MapAddStr (0x0004A0003,0003,0x800,"R|W|AS4",0); /* CANB寄存器 */

    将3更改为1,或者更好地添加

    GEL_MapAddStr (0x0.0006万A00,1,0x0100,"R|W|AS2",0); /* LIN_A寄存器 */
    GEL_MapAddStr (0x0.00480001亿,0x800,"R|W|AS4",0); /* Cana寄存器 */
    GEL_MapAddStr (0x0004A0001,0001,0x800,"R|W|AS4",0); /* CANB寄存器 */

    显示内存。
    我将检查内存桥如何影响寄存器的显示方式。