rwsec.c
来自「Atmega64单片机程序(完整工程)」· C语言 代码 · 共 63 行
C
63 行
#define IN_RWSEC
#include "SYS_Config.h"
#include "fat.h"
Disk_cache DiskCache[MAX_DISK_CACHES];/* 磁盘cache */
/*********************************************************************************************************
** 函数名称: CacheInit
** 功能描述: 初始化磁盘cache
** 输 入: 无
** 输 出: 无
** 全局变量: DiskCache
** 调用模块: 无
********************************************************************************************************/
void CacheInit(void)
{
INT16U i ;
for(i=0;i<MAX_DISK_CACHES;i++)
{
DiskCache[i].Drive=EMPTY_DRIVE ;/* cache空闲 */
DiskCache[i].Flag=0 ; /* 扇区无需回写 */
DiskCache[i].RW_ID=0 ; /* 访问纪录 */
DiskCache[i].RW_ID--; /* 访问纪录 */
DiskCache[i].SecIndex=0 ; /* 缓冲的扇区号 */
}
}
/*********************************************************************************************************
** 函数名称: CloseSec
** 功能描述: 解锁指定cache(允许切换出内存)
** 输 入: Drive:逻辑驱动器号
** Index:缓冲的扇区号
** 输 出: 无
** 全局变量: DiskCache
** 调用模块: 无
********************************************************************************************************/
void CloseSec(INT8U Drive,INT32U Index)
{
Drive=Drive ;
Index=Index ;
}
/*********************************************************************************************************
** 函数名称: CacheWriteBack2
** 功能描述: 把指定扇区写回逻辑盘
** 输 入: Index:cache索引
** 输 出: 无
** 全局变量: DiskCache
** 调用模块: GetDiskInfo
********************************************************************************************************/
void CacheWriteBack2(INT16U Index)
{
Disk_RW_Parameter Pa ;
Disk_Info *Disk ;
Disk=GetDiskInfo(DiskCache[Index].Drive);// 获取逻辑盘信息
if(Disk!=NULL)
if(Disk->DiskCommand!=NULL)
{
DiskCache[Index].Flag&=~CACHE_WRITED ;// 不再需要回写
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?