这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » Tornado之TrueFFS编程者指南(三)

共4条 1/1 1 跳转至

Tornado之TrueFFS编程者指南(三)

菜鸟
2002-11-20 02:47:37     打赏
6.引导映象和TrueFFS共享flash存储空间   缺省情况下,TrueFFS格式化工具会把整个flash空间用于TrueFFS。虽然TrueFFS的转译服务结合一个文件系统可以为数据的管理提供很多好处,但这也同样增加了flash作为一个引导设备时的复杂性。唯一可行的解决方案就是把TrueFFS排斥在flash的引导区外。 幸运地是,TrueFFS自带的格式化工具可以允许你从一个偏移地址开始格式化flash。这样就创建了一个TrueFFS不能触及的区域,你可以使用TrueFFS的一些工具来管理这个区域。从而你能把一个引导映象写到这个区域或者从上面擦除。不过,你得十分小心地使用这些工具,因为它们不仅可能过度使用flash,也可能写操作时超过这个区域,从而破坏掉TrueFFS。 7.TrueFFS的层结构简介   如图1-1所示,TrueFFS包含三层:翻译层(translation layer),MTD层(MTD layer),socket层(socket layer)。 图1-1 TrueFFS的层结构   翻译层主要实现TrueFFS和dosFs之间的高级交互功能。它也包含了控制flash映射到块、wear-leveling、碎片回收和数据完整性所需的智能化处理功能。目前有三种不同的翻译层模块可供选择。选择哪一种层要看你所用的flash介质是采用NOR-based, 还是NAND-based, 或者SSFDC-based技术而定。   Socket层则是提供TrueFFS和板卡硬件(如flash卡)的接口服务。其名字来源于用户可以插入flash卡的物理插槽。用来向系统注册socket设备,检测设备拔插,硬件写保护等。后面将详细讲解它的功能。   MTD层(Memory Technology Drivers)功能主要是实现对具体的flash进行读、写、擦、ID识别等驱动,并设置与flash密切相关的一些参数。TrueFFS已经包含了支持Intel,AMD以及samsung部分flash芯片的MTD层驱动。新的芯片需要新的MTD支持,你可以使用一个标准的接口来加入这些驱动。   以上三部分,我们关心的将会是后两层。   当在vxworks下配置TrueFFS时,你必须为每一层至少包含一个软件模块。后面我们将详细讨论。 8.TrueFFS配置显示工具 主要有两个:tffsShow()和tffsShowAll().前者为一个指定的socket接口打印设备信息。它的主要用来确定当要写一个引导映象时所需要的擦除单元数。后者则是提供在vxworks中已注册的所有socket接口的信息。 (未完) [upload=gif]uploadImages/2002111918472954267.gif[/upload]



关键词: Tornado     TrueFFS     编程     指南     fla    

菜鸟
2002-11-20 22:06:00     打赏
2楼
No problem! 这段时间一直在调8245的bsp,简直是焦头烂额!所以出得有些慢。还请大家多多原谅!后面将进入tffs的实战。

菜鸟
2002-11-21 20:28:00     打赏
3楼
我也想快一点啊!但这段时间调8245的bsp调得焦头烂额,根本静不下心来写。:( 其实我对tffs也不是搞得很透,只是想在此抛砖引玉,希望大家都加入进来一起讨论。如果你等不及了,可以搜一下前面的帖子(包括老坛子上)有许多关于tffs的讨论,再加上tornado的在线帮助,问题应该就很清楚了。   实际上,我们要作的工作大部是在mtd层的驱动,其他可以基本不作修改。

菜鸟
2002-11-22 02:18:00     打赏
4楼
我没有遇到你这种情况。 我修改了config.h,INCLUDE了TFFS,让系统自己去执行tffsDrv().而我在应用程序里只需要用usrTffsConfig()来挂接设备就可以了。如果你是象我这样做的就没有必要再执行tffsDrv()了。rfaRegister()根本不用去修改。你用的是什么flash和mcu?你要作的就是找一个类似的mtd,修改flash写、擦和identify。修改flash起始地址和容量的宏定义。

共4条 1/1 1 跳转至

回复

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