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.

[参考译文] TMS570LC4357:费用中的错误处理

Guru**** 2466550 points
Other Parts Discussed in Thread: TMS570LC4357

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1098742/tms570lc4357-error-handling-in-fee

部件号:TMS570LC4357

我正在研究如何获取TMS570LC4357的费用。  写入和读取 分别使用 TI_FICE_WriteAsync()和 TI_FICE_READ()函数及其工作正常的异步模式完成。 不过,我需要 就以下的疑问提供协助:

1.在什么情况下,函数 TI_FICE_WriteAsync()返回E_NOT_OK,在这种情况下建议执行什么操作?

2.在什么情况下,函数TI_Fee读取()返回 E_NOT_OK在这种情况下建议采取什么措施?  

3. 根据我的理解,函数 TI_FICE_GetStatus()将仅给出收费模块状态为UNINIT,IDLE或BUSY,而不给出成功或失败状态。 是否有 任何函数可检测上一次写入或读取操作是成功 还是失败?  

4. 在使用 TI_fee_WriteAsync 和 TI_fee_read()函数时是否需要禁用中断 ?

5.在使用 TI_fee_WriteSync 和 TI_fee_ReadSync()函数时是否需要禁用中断 ?

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

    1.在什么情况下,函数 TI_FICE_WriteAsync()返回E_NOT_OK,在这种情况下建议执行什么操作?

    2.在什么情况下,函数TI_Fee读取()返回 E_NOT_OK在这种情况下建议采取什么措施?  

    [/引述]

    在费用用于执行数据复制和闪存擦除时,不接受写入和读取操作。  

    当您发出数据写入操作(TI_fee_WriteAsync或 TI_fee_WriteSync)时,数据将被写入活动虚拟扇区中的第一个空位置。 如果当前虚拟扇区中没有足够的空间来更新数据,它将切换到下一个虚拟扇区,并当前虚拟扇区中的其他数据块复制所有有效数据。 复制所有有效数据后,当前虚拟扇区被标记为可擦除,新的虚拟扇区被标记为活动虚拟扇区。 现在,所有新数据都将写入新的活动虚拟扇区,标记为“可擦除”的虚拟扇区将在后台擦除。

    3.</s>4357  根据我的理解,函数 TI_FICE_GetStatus()将仅给出收费模块状态为UNINIT,IDLE或BUSY,而不给出成功或失败状态。 是否有 任何函数可检测上一次写入或读取操作是成功 还是失败?  [/引述]

    TI_FICE_GetStatus() 返回TI收费模块的状态:  UNINIT,IDLE,BUSY或 BUSY_INTERNAL。  TI_FICE_GetJobResult()将返回上一个作业 是否已成功完成: job_OK, job_failed, job_cancelled等

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

    4. 在使用 TI_fee_WriteAsync 和 TI_fee_read()函数时是否需要禁用中断 ?

    5.在使用 TI_fee_WriteSync 和 TI_fee_ReadSync()函数时是否需要禁用中断 ?

    [/引述]

    如果 中断任务不包含任何收费操作,则不必禁用中断。

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

    还有一个问题:

    6.如何 知道读取数据的数据完整性?  是否有任何功能可以确认它? 当我使用TI_fee_read()执行读取操作时,如果函数 TI_fee_GetJobResult()的返回类型为 JOB_OK, 我是否可以将其视为对读取数据的数据完整性的确认?  

    请帮助。

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

    Harshal,您好!

    EEPROM也受ECC保护。  job_OK表示读取操作已完成,没有任何问题,但并不表示从块中读取的数据是正确的。

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

    您好,先生,

    因此,为了确认数据完整性,用户必须拥有自己的校验和方法,对吗?

    或者是否 有其他办法这样做? 请帮助。

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

    Harshal,您好!

    ECC保护是否不够?  

    收费驱动程序支持校验和。 但校验和仅用于数据写入,而不用于数据读取。  如果启用了校验和,则在写入数据块的过程中,将根据闪存中已存在的同一数据块的校验和计算并检查要写入数据的校验和。 如果校验和匹配,则不会写入数据。 如果未启用校验和,则逐字节比较数据。 如果数据不匹配,将启动写入。

    默认情况下不启用校验和。

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

    谢谢先生。

    现在我已经启用了ECC保护,如果 我使用TI_FICE_READ()执行读取操作,并且 如果函数 TI_FICE_GetJobResult()的返回类型为 JOB_OK, 我是否可以将其视为对读取数据的数据完整性的确认?  

    在这里,我只想了解读取数据的数据完整性。

    请帮助。

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

    如果在读取数据块时没有ECC错误(1位或2位),则从Fee读取的数据与写入闪存的数据相同。