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.

[参考译文] CCS/TMS570LS1227:在下电上电后 FEE 数据丢失

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/944068/ccs-tms570ls1227-fee-data-lost-after-power-cycle

器件型号:TMS570LS1227

工具/软件:Code Composer Studio

尊敬的团队:

我的客户希望使用 FEE 读取/写入数据。  

void EEPROM_TEST (uint8_t offset)
{
uint8_t Testdata[8];
uint8_t ReadData[8];
int32_t INDEX;
int32_t cycle=0;
uint32_t eep_delay_cnt=0;
STD_ReturnType oResult=E_NOT_OK;
uint16状态;


执行
{
TI_FEE _维护功能();
eep_delay ();
Status=TI_FEE _GetStatus (0);
eep_delay_cnt++;
}
while (Status!=idle);
TI_fee_read (1、0、ReadData、8);
do
{
TI_fee_MainFunction ();
eep_delay ();
STATUS=TI_FEE _GetStatus (0);
eep_delay_cnt++;
}while (Status!= IDLE);
offset++; //break1 *****
for (index=0;index<8;index++)
{
Testdata[index]= index+offset;
}
TI_fee_WriteAssync (1、Testdata);
do
{
TI_fee_MainFunction ();
eep_delay ();
STATUS=TI_FEE _GetStatus (0);
}
while (Status!= IDLE);
TI_FEE WriteSync (1、Testdata);
//读取长度未知的块*/
do
{
TI_FEE _ MainFunction ();
eep_Delay ();
Status=TI_FEE _GetStatus (0);
eep_DELAY_cnt

(while));+= IDLE!
TI_fee_read (1、0、ReadData、8);
执行
{
TI_fee_MainFunction ();
eep_delay ();
Status=TI_fee_GetStatus (0);
eep_delay_cnt++;
}while (状态!=空闲); 
}//break2 ********* 

在程序中的 break1和 break2处设置断点、他可以看到读取数据(ReadData)与写入的数据一致。 重新启动时、可以在 break1正常读取数据。

但是、如果重新加载程序、则在 Break1时无法读取任何数据。

请帮助您检查它。

1 执行读写操作后、可以看到0xf0200000附近的地址确实写入了数据

2重新启动后无变化

3 单击"Stop the click debug,memory browser is all fffs"

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

    我使用 HAL 代码生成示例 “example_TI_fee_Write_Read.c”和 注释测试了相同的内容  

    /*使写入的块无效*/
    // TI_fee_InvalidateBlock (BlockNumber);
    //执行
    //{
    // TI_fee_MainFunction ();
    // delay();
    // Status=TI_FEE _GetStatus (0);
    //}
    // while (状态!=空闲);

    /*设置组7的格式*/
    // TI_FEE 格式(0xA5A5A5U);

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

    您好、团队、有什么更新吗?

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

    不客气

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

    我将其 !解析

    谢谢!

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

    我只是注意到了您的问题。  

    FEE 初始调用(Init)。 虚拟扇区状态为0x0000_0000_0000_0000,这意味着该虚拟扇区的数据块结构已正确复制到新的虚拟扇区,现在已准备好擦除并初始化以供重复使用。