Other Parts Discussed in Thread:UNIFLASH
{
uint8_t testData[8];
uint8_t readData[8];
int32_t index;
int32_t cycle=0;
Std_ReturnType oResult=E_NOT_OK;
uint16 Status;
do
{
TI_Fee_MainFunction();
eep_delay();
Status=TI_Fee_GetStatus(0);
eep_delay_cnt++;
}
while(Status!=IDLE);
TI_Fee_Read(1,0,readData,8);
{
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_WriteAsync(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(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); //至此,读数据才完全生效
Susan Yang:
请您尝试一下,使用uniflash来烧录程序,之后使用uniflash的read memory 来查看是否正常写入了数据
,
user1658391:
是否我表述的不清楚,程序并没有丢失,只是保存在FEE中的数据丢失了,我想肯定时我得操作流程或配置有误,可是又不知道错在哪里
,
user1658391:
通过memory查看,看得到数据写进去了,但是地址好像不是从0xf0200000开始的,除了数据之外,还有好多其他的数据,不知道是什么,图片粘贴不了。
但是重新debug程序后,再看Memory Browser,原来地址中的数据又全部恢复成FF了,这是怎么回事
,
Susan Yang:
看起来程序没什么问题。您是否调用了TI_Fee_Format?
另外图片粘贴的话,您可以使用右下角的“使用高级编辑器编辑文本”以附件形式上传
,
Susan Yang:
另外我手边没有这个板子,不好测试。所以我在E2E英文版发了个帖子咨询对应的专家,您可以跟踪/补充
e2e.ti.com/…/944068
,
user1658391:
1106.新建 Microsoft Word 文档.docx
,
user1658391:
我上传了一个附件,包含debug过程中的截图,请帮我更新进去,谢谢!
,
Susan Yang:
已经更新了,明天应该会有回复
,
user1658391:
我用HAL Code Generation中提供的例子重新测试了,并注释掉 以下这几条语句
/* Invalidate a written block*/
//TI_Fee_InvalidateBlock(BlockNumber);
//do
//{
//TI_Fee_MainFunction();
//delay();
//Status=TI_Fee_GetStatus(0);
//}
//while(Status!=IDLE);
/* Format bank 7 */// TI_Fee_Format(0xA5A5A5A5U);测试现象和上述所描述一致,只要重新debug,0xf0200000处上次写入的数据就会自动变成0xFF,已经过多次确认。
期待答案,项目推进到此处时,无法继续了
,
Susan Yang:
看英文论坛的回复,您解决了问题?
,
user1658391:
是的,我解决了这个问题,但是还有一个问题需要向您请教!
HAL Code Generation软件默认只能配置16个block,而我需要做至少24个block,请问我应该如何扩展?
我尝试将ti_fee_cfg.h文件中将TI_FEE_NUMBER_OF_BLOCKS改为17,并将ti_fee_cfg.c中的Fee_BlockConfiguration初始化到17个block/*Block 17 */{/* Block number*/17U,/* Block size*/64U,/* Block immediate data used*/TRUE,/* Number of write cycles*/0x8U,/* Device Index*/0x00000000U,/* Number of DataSets*/1U,/* EEP number*/0U},
但是,当我对第17个block进行写操作时,软件跑死了。
请问有没有扩展block的说明文档?
,
Susan Yang:
您可以看一下
processors.wiki.ti.com/…/TI_FEE
需要您手动添加
processors.wiki.ti.com/…/TI_FEE_User_Guide.pdf
使用的是 ti_fee_cfg.h & ti_fee_cfg.c,单纯看您的代码,感觉没错
,
Susan Yang:
在ti_fee_cfg.c中有如下说明,不知您是否修改了TI_FEE_TOTAL_BLOCKS_DATASETS?
/* If project needs more than 16 blocks, add additional blocks here and alsomodify TI_FEE_TOTAL_BLOCKS_DATASETS and TI_FEE_NUMBER_OF_BLOCKS in ti_fee_cfg.h*//** @def TI_FEE_TOTAL_BLOCKS_DATASETS *@brief Alias name for total number of blocks and datasets */ #define TI_FEE_TOTAL_BLOCKS_DATASETS16U
,
f zl:
您好,我同样遇到了掉电后Flash数据丢失的问题,请问您是怎么解决的?