mirror of
https://github.com/pvvx/RTL00MP3.git
synced 2025-07-31 12:41:06 +00:00
first commit
This commit is contained in:
parent
2ee525362e
commit
d108756e9b
792 changed files with 336059 additions and 0 deletions
|
@ -0,0 +1,34 @@
|
|||
/* Define to prevent recursive inclusion -------------------------------------*/
|
||||
#ifndef __FF_DRIVER_H
|
||||
#define __FF_DRIVER_H
|
||||
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "diskio.h"
|
||||
#include "ff.h"
|
||||
#include "platform_opts.h"
|
||||
|
||||
typedef struct{
|
||||
DSTATUS (*disk_initialize) (void); /*!< Initialize Disk Drive */
|
||||
DSTATUS (*disk_status) (void); /*!< Get Disk Status */
|
||||
DRESULT (*disk_read) (BYTE*, DWORD, UINT); /*!< Read Sector(s) */
|
||||
#if _USE_WRITE == 1
|
||||
DRESULT (*disk_write) (const BYTE*, DWORD, UINT); /*!< Write Sector(s) when _USE_WRITE = 0 */
|
||||
#endif /* _USE_WRITE == 1 */
|
||||
#if _USE_IOCTL == 1
|
||||
DRESULT (*disk_ioctl) (BYTE, void*); /*!< I/O control operation when _USE_IOCTL = 1 */
|
||||
#endif /* _USE_IOCTL == 1 */
|
||||
unsigned char* TAG;
|
||||
unsigned char drv_num;
|
||||
}ll_diskio_drv;
|
||||
|
||||
typedef struct{
|
||||
ll_diskio_drv *drv[_VOLUMES];
|
||||
unsigned int nbr;
|
||||
}ff_disk_drv;
|
||||
extern ff_disk_drv disk;
|
||||
|
||||
int FATFS_RegisterDiskDriver(ll_diskio_drv *disk_drv);
|
||||
int FATFS_UnRegisterDiskDriver(unsigned char drv_num);
|
||||
int FATFS_getDrivernum(unsigned char* TAG);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,57 @@
|
|||
#include <fatfs_ext/inc/ff_driver.h>
|
||||
|
||||
#include "rtl_lib.h"
|
||||
#define strcmp(s1, s2) rtl_strcmp((const char *)s1, (const char *)s2)
|
||||
|
||||
ff_disk_drv disk = {0};
|
||||
|
||||
// return drv_num assigned
|
||||
int FATFS_RegisterDiskDriver(ll_diskio_drv *drv){
|
||||
unsigned char drv_num = -1;
|
||||
|
||||
if(disk.nbr < _VOLUMES)
|
||||
{
|
||||
drv->drv_num = disk.nbr; // record driver number for a specific disk
|
||||
disk.drv[disk.nbr] = drv;
|
||||
disk.nbr++;
|
||||
drv_num = drv->drv_num;
|
||||
}
|
||||
return drv_num;
|
||||
}
|
||||
|
||||
int FATFS_UnRegisterDiskDriver(unsigned char drv_num){
|
||||
int index;
|
||||
|
||||
if(disk.nbr >= 1)
|
||||
{
|
||||
for(index=0;index<disk.nbr;index++){
|
||||
if(disk.drv[index]->drv_num == drv_num){
|
||||
disk.drv[index] = 0;
|
||||
disk.nbr--;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return -1; // fail
|
||||
}
|
||||
return -1; // no disk driver registered
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Gets number of linked drivers to the FatFs module.
|
||||
* @param None
|
||||
* @retval Number of attached drivers.
|
||||
*/
|
||||
int FATFS_getDrivernum(unsigned char* TAG)
|
||||
{
|
||||
ll_diskio_drv *drv;
|
||||
int index;
|
||||
|
||||
for(index=0;index<disk.nbr;index++){
|
||||
drv = disk.drv[index];
|
||||
if(!strcmp(drv->TAG, TAG)){
|
||||
return drv->drv_num;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue