Dspfat32
所属分类:DSP编程
开发工具:C/C++
文件大小:52KB
下载次数:42
上传日期:2007-12-17 20:55:40
上 传 者:
smileage
说明: DSP和具有标准的并行ATA 硬盘接口之间的驱动程序,用于硬盘的读写。详细见readme.txt
(DSP and standard parallel ATA hard disk interface between the driver for the hard disk read and write. Details, see readme.txt)
文件列表:
lib\dspfat32.lib (76406, 2006-06-21)
testApp\cc_build_Debug.log (381, 2006-06-21)
testApp\Debug.lkf (396, 2006-06-21)
testApp\Debug.lkv (396, 2006-06-21)
testApp\testApp.cmd (422, 2006-06-19)
testApp\testApp.paf (1112, 2006-06-21)
testApp\testApp.pjt (972, 2006-06-21)
testApp\test_main.c (1398, 2006-06-21)
testApp\Debug\testApp.map (8875, 2006-06-21)
testApp\Debug\testApp.out (66636, 2006-06-21)
testApp\Debug\test_main.obj (3482, 2006-06-21)
include\dspfat32.h (5662, 2006-06-21)
include\hdtype.h (1440, 2006-06-21)
testApp\Debug (0, 2007-12-15)
lib (0, 2007-12-15)
testApp (0, 2007-12-15)
include (0, 2007-12-15)
一、库文件的使用
软件库由三个文件组成:
Hdtype.h
Dspfat32.h
Dspfat32.lib
其中两个头文件(.h 文件)包含了数据结构和函数的声明,函数体包含在库文件(.Lib
文件)中
存放目录结构和说明如下:
Include 目录包含两个头文件,lib 目录包含库文件,testApp 目录包含测试程序。
使用方法:
在使用时,在程序中使用‘#include’包含头文件,并将dspfat32.lib 库文件加入到
工程中。注意,请将程序的堆空间放到0x5000。如果使用cmd 文件链接工程,请
在文件开头加入:
-heap 0x5000
命令,如果使用DSP/BIOS 生成cmd 文件,请设置相应开关。tectApp 项目给出了
一个cmd 文件作为参考。
二、函数说明
函数说明如下:
基本文件操作函数
/**********************************************************************
HD_fopen: 打开硬盘文件
入口参数: filename:文件的绝对路径名,包含逻辑驱动器名和目录名
例如:
c:\\abcdef90\\test.dat
(其中"\\"在C 语言中表示'\'符号)
mode: 文件打开模式,可以有两种模式:
'w'表示写文件,
'r'表示读文件
返回值: 文件索引号,
如果文件打开成功,返回值为0-3 中的一个,
如果失败,返回值为'-1'
函数说明:文件的绝对路径名只能识别8.3 格式的短文件名
如果打开的读/写文件数超过4,或写文件数超过1,函数就会返回
错误信息.
在打开准备写文件时,程序不会覆盖原有的文件,而是返回'-1'
**********************************************************************/
int HD_fopen(char *filename,const char mode);
/**********************************************************************
HD_fseek: 移动文件的读指针
入口参数: fp:文件索引号,值为0-3,由HD_fopen 函数的返回值确定
offset:移动的字节数
origin:移动的起始位置,共有如下三个起始位置
HD_SEEK_SET:从文件的开头移动
HD_SEEK_CUR:从文件的当前位置移动
HD_SEEK_END:从文件的结尾移动
返回值: 移动的字节数
函数说明:仅用于读文件
这个函数用于读文件时。一般来说,返回值等于参数offset,
但是,如果计算出的移动范围在文件的开头之前或文件的结束之后
那么文件指针将会指向文件的开头或结尾处。
**********************************************************************/
int HD_fseek(int fp, int offset, int origin);
/**********************************************************************
HD_fclose:
入口参数: fp:文件索引号,值为0-3,由HD_fopen 函数的返回值确定
返回值: 无
函数说明:关闭文件,这个函数必须在程序中明确的调用,
这样才能保证文件的读/写正确
**********************************************************************/
void HD_fclose(int fp);
/**********************************************************************
HD_fwrite:向文件中写数据
入口参数: DataBuffer:写入数据指针
ElementSize:写入元素的大小
ElementCount:写入元素的个数
fp:值为0-3,由HD_fopen 函数的返回值确定
返回值: 写入数据的大小
函数说明:返回值等于ElementSize*ElementCount
**********************************************************************/
HDDword HD_fwrite(void *DataBuffer, int ElementSize, int
ElementCount, int fp);
/**********************************************************************
HD_fread:从文件中读出数据
入口参数: DataBuffer:读出数据指针
ElementSize:读出元素的大小
ElementCount:读出元素的个数
fp:值为0-3,由HD_fopen 函数的返回值确定
返回值: 读出数据的大小
函数说明:返回值等于ElementSize*ElementCount
如果这个值大于文件指针的当前位置到文件结尾的长度
则返回值由后者替代
**********************************************************************/
HDDword HD_fread (HDByte *DataBuffer, int ElementSize,
int ElementCount, int fp);
其他文件操作函数
/**********************************************************************
FAT_Init: 库程序初始化函数
入口参数: 无
返回值: 无
函数说明:库程序的初始化程序,
请在使用这个库里的任何其他函数之前调用这个函数
**********************************************************************/
void FAT_Init(void);
/**********************************************************************
GetPartitionTable: 读取当前的分区信息
入口参数: volume:逻辑分区号,按照一般的操作,为'c-z'或'C-Z'
table:保存返回的分区信息
返回值: 无
函数说明:
**********************************************************************/
void GetPartitionTable(char volume, PartitionTable_Type*
table);
/**********************************************************************
GetBootSectionTable:
入口参数: volume:逻辑分区号,按照一般的操作,为'c-z'或'C-Z'
table:保存返回的分区信息
返回值: 无
函数说明:
**********************************************************************/
void GetBootSectionTable(char volume, BootSectorFat32_Type*
table);
/**********************************************************************
GetLogicVolumeSize:计算硬盘的空间
入口参数: volume:逻辑分区号,按照一般的操作,为'c-z'或'C-Z'
返回值: 相关分区的空间
函数说明:返回值以字节为单位计算
**********************************************************************/
unsigned long GetLogicVolumeSize(char volume);
/**********************************************************************
GetLogicVolumeFreeSpace: 计算硬盘的剩余空间
入口参数: volume:逻辑分区号,按照一般的操作,为'c-z'或'C-Z'
返回值: 相关分区的剩余空间
函数说明:返回值以字节为单位计算
**********************************************************************/
unsigned long GetLogicVolumeFreeSpace(char volume);
/**********************************************************************
GetMaxValomeNUm:当前硬盘的逻辑分区数
入口参数: 无
返回值: 当前硬盘的逻辑分区数
函数说明:这个函数返回当前的逻辑分区个数。
**********************************************************************/
int GetMaxValomeNUm( void );
近期下载者:
相关文件:
收藏者: