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:EEPROM 空白检查会导致扇区激励/损坏

Guru**** 2451970 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1231767/tms570lc4357-eeprom-blank-check-causes-excpetion-corruption-of-the-sector

器件型号:TMS570LC4357

您好!

我们使用 F021闪存 API 驱动程序库来验证对 EERPOM 扇区的空白检查。 当发生如下所述的 GIO 中断时、我们要求在 EEPROM 中记录数据:

//加电

//初始化闪存 j

//擦除 EEPROM 的扇区7

//

//

//代码执行

//初始化 RTOS 并运行线程

while (1)

{

// GIO 中断

void ISR_handler (void)

{

//验证地址0xF0207000上扇区7的空白检查

//调用 Fapi_StatusTypeFapi_doBlankCheck()

//在 地址0xF0207000的扇区7中记录数据。

}  

但 在几次下电上电时、我们会看到扇区7被擦除或收到数据中止异常。

如果我们注释掉  Fapi_StatusTypeFapi_doBlankCheck()函数调用,我们将看不到任何问题,并且代码在每个电源循环中都能正常运行。 如果我们缺少任何专用于空白检查的配置、请告知我们。

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

    尊敬的 Srihari:

    (+) TMS570LC4357:TI FEE 函数在 FreeRTOS 任务内挂起。 -基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

    您能否验证上述问题并确定您的问题是否也是由相同的根本原因造成的。

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    我们的 RTOS 在特权模式下运行、我认为您提供的参考资料是由于在用户模式或 MPU 配置下运行费用减免器所致。

    在中断中使用编程或读取数据时我们不会遇到问题、调用空白检查函数时会发生该问题。

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

    您好、由于这是我们计划的限制因素、我能否获得进一步的参考或建议?

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

    尊敬的 Srihari:

    为什么您尝试在每次发生 GIO 中断时验证空白检查?

    您可以在初始化 本身之后执行该操作吗?

    您能否验证并让我知道如果您仅在初始化后执行空白验证会发生什么情况?

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    在初始化之后、当我们使用空白检查时、不会出现问题。 当通过 GPIO 收到电源中断时、我们有一项定制要求是对一些数据进行编程。

    当在中断中调用空白检查时、有时我们会看到异常或系统挂起。 但该问题是间歇性的 、我们会看到经过几次重启电源后出现。  

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

    尊敬的 Srihari:

    我从不会在中断处理程序中进行空白签入、我必须创建示例工程并需要对其进行测试。

    您还可以 执行以下测试:

    只需在处理程序中设置一个标志、如果设置该标志、则在 main while 循环中执行空白检查、我希望这不会造成问题。

    我将尝试用您的要求创建一个示例、然后进行测试并对您进行更新。

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    是否有关于此问题的任何更新?

    我们的要求是当系统断电(150ms 超时)之前发生电源中断(GIO 引脚)时、在 EEPROM 中记录数据。  您指定的方法不适合我们、因为时间不足以完成其他任务。

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

    尊敬的 Srihari:

    刚才、我创建了一个示例工程、并选中了 GIO 中断中的"Fapi_doBlankCheck"、但在这里看不到任何问题。

    e2e.ti.com/.../3835.FAPI_5F00_TEST_5F00_LC4357.zip

    这里我还没有包括免费 RTOS ,但你可以验证函数 "Fapi_doBlankCheck"的调用是否与你的一样?

    如果需要进行任何其他修改以创建您发现的问题、请提供建议。

    --

    谢谢。此致、
    Jagadish。