当我阅读一些C程序时,我发现了一些注释,比如“撕裂事件”“包含撕裂信息数据的结构”“撕裂分析”,对于我这个没有英语作为第一语言的人来说,理解“撕裂”这个词的意思是很困惑的。那怎么理解呢?

`typedef struct tagRmsTearingServiceInfo
{
    UINT32  nvmLastPhysErrAddr;     ///< NVM physical address of last defective sector
    UINT8   nvmErrorCnt;            ///< NVM error counter for Map RAM-Init
    UINT8   nvmUnrecErrorCnt;       ///< NVM unrecoverable error counter
    UINT8   analysisData[10];       ///< 10 bytes for IFX internal use for tearing analysis
} RMS_TEARING_SERVICE_INFO;
/** Volatile FL Mailbox Area declarations */
typedef struct tagVolatileFlMailboxArea
{
    UINT16                      version;
    UINT16                      mailboxStatus;
    UINT16                      mailboxUpdateInfo;
    UINT8                       rfu_000[2];
    UINT32 volatile             interfaceActivationInfo;
    PIFX_MAILBOX_PAGE2          ifxMailboxPage2Addr;
    RMS_TEARING_SERVICE_INFO    rmsTearingServiceInfo;
    UINT8                       rfu_010[76];
    UINT32                      flStartMode;
    UINT8                       secFLTMDownloadKey[16];
} VOLATILE_FL_MAILBOX_AREA;`

最佳答案

撕裂是一个领域特定的术语。nemeq已经提到了最常见的领域,与GPU硬件和编程相关。
在您的案例中,基于注释关键字NVM、IFX等,我怀疑撕裂指的是中断的NVM操作。参见例如TLE987xQX BF BootROM User Manual
这在段落中有含蓄的定义:
减少NVM操作中断时的数据丢失风险
(撕裂事件)
在这里:
一种由复位或电源中断的NVM程序或擦除操作
损失(撕裂事件)。
另请参见同一手册中的5.4.4.2 Tearing-safe Programming
在TLE987xQX中,非线性映射扇区的映射机制
像日志结构的文件系统一样使用。当页面被编程时
在这个区域中,旧值不会被物理覆盖,而是
对同一扇区中的不同物理页(备用页)进行编程。
如果编程失败,则旧值仍存在于
扇区和用户可以通过
用户编程程序(参考表5-17),是否
值或新的失败值应实际保存在
部门。当擦除或写入过程被电源中断时
向下,这是在地图重建过程中发现的
下一次重置后的内容。在这种情况下,服务算法
例程自动启动并修复NVM状态利用
旧数据或新数据(或两者)完全有效的事实

关于c - 在某些程序中使用“撕裂”注释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54228447/

10-13 08:10