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.

[参考译文] TMS570LS3137:关于 HAL_Cogen 生成的代码

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/605807/tms570ls3137-about-generated-code-from-hal_cogen

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

*安全功能"EMF3"。
我使用 TMS570LS3137并阅读安全手册(SPNU511D)。
我使用 HAL_Cogen (版本04.05.01)。

我对 HAL_Cogen 生成的源代码有疑问。
我将以 EMIF 模块为例进行介绍。

在生成的代码中,有 emifGetConfigValue ()。
在这里、我知道我们正在比较初始值和当前值。
*寄存器的初始值设置由 EMIF_ASINNC1Init ()等实现

设置为初始值的值与 emifGetConfigValue ()处理为初始值的定义值似乎不同。

它是否始终使用安全功能"EMF 3"做出故障判断?

HAL_Cogen 工具是否存在问题?
或者、我的看法中是否有错误?

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

    我认为、由定义指定的初始值是复位后的默认值、而不是应用设置的初始值。 即,如果使用初始值类型,由 EMIF_ASYN1Init()函数调用设置的值将不同于由 emifGetConfigValue()返回的值。 目的应该是使用当前值作为类型、并与存储/验证的配置值进行比较、以确定是否有任何更改。

    我建议将用户代码添加到 emifASYBC1Init()函数中,以便立即读回寄存器并与预期的写入值进行比较。 然后使用此“黄金”配置来比较调用的 emifGetConfigValue()函数的结果,该函数的当前值类型被选为参数。

    Halcogen 代码实际上只是执行一些基本结构、并且在大多数情况下、不打算在没有一些集成器开发的情况下执行完整的安全机制来添加它们或使用这些结构来执行它们。 SafeTI 诊断库更是如此、它是一款可与 Halcogen 搭配使用的单独产品。