TI中文支持网
TI专业的中文技术问题搜集分享网站

tms570的1227 FEE f021库 操作片上flash模拟eeprom的问题

看了下 halcogen的对里面的函数不是很理解

  1. 读写函数 异步和同步的区别
  2. TI_Fee_MainFunction()  这个函数的作用是什么? 例子里面每次操作后面都有 这段:

    do
    {
    TI_Fee_MainFunction();
    delay();
    Status=TI_Fee_GetStatus(0);
    }
    while(Status!=IDLE);这段是什么意思?  delay我们准备换成定时器 而不是让程序死在这边 这部大概要多少毫秒?  我们的程序是安全相关的   while(Status!=IDLE);这个死循环我们也得改掉 

  3. 最后面 这个 TI_Fee_Format(0xA5A5A5A5U);  这个格式化操作是什么作用 

tks for answering
best regards
cc liu1:

回复 Sam Zhang:

感谢你的回答  对我帮助很大

还有两个小问题 

1.同步都写的语句走完,是不是都写就结束了,不需要像异步那样 循环调用mainfunction?

2.最后的那个格式化 是不是清除bank7上面的内容?那invalidate函数的功能又是什么呢?还是两个要配合使用?

Sam Zhang:

回复 cc liu1:

1.是的。

2.是的,清除整个FEE上的内容。invalidate将这个block进行invalidate操作,相当于没有写东西在里面。这两个不是配合在一起的。

cc liu1:

回复 Sam Zhang:

感谢你的解答

你说的 “invalidate将这个block进行invalidate操作”  将某个block无效,可否理解成 擦出指定的block?

Sam Zhang:

回复 cc liu1:

可以。

jie xia:

回复 Sam Zhang:

1.这个block 应该怎么理解呢?存储浮点数和整形数,这个block的大小是不是也要改变?

2.现在使用的芯片是TMS570LS1224,Flash 只有BANK0和BANK7,如果存储数据,我不是用FEE(BANK7),而是用BANK0,是否可以?若可以,相对FEE之下,是否有哪些不好的地方? 应该怎么操作?要注意哪些问题?

Sam Zhang:

回复 jie xia:

可以参考下FEE的User Guide。

不建议用BANK0来存储数据,同一个bank不能同时进行指令的执行和数据擦写。一般用BANK0来存储程序,BANK7来模拟EEPROM进行数据存储。

jie xia:

回复 Sam Zhang:

谢谢您的回复,对于HALCOGEN 产生的关于FEE的代码我还有些疑问:

1. 写入的时候使用 TI_Fee_WriteAsync(BlockNumber, &SpecialRamBlock[0]); 函数, 但是 SpecialRamBlock 中有100 Bytes 的值,Block 的大小是8 Bytes,他是如何写入100个Bytes的值的呢? 根据实测的情况看只写入了 与 Block  大小对应Bytes的数据。

2. 根据手册上的说法,Virtual Sector Header 有16 bytes ,Data Block Header 有 24 Bytes, 但是为什么我这边看到 地址是 0xF0200000 对应的是16Bytes 的数据,后面地址是 0xF0200010 ,16Bytes 对应的值都是 1,然后是 24Bytes 的Data Block Header 接着是与Block 大小对应Bytes 的数据(Sector 1的起始地址是0xF0200000)。请问 地址 0xF0200010  这里的16Bytes 的 1 对应的什么?

3.关于读取数据的时候,我先调用I_Fee_WriteAsync(BlockNumber, &SpecialRamBlock[0]); 写入一批数据,然后将SpecialRamBlock 的 下标由0改为8, 再写入一批数据,然后调用TI_Fee_Read(BlockNumber,BlockOffset,Read_Ptr,Length); 读取数据,BlockOffset = 4; Length = 1; 结果读取出来的值是14,理论上应该是12,这是为什么?另外,我第一次写入再读取的时候,数据是正常的读取的是4。 怎样读取不同Block 的数据呢?这里的不同包括Block的编号和Block 所在的位置。

jie xia:

回复 Sam Zhang:

对于上面提到的第三个问题更新一下,读取的数据是正确的,但是,第二次写入数据后,第一个Block 的数据就会变成 Invalid 状态,那怎么读取这一部分的内容呢?

赞(0)
未经允许不得转载:TI中文支持网 » tms570的1227 FEE f021库 操作片上flash模拟eeprom的问题
分享到: 更多 (0)