-
大小: 1.36MB文件类型: .zip金币: 1下载: 0 次发布日期: 2023-09-30
- 语言: 其他
- 标签: FATFSv0.12 vs2010 多线程
资源简介
FATFSv0.12 在移动平台开发时调试比较麻烦,这是移植到windows端vs2010的测试代码。支持多线程写文件到磁盘。
代码片段和文件信息
/*-----------------------------------------------------------------------*/
/* Low level disk I/O module skeleton for FatFs (C)ChaN 2014 */
/*-----------------------------------------------------------------------*/
/* If a working storage control module is available it should be */
/* attached to the FatFs via a glue function rather than modifying it. */
/* This is an example of glue functions to attach various exsisting */
/* storage control modules to the FatFs module with a defined API. */
/*-----------------------------------------------------------------------*/
#include “diskio.h“ /* FatFs lower layer API */
/*-----------------------------------------------------------------------*/
/* Get Drive Status */
/*-----------------------------------------------------------------------*/
static HANDLE hDevice = NULL;
long long g_SD_DevCap = 0;
static DSTATUS DiskStatus; //初始话磁盘状态为未初始化
DSTATUS disk_status (
BYTE pdrv /* Physical drive nmuber to identify the drive */
)
{
return DiskStatus;
}
/*-----------------------------------------------------------------------*/
/* Inidialize a Drive */
/*-----------------------------------------------------------------------*/
DSTATUS disk_initialize (
BYTE pdrv /* Physical drive nmuber to identify the drive */
)
{
// hDevice = CreateFile(“\\\\.\\G:“
// GENERIC_READ|GENERIC_WRITE
// FILE_SHARE_READ | FILE_SHARE_WRITE
// NULL OPEN_EXISTING FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED NULL
// );
int cbRet;
BOOL bRet;
char drv = (char)pdrv;
char DriveDevicePath[]=“\\\\.\\Z:“;
DriveDevicePath[4] = ‘G‘;
hDevice = CreateFileA(
(DriveDevicePath)
GENERIC_READ | GENERIC_WRITE
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE
NULL
OPEN_EXISTING
FILE_FLAG_NO_BUFFERING
NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
DiskStatus = STA_NOINIT;
return DiskStatus;
}
bRet= DeviceIoControl(
(HANDLE) hDevice // handle to device
FSCTL_ALLOW_EXTENDED_DASD_IO // dwIoControlCode
NULL // lpInBuffer
0 // nInBufferSize
NULL // lpOutBuffer
0 // nOutBufferSize
&cbRet // number of bytes returned
NULL // OVERLAPPED structure
);
// if ( !bRet )
// printf ( “Failed to allow extended DASD on device“ );
// else
// printf ( “FSCTL_ALLOW_EXTENDED_DASD_IO OK\n“ );
// lock it
bRet = DeviceIoControl( hDevice FSCTL_LOCK_VOLUME NULL 0 NULL 0 &cbRet NULL );
if ( !bRet )
{
DWORD ret = GetLastError();
DiskStatus = STA_NOINIT;
return DiskStatus;
}
return DiskStatus;
}
void seek_to_sect( HANDLE hDevice DWORD
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-10-25 11:32 Debug\
目录 0 2016-10-25 11:30 FATFS\
目录 0 2016-10-25 11:30 FATFS\Debug\
文件 3253 2016-10-25 11:30 FATFS\Debug\FATFS.Build.CppClean.log
文件 445 2016-10-25 11:30 FATFS\Debug\FATFS.log
文件 4557 2016-10-25 10:48 FATFS\FATFS.cpp
文件 4684 2016-10-24 18:12 FATFS\FATFS.vcxproj
文件 2020 2016-10-24 18:12 FATFS\FATFS.vcxproj.filters
文件 704 2016-10-24 19:03 FATFS\FATFS.vcxproj.user
文件 1539 2016-10-20 14:34 FATFS\ReadMe.txt
目录 0 2016-10-24 09:57 FATFS\Release\
文件 84906 2016-10-24 09:57 FATFS\Release\CL.read.1.tlog
文件 4078 2016-10-24 09:57 FATFS\Release\CL.write.1.tlog
文件 1256 2016-10-24 09:57 FATFS\Release\FATFS.Build.CppClean.log
文件 381 2016-10-24 09:57 FATFS\Release\FATFS.exe.intermediate.manifest
文件 85 2016-10-24 09:57 FATFS\Release\FATFS.lastbuildstate
文件 2496 2016-10-24 09:57 FATFS\Release\FATFS.log
文件 90820 2016-10-24 09:57 FATFS\Release\FATFS.obj
文件 1245184 2016-10-24 09:57 FATFS\Release\FATFS.pch
文件 0 2016-10-24 09:57 FATFS\Release\FATFS.write.1.tlog
文件 589326 2016-10-24 09:57 FATFS\Release\cc936.obj
文件 5060 2016-10-24 09:57 FATFS\Release\cl.command.1.tlog
文件 65860 2016-10-24 09:57 FATFS\Release\diskio.obj
文件 223474 2016-10-24 09:57 FATFS\Release\ff.obj
文件 2568 2016-10-24 09:57 FATFS\Release\li
文件 4626 2016-10-24 09:57 FATFS\Release\li
文件 1518 2016-10-24 09:57 FATFS\Release\li
文件 512 2016-10-24 09:57 FATFS\Release\mt.command.1.tlog
文件 794 2016-10-24 09:57 FATFS\Release\mt.read.1.tlog
文件 336 2016-10-24 09:57 FATFS\Release\mt.write.1.tlog
文件 50714 2016-10-24 09:57 FATFS\Release\stdafx.obj
............此处省略19个文件信息
相关资源
- gdb多线程调试小文件
- delphi高效并发编程
- VS2010下载地址115091
- 非常经典的多线程操作串口
- VS2010 使用TeeChart绘图控件
- 操作系统课程设计生产者和消费者问
- Linux多线程编程手册
- libsndfile的vs2010工程
- VS2010 用CxImage读入各种图片格式后在内
- 采用AfxBeginThread创建工作线程
- 采用_beginthread创建多线程
- 多线程同步演示采用CreateThread()和
-
window vs2010 中安装libxm
l2所需要的文 - Intel Threading Building Blocks编程指南
- 嵌入式实时操作系统的多线程计算-
- sjl06加密机模拟程序
- QGIS-源码QT4.8.6 和VS2010 qgis
- 基于VS2010的CSocket网络文件传输
- 多线程并发同步爸爸妈妈苹果橘子问
- 基于.net+vs2010的简单酒店管理系统
- 单片机多任务实现
- linux多人聊天室管理系统
- vs2010旗舰版
- 实现三维图形绘制
- 中国象棋vs2010源码
- VS2010 免杀域名360个人版远控
- 操作系统实验多线程读者写者优先问
- VS10-KB2251084-x86.exe
- Win32多线程程序设计.侯捷.超清完美版
- cocos2d-x塔防实现
评论
共有 条评论