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.

[参考译文] TMS570LS0432:已写入配置的软件回读

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/963107/tms570ls0432-software-readback-of-written-configuration

器件型号:TMS570LS0432

许多 TMS570模块包括一个安全机制、此机制要求用户应用程序读回任何已写入配置。

实际上、配置寄存器几乎总是由 Halcogen 函数更改。 但是、这些函数上的代码不会执行此检查、并且这些函数上的代码块会自动生成。

这是否意味着用户应该在每个 halcogen 函数的用户代码标签之间手动插入一个检查、以确保寄存器的值在退出函数之前是按预期的那样?

您的经验中是否有一些建议的做法来实现这些安全机制?

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

    是的

    我也有这种怀疑。

    我的认证公司的回应是、需要测试 HCG 生成的所有代码

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

    您好!

    请参阅该主题中的反馈:

    您是对的、您需要编写 Won 函数来执行已写入寄存器的回读。

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

    我看到、感谢你们的回答、不知为何我错过了这个主题、因为它与其他有关定期回读的安全机制相关、而不是在编写后

    Halcogen 函数必须全部使用 Halcogen τ 或其他工具进行测试、无论如何、我只是想验证所有函数都必须得到补充。

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

    你好

    您可以  通过  此函数"ReG_Read_Compare"定期测试寄存器

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

    然而,确实注意到这似乎是在进行中的工作。 该文件中有注释、如"(临时完成-删除反相 b4版本)"或"保留用于增强功能"、"请勿使用这些宏"。

    有些模块没有自己的 xxGetConfigValue()函数,如 FEE 或 L2L3 (如果我没有弄错)。 如果您自己实现这些寄存器、请注意、非静态寄存器必须被省略(如果一个寄存器由于正常运行而需要改变值、就像一个状态寄存器一样)。 因此、应只读回配置寄存器。

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

    你好

    此函数具有 FEE 或 L2L3

    typedef enum _ModuleId{
    INVALID = 0、/**<保留、请勿使用*/
    _no_supported_1 = 1、/**<保留、请勿使用*/
    PMM = 2、/**<电源管理模块-电源状态控制器*/
    DCC1 = 3、/**< DCC1 */
    DCC2 = 4、/**< DCC2 */
    系统= 5、/**<系统(SYS)模块*/
    ESM = 6、/**<错误信令模块*/
    CCMR4 = 7、/**< Cortex-R4比较模块*
    TCMFLAASH = 8、/**<片上闪存 TCM (ATCM)*/
    FEE = 9、/**<闪存 EEPROM 仿真模块*/
    SRAM = 10、/**< SRAM 模块(BTCM 和外设 SRAM)*/
    L2L3 = 11、/**< LEVEL2和 LEVEL3互连子系统*/
    EFC = 12、/**< EFuse 模块*/
    OTP = 13、/**< OTP 模块*/
    IOMM = 14、/**< IO 多路复用模块*/
    VIM = 15、/**<矢量中断模块*/
    RTI = 16、/**<实时中断模块(定时器)*/
    PBIST = 17、/**< PBIST */
    STC = 18 /**<自检控制器*/
    }模数 ID;

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

    是的、但在 register_readback .c 上

    #if L2L3_enabled
    case L2L3:details->baseline=&l2l3Baseline;
    details->size = sizeof (l2l3_config_reg_t);
    /* SAFETYMCUSW 95 S MR:11.1、11.4- "Reason - Implementation Constraint"*/
    details->getConfiReg=(getConfiReg_t)l2l3GetConfigValue;
    break;
    #endif 

    l2l3GetConfigValue 是否存在? 在哪个文件中? 也许我错过了一些 halcogen 标志?

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

    根据

    https://e2e.ti.com/support/microcontrollers/hercules/f/312/t/849644?RM48L940-L2L3-Register-Readback

    它可以用 pcrGetConfigValue()替换

    同样,我认为没有 iommGetConfigValue,用 pinmuxGetConfigValue()替换了它

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

    是的   

    你是对的。

    是否要将“l2l3GetConfigValue”更改为“pcrGetConfigValue”?并将“iommGetConfigValue”更改为“pinmuxGetConfigValue”

     REGISTER_READBACT.c?中

    我在   TMS570程序中看到#if IOMM_enabled 和#if L2L3_enabled 不启用。它是否与 CPU 型号相关?

    而 SAFY_LIBRARY 是不同的。

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

    是的、我正在使用 safeti 2.4.0_LDRA_less 库、其余代码基于 sl_TMS570LS0432_Noos 的演示应用

    默认情况下、这些标记处于禁用状态、并有注释用于不启用它们。 但是、如果您的应用也依赖于这些模块、则需要调整程序并启用它们。 我发现需要进行这些修改。

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

    你好  

     我也是

     我还使用 safeti 2.4.0_LDRA_less 库。

     我不知道,您的安全输出是什么,安全风险是什么。

     我认为您 的安全风险。在某些情况下。 但它可以通过判断程序中的某些标志位来加以保护。

    即使寄存器存在问题、也会导致风险输出吗??