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.

[参考译文] RM48L950:HTU 奇偶校验地址卡滞

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/802866/rm48l950-htu-parity-address-stuck

器件型号:RM48L950
主题中讨论的其他器件:HALCOGEN

我正在对 HTU1运行奇偶校验错误测试。 我能够生成奇偶校验错误 OK、它被 PAR 中的 PEFT 正确标记。 但是、PAOFF 似乎停留在0x001、因此当我与 SL API 的实际故障地址"#define htu1RAMLocVar (((UINT32) 0xFF4E0004U)"进行比较时、我得到一个地址不匹配、测试失败。 第

HTU1中的 PAOFF 在 Halcogen sysinit()之后被停留在0x001上(特别是在 system.c 中的 periphInit()之后,它只是将外设从复位中释放出来)。 因此、即使 PEFT 按预期设置了错误、我也无法获得正确的奇偶校验错误地址。 我已经尝试按照 TRM 的建议读取整个32位 PAR、但这不会取消冻结它。 TRM 有一个注释:"奇偶校验错误地址位将不会被 PORRST 或任何其他复位源复位。" 如何解决这个问题?

我认为 DMA 奇偶校验的行为与此类似、但这仅在第一个测试中失败-后续测试正常。 任何想法都将不胜感激。

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

    PAOFF 为奇偶校验错误地址偏移量。 如果您在测试模式下交换0xFF4E0204上奇偶校验数据的位0、当您从0xFF4E0004的 HTU RAM 中读取数据时、将会出现奇偶校验错误、错误地址(PAOFF)应为7。 PAOFF=0x001不正确。

    该错误地址不会通过复位或读取该寄存器来清除。 如果错误位(ESM1.8和 PAR 寄存器中的 PEFT 位)被清零、则 PAOFF 值不会影响器件运行。

    #if ((__little_endian__= 1)||(__little_ENDIAN__= 1)
    #define htu1RAMParLoc(volatile uint8 *) 0xFF4E0207U)
    其他
    #define htu1RAMParLoc(volatile uint8 *) 0xFF4E0204U)
    #endif
    #define htu1RAMLocVar((UINT32) 0xFF4E0004U)
    #define htu1RAMLoc((volatile UINT32 *) 0xFF4E0004U)

    请更改#define htu1RAMParLoc((volatile uint8 *) 0xFF4E0207U)
    要#define htu1RAMParLoc((volatile uint8 *) 0xFF4E0204U)

    我只是注意到了这一点。 这可能是软件错误。 请进行测试、如果更改使您的测试生效、请告诉我。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此更改后、PAOFF 仍为0x001。 我确认在进行此更改后、0xFF4E0204U 处的奇偶校验位翻转为"1"、但我的测试仍然不起作用。

    然后执行下面的行

    /*导致奇偶校验错误*/
    ramRead =(* htuRAMLoc); 

    其中 htuRAMLoc = 0xFF4E0004。 PAR 内容

    PEFT = 0

    PAOFF = 0x001

    在执行 ramRead =(* htuRAMLoc);line 后、PEFT = 1、但 PAOFF 保持不变。 请参阅下面的屏幕截图。

    我还应该尝试其他什么吗?

    BTW:我现在不使用 HTU2、但对于 HTU2、如果 HTU1是错误、应该#define htu2RAMParLoc ((volatile uint8 *) 0xFF4C020BU)也更改为#define htu2RAMParLoc ((volatile uint8 *) 0xFF4C0208U)?

    #if ((_little_endian__= 1)||(_little_ENDIAN_= 1)
    #define htu2RAMParLoc ((volatile uint8 *) 0xFF4C020BU)
    #else
    #define htu2RAMC0Locc ((volatile uint8 *) 0xFF4208U
    
    )#define hrtu2RAMParar #define (((UINT32) 0xFF4C0008U)
    #define htu2RAMLoc ((volatile UINT32 *) 0xFF4C0008U
    )#endif 

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

    我仍在等待回应、以便我们能够继续发展。 请告诉我、我是否可以查看或执行其他任何操作来解决此问题。 谢谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请告诉任何人? Guru、TI 员工、其他... 我必须尽快解决这个问题。 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    TI、请... 我希望这是我的 PI 业余爱好项目、我可以等待不确定的支持时间、但不幸的是、这不是。 真正的项目、发布计划和真正的客户承诺取决于开发人员在这一基于 Hercules 的产品开发方面取得进展。 我不像对待您的竞争对手那样豪华地拿起电话给当地的 FAE 打电话、我的第一个和后续帖子分别在星期六和星期日应该告诉您一些东西。 我喜欢这个 E2E 论坛、但即使您无法提供帮助、也请回复、以便我知道接下来要做什么并继续。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨、伙计
    我们对延误表示歉意。 QJ 遇到另一个关键问题。
    我们需要就此与您联系-请注意、周一是美国假日、我们可能需要更长时间才能回复。
    但是、我们将向您反馈我们可以提供的相关指导。

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

    您好、先生、

    我 在 RM48 HDK 上多次重复 HTU1奇偶校验测试、并且我获得了所有测试的正确 PADROFF:

    1:  要为0xFF4E0000的数据位0生成奇偶校验错误、奇偶校验错误的地址偏移量为0x03

    2.要为0xFF4E0000的数据位8生成奇偶校验错误、奇偶校验错误的地址偏移量为0x02

    3.要为0xFF4E0000的数据位16生成奇偶校验错误、奇偶校验错误的地址偏移量为0x01

    4、要为0xFF4E0004的数据位0生成奇偶校验错误、奇偶校验错误的地址偏移量为0x07

    5.要为0xFF4E0004的数据位16生成奇偶校验错误,奇偶校验错误的地址偏移为0x05

    有任何问题吗?

    我稍后将尝试使用 SDL。

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

    只需检查 SDL 示例代码的 MPU 设置。 用于0xFF000000存储器区域的 MPU 是器件模式、请将其更改为严格排序模式:

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

    您好、先生、

    HTU1 RAM 奇偶校验测试是否与 SDL 一起进行、工作正常:

    BTW、htu1RAMParLoc ((volatile uint8 *) 0xFF4E0207U)在 SDL 中是正确的。 我上次没有注意到它是 uint8。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 QJ。 HTU 的 MemoryInit 似乎已经解决了我的问题。 为什么必须将存储器配置为严格排序? 它仍然是 DEVICE_NONSHAREABLE。 我是否必须更改此 STRONGLYORDERED_sharedable?