fatfs文件系统移植到STM32F10x

发布者:平静宁静最新更新时间:2015-10-08 来源: eefocus关键字:fatfs  文件系统  STM32F10x 手机看文章 扫描二维码
随时随地手机看文章
//文件系统与SD卡驱动接口文件diskio.c


#include "diskio.h"
#include "ffconf.h"
#include
#include "MMC_SD.h"

 

DSTATUS disk_initialize (
 BYTE drv    
)
{
 int Status;
 switch (drv)
 {
  case 0 :
//    Status = MSD0_Init();
  
   Status = SD_Init();
  
   if(Status==0){
    return RES_OK;
   }else{
    return STA_NOINIT;
   }
  case 1 :
   return RES_OK;  
  case 2 :
   return RES_OK;  
  case 3 :
   return RES_OK;
  default:
   return STA_NOINIT;
 }
}

 


DSTATUS disk_status (
 BYTE drv  
)
{
 switch (drv)
 {
  case 0 :
   return RES_OK;
  case 1 :
   return RES_OK;
  case 2 :
   return RES_OK;
  default:
   return STA_NOINIT;
 }
}

 

 

DRESULT disk_read (
 BYTE drv,  
 BYTE *buff,  
 DWORD sector, 
 BYTE count  
)
{
 int Status;
 if( !count )
   
  return RES_PARERR; 
 }
 switch (drv)
 {
  case 0:
      if(count==1)                 
      {  
    Status =  SD_ReadSingleBlock( sector ,buff );
    if(Status == 0){
     return RES_OK;
    }else{
     return RES_ERROR;
      
      }                                               
      else                        
      { 
    Status = SD_ReadMultiBlock( sector , buff ,count);
    if(Status == 0){
     return RES_OK;
    }else{
     return RES_ERROR;
    }
      }                                               
  case 1:
      if(count==1)                 
      {  
    return RES_OK;   
      }                                               
      else                        
      { 
    return RES_OK;
      }

  default:
   return RES_ERROR;
 }
}

 

 

#if _READONLY == 0
DRESULT disk_write (
 BYTE drv,   
 const BYTE *buff,        
 DWORD sector,  
 BYTE count   
)
{
 int Status;
 if( !count )
   
  return RES_PARERR; 
 }
 switch (drv)
 {
  case 0:
      if(count==1)                 
      {  
    Status = SD_WriteSingleBlock( sector , (uint8_t *)(&buff[0]) );
    if(Status == 0){
     return RES_OK;
    }else{
     return RES_ERROR;
    }
      }                                               
      else                       
      { 
    Status = SD_WriteMultiBlock( sector , (uint8_t *)(&buff[0]) , count );
    if(Status == 0){
     return RES_OK;
    }else{
     return RES_ERROR;
     
      }                                               
  case 1:
      if(count==1)                 
      { 
    return RES_OK;
      }                                               
      else                       
      { 
    return RES_OK;
      }                                               
 
  default:return RES_ERROR;
 }
}
#endif

 

 

DRESULT disk_ioctl (
 BYTE drv,  
 BYTE ctrl,  
 void *buff  
)
{
 if (drv==0)
   
  switch (ctrl)
  {
   case CTRL_SYNC :
    return RES_OK;
     case GET_SECTOR_COUNT :
    *(DWORD*)buff = 4096;
       return RES_OK;
     case GET_SECTOR_SIZE :
    *(WORD*)buff = 512;
       return RES_OK;
     case GET_BLOCK_SIZE :
    *(WORD*)buff = 512;
       return RES_OK; 
     case CTRL_POWER :
    break;
     case CTRL_LOCK :
    break;
     case CTRL_EJECT :
    break;
        
     case MMC_GET_TYPE :
    break;
     case MMC_GET_CSD :
    break;
     case MMC_GET_CID :
    break;
   case MMC_GET_OCR :
    break;
   case MMC_GET_SDSTAT :
    break; 
  }
    }
 else{     
  return RES_PARERR; 
 }
 return RES_PARERR;
}

       
                                                                                                                                                                                                                                               
DWORD get_fattime (void)
{
  
    return 0;
}

关键字:fatfs  文件系统  STM32F10x 引用地址:fatfs文件系统移植到STM32F10x

上一篇:pcf8563外部RTC驱动程序基于STM32F10x
下一篇:STM32通过GPRS与服务器建立TCP连接

推荐阅读最新更新时间:2024-03-16 14:34

基于S3C2440的嵌入式Linux根文件系统构建
嵌入式Linux早已成为IT界家喻户晓的一个名字,使用Linux进行嵌入式产品开发有一个很大的优势,就是开发资源丰富,且成本低廉,嵌入式Linux操作系统越来越受到重视,其应用也越来越广泛。而文件系统作为操作系统的重要组成部分,用于控制对数据文件及设备的存取,提供对文件和目录的分层组织形式,数据缓冲以及对文件存取权限的控制。根文件系统一直是Linux系统不可或缺的组件,在嵌入式Lin-ux中,内核在启动期间进行的最后操作之一就是安装根文件系统。Busybox是构建嵌入式Linux根文件系统的软件,用它制作根文件系统简单、方便,而且设置灵活。 1 根文件 Linux要在一个分区上存放系统启动所必需的文件,如内核映像文件、内核
[单片机]
基于S3C2440的嵌入式Linux根<font color='red'>文件系统</font>构建
STM32F10X的USB固件库说明
最底层 1)、usb_int.c,本文件包含两个中断服务函数CTR_LP()和CTR_HP(),在接收发送中断时使用这两个函数进行处理,这两个函数又调用各个USB端点处理函数,端点处理函数由用户自定义。 2)、usb_regs.c,本文件时硬件抽象层。它含有各种用于读取或设置USB寄存器的函数,相当于对寄存器操作方法的封装。 3)、usb_mem.c,本文件主要负责进行数据传输处理。它主要负责数据在用户区域(内存)或USB数据包缓冲区的互相转移。 中间层 1)、usb_core.c,本文件主要负责USB协议管理,如USB标准请求、各种端点0的控制信息处理。 2)、usb_init.c,本文件主要包含了USB初始化的函数。 3)、u
[单片机]
STM32F10x 学习笔记8(USART实现串口通讯 DMA 方式)
STM32F10x 的USART 支持DMA 方式,并且在DMA完成后可以产生中断。这对于需要接收或发送大量数据的应用情景是很有帮助的。 在普通的8位或16位单片机中很少有包含DMA控制器的,所以可能许多嵌入式程序员对DMA方式并不熟悉。简单的说,直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。由于无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。 STM32F10x 上具有两个DMA控制器,共有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自于一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
[单片机]
<font color='red'>STM32F10x</font> 学习笔记8(USART实现串口通讯 DMA 方式)
嵌入式操作系统VxWorks中TFFS文件系统的构建
摘要:目前的嵌入式系统多使用FLASH作为主存,因此,如何有效管理FLASH上的数据非常重要。文章以MX29LV160BT芯片为例,讨论了在VxWorks操作系统下Nor Flash上建立TFFS文件系统的一般步骤,从而为FLASH上的数据管理提供了理想的选择方式,同时也为开发者和用户升级程序提供了方便。 关键词:VxWorks Flash MTD TFFS 文件系统 嵌入式系统正随着Internet的发展而在各个领域得到广泛的应用,作为一个优秀的操作系统,VxWorks实现了比其他实时操作系统更好的有效性、商用性、可裁减性以及互操作性,广泛应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事
[嵌入式]
UBIFS文件系统搭建与配置(Micro2440 + linux 2.6.39)
1. UBIFS文件系统配置 a) 内核配置 2.6.27以后,ubifs被整合进内核树中,本文档所使用的2.6.39内核中已经包好UBIFS的相关代码,因此直接进行make menuconfig配置即可。 Device Drivers --- * Memory Technology Device (MTD) support --- * Enable UBI - Unsorted block images --- File systems --- Miscellaneous filesystems ---
[单片机]
UBIFS<font color='red'>文件系统</font>搭建与配置(Micro2440 + linux 2.6.39)
基于μC/OS—II操作系统的数据采集控制系统
O 引言 随着计算机技术、电子技术和控制技术的发展,智能化、自动化、精确化的灌溉和施肥技术正逐渐取代传统的灌溉方式。在施肥过程中,需要在线检测肥料溶液的酸碱度和电导率以及灌溉压力、管道流量等,然后根据这些参数来控制电磁阀和水泵的运行达到自动灌溉施肥的目的。目前,常用的数据采集控制系统都是为某一实际应用而设计的,通用性和可扩展性差、数据存储能力不足,价格昂贵。因此基于周立功公司的ARM7核心板设计了一种通用的数据采集控制系统,并且已经应用到自动灌溉施肥系统中,能够满足稳定性,实时性以及大容量的数据存储的要求。该数据采集控制系统采用模块化设计,可以很方便的扩展和剪裁模块,同时只要对软件进行少量修改就可以方便的移植到其它应用系统中。
[测试测量]
基于μC/OS—II操作系统的数据采集控制系统
MSP430F5438A单片机基于SPI的FatFs移植笔记
不管移植什么程序,最重要的就是, 不要自以为是 一定要先查资料,花一周查资料,查到查不到为止,否则你编了一半的程序再参考别人的,直接后果是你下不了决心推翻重来 1. FatFs移植要点: 相信能看到这个博客的都知道FatFs是什么了,目前应该是0.11版本,我就不多废话了,一个开源的文件系统,不全面的说,作用就是让你编程序操作写SD卡的内容能够被PC机读出来(有不对的话懂的大神请指正) 它的好处就是只要写底层的几个硬件驱动函数就OK了,上层的函数都已经写好了,清楚格式直接调用就可以了。 所谓“硬件驱动”函数,就是告诉单片机,完成一个动作(比如初始化)具体需要哪个IO口怎样变化,哪个IO口该高,哪个IO口该低,通信端口选哪个
[单片机]
基于FAT16文件系统的嵌入式温度记录器
    以ARM7TDMIS为内核的32/16位微控制器LPC2148与SD卡相结合,实现在SD卡上建立FAT16文件系统。采集的温度数据以FAT16文件格式存入SD卡,可方便用户对温度数据进行读取与分析。     本文描述了温度传感器ADT75的工作原理。        闪存技术的不断发展,使得闪存卡(如SD卡、MMC卡等)因其体积小、容量大、可靠性高等优点而在嵌入式存储领域得到越来越广泛的应用。FAT16文件系统具有出色的文件管理性能,能被大多数操作系统识别,因此将闪存卡与FAT16文件系统相结合是嵌入式存储、记录系统中一个理想的方案。温度采集与控制技术是现代测量、控制系统的一个重要组成部分。由于传统的模拟传感测量温度系
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved