当我阅读一些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/