20楼#
发布于:2002-03-12 17:18
to index:
这回正确了.原文件掉了一些信息.如fat12字符等. to pinta: 用linux的分区工具查硬盘格式是指用来了解硬盘分区上的文件系统类型而已.
你想建立一个新的文件系统让操作系统识别? 我做过独立于OS的可移植文件系统(FAT),对你的这个东西挺感兴趣的,呵呵. |
|
|
21楼#
发布于:2002-03-13 20:07
to singwoo:
现在一个数据采集系统一般是通过一个PCI卡将数据传入计算机,为了将系统小型化,我计划抛开计算机而将数据直接写入硬盘。这样系统变为一个采集器,一块控制板加一块硬盘。完成数据采集后,可以通过USB将数据读入计算机(这时要在控制板上加USB控制器),或者 更简单一点直接将硬盘卸下,挂在计算机上做从盘,以完成数据的后续处理。 但是,写入硬盘的数据要被操作系统识别,所以要研究FAT。可苦于手中资料不全(关于FAT的),要是你做过独立于OS的可移植文件系统(FAT),请指点一二,谢谢了。 |
|
22楼#
发布于:2002-03-14 00:40
to pinta:
不敢指点啦,自己非常菜的。 一个采集器,一块控制板加一块硬盘。你的处理器是什么样的呢? RAM大概有多大呢?文件系统比较耗资源的。cache的大小对于读写速度是挺关键的。 我认为像你这样的系统没必要用硬盘,除非你采集的数据量非常大。 而且实现硬盘也较难些,还要熟悉ata命令。 还不去用一块flash来做呢,实现比较简单。flash读写比较简单, 同样可以实现文件系统。加USB接口的话,网上的资料非常多。 要简单实现文件系统的话, 1。简单点定义几个读写的函数,文件系统最终调用这几个底层函数来工作。 如: init(char drvno, char* data); read( char drvno,long start_sector_no,long nb_of_sector_to_read,char* buffer_data); write(char drvno,long start_sector_no,long nb_of_sector_to_write,char* buffer_data); close(char drvno,char* data); 其中read,write函数把扇区号转换成flash的block number后读写flash。 2。看看posix文档中对文件系统标准函数的接口定义。 3。利用hash表来快速访问文件cache. 还有一种方法较难,但不用自己做电子硬盘.找块带usb主控制器 (ohc 较容易些)的cpu,用一个rtos,自己实现一个usb 主机协议栈,并简单定义一个类似于微软那样的驱动程序接口。 写个mass storage 驱动程序就行了。你自己做的协议栈, 写usb驱动程序的话就太easy了,有兴趣还可以接些鼠标呀, 键盘等usb设备呢。 呵呵,胡乱说说。 |
|
|
23楼#
发布于:2002-03-14 10:00
请问各位:
没有盘符的硬盘怎么访问,VxD能够访问多大的硬盘空间。 谢谢! |
|
24楼#
发布于:2002-03-14 15:46
to singwoo:
采集器的处理器是一块DSP,在一次实验中需要采集的数据量非常大,几百兆是有了。 完成对硬盘读写的难度并不大,控制板上也要用一块DSP。 问个比较菜的问题,一个程序在没有操作系统的情况下能运行吗? 我现在的思路是:访问硬盘BIOS,得到关于FAT的个数,所占用扇区数和根目录的大小及位置等参数。当数据到达时,先在根目录写文件名,再在FAT处分配簇号,根据簇号计算物理扇区地址,最后将数据写入相应的扇区,以上工作由DSP完成。这样硬盘中的数据是可以被操作系统识别的。 现在的问题是我手中关于FAT的资料不全,能给我提供些帮助吗? |
|
25楼#
发布于:2002-03-14 16:59
1.一个程序在没有操作系统的情况下运行是没有问题的.
2.如果你能访问硬盘的话,那文件系统就没有问题了.fat16比较 容易些,不过每个分区不能很大. 我有fat16的资料,但都是日文的. 如果想要,我可以发给你.fat资料其实网上特别多的. 另,我也请教个菜问题: 你是用采集板上的dsp和主dsp共享内存的呀?还是采集板作为主 dsp的外设来搞的呀? |
|
|
26楼#
发布于:2002-03-14 18:46
to singwoo:
不共享内存,两块DSP相互独立。一般DSP内集成ROM和RAM,如果程序不大,片内的就足够用了。 |
|
上一页
下一页