找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3348|回复: 1
收起左侧

vxworks文件系统 EEPROM和RAM文件管理移植 NASA开源的

[复制链接]
ID:113276 发表于 2016-4-10 20:21 | 显示全部楼层 |阅读模式
This is governed by the NASA Open Source Agreement and may be used,distributed and modified only pursuant to the terms of that agreement.
竟然还是NASA开源的 瞬间逼格提升!!!
今天下午完成EEPROM 类文件系统的移植,今晚来总结一下移植过程和问题。

最近在考虑能否做一个基于小容量存储的管理系统,主要用来管理一些随机的存储和小容量的存储。比如EEPROM和部分RAM。但是苦于时间实在不太多,主要是不爱动脑子。所以还是拿来主义吧。于是伸手党先去找了一下RT的源码,可惜没找到关于这方面的,索性翻了一下git果然让我找到了一个。果断down下来。

这个文件系统是专门基于RAM和EEPROM的。看了一下简介似乎是vxworks使用的。


然后里面是一个是libraries一个是drivers还有一个是tools.其他不用管。
看了一下里面确定是GCC编译的。所以需要移植过来。让他单独运行
  
取出库里面的API和驱动文件夹里面的通用驱动interface 之后加入到工程中,app后来加上用于测试
编译,编译出错,主要分为这么几类
1、宏
2、编译器参数
3、头文件
4、平台字段重定义
依次处理完成,其中有个名叫fcnl.h的头文件,只要保留内部所有的和文件相关的宏即可其他无用。

+修改的struct void *全部改为uint8*
+time(NULL)重新修改为        Get_current_time()已完成编译
/* This macro defines the time interface function.  Defaults to time(NULL)  */
/*reused it to  Get_current_time() that reched complited*/
#define  Get_current_time()          now_systick ()

在编译 成功后对照API书写一下应用程序

测试中发现几个小问题,然后重新修改一下

+修改了read中求长度字节 原因是如果是MIN将无法有效读取文件。
EEFS_LibRead(myfile, Eepromdata, len);
BytesToRead = EEFS_MAX((EEFS_FileDescriptorTable[FileDescriptor].FileSize - EEFS_FileDescriptorTable[FileDescriptor].ByteOffset), Length);
                           (MIN)
+修改了myfile=EEFS_LibOpen(&myeefsInodeTable, "eeprom", O_CREAT, 1);
中的mode属性,
原来为:EEFS_FileDescriptorTable[FileDescriptor].Mode = (EEFS_FCREAT | EEFS_FWRITE );
增加读使能
EEFS_FileDescriptorTable[FileDescriptor].Mode = (EEFS_FCREAT | EEFS_FWRITE | EEFS_FREAD);

最后使用内部RAM 1KB测试OK


最后的最后那就是底层接口啦
底层的接口只有三个程序超级简单哪!



只要把他们映射到EPROM的驱动上就好了。目前直接用了RAM模拟之。

就可以在EPROM上玩文件鸟 ,but 文件大小还是可以定义的呀

麻雀是小了点但是五脏俱全,文件的句柄和磁盘管理,文件的搜索、属性、信息的记录等等都实现了并且
All api functions are designed to be as similar to a standard unix file system api as possible。




再怎么然并卵也得向前走啊
比特
wang



回复

使用道具 举报

ID:95059 发表于 2021-3-20 11:09 | 显示全部楼层
在哪呢? 能不能分享一下呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表