这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Tffs 调试过程中出现的一点现象及总结

共1条 1/1 1 跳转至

Tffs 调试过程中出现的一点现象及总结

菜鸟
2006-11-19 18:37:55     打赏

Tffs 调试过程中出现的一点现象及总结

1.配置:

s3c44b0x,2M SST39vf160 flash,1M用于bootrom,1M用于tffs

2.Vxworks中建立Tffs,执行擦除操作出现的问题:

1) 擦除指令序列写完后不能正常结束,此后不能在flash中进行读写操作。

不能进行overdetect操作。否则则出现data abort error

将overdetect操作改成简单延时等待后问题依旧。

2)掉电后通过相关软件可以发现flash只擦除了一个sector或block。

3.推测问题的原因可能是:

1)地址映射是否准确

2)cache数据的一致性

3) 当bootrom启动程序时,此块flash中的后面1M空余空间是否可以建立tffs。即在flash中的bootrom运行时,擦除操作是否可以顺利完成。

(只针对sst39vf160)

4.为此我们编写了裸机测试代码进行验证

目的:

1. 通过编写裸机测试程序对flash进行擦除,写入操作确定地址映射无误。

2. 通过配置cache相关寄存器,禁止cache功能,验证是否擦除是否可以完成,。

3. 前两个均是通过仿真进行测试的。为了验证猜测3,将仿真裸机测试代码编译成hex格式通flashpgm烧入flash。擦除代码如下:

1)仿真测试

为未关闭cache时,由于出现的数据和上次读出的数据重复,而非预期的0xFF。

关闭了cache功能,overdetect函数运行无误,成功擦除。

通过裸机仿真测试,验证了地址映射是准确无误的,同时如果禁止cache功能或设置非cache保护区域,可以保证读写数据的一致性,顺利完成1M空间的连续擦除操作。

2) 烧写Flash启动测试

我们把上述的仿真测试代码编译成hex格式,烧写到flash中执行。执行擦除操作时(如擦除1M位置开始处的空间,擦除大小为16块,每块大小64k),当写入擦除指令序列后不能正常结束,这时如果对flash中的地址空间中的数据进行读写时(如进行overdetect操作)出现data abort错误,程序非正常中止。即和vxworks的BootRom中的格式化时建立tffs的问题一样。

5.结论

FLASH(SST39VF160)在自身运行程序(如bootRom)的同时,对自己进行擦写操作时,会出现异常。

以上只是个人总结,没有查询过官方资料进行证实,大家有什么不同的看法欢迎发表!




关键词: 调试     过程中     出现     一点     现象     总结     擦除     操作    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]