Final tidy of code following installation of new sensor, more comments added prior to submission

Dependencies:   mbed

Committer:
legstar85
Date:
Fri Feb 04 09:20:18 2022 +0000
Revision:
18:fc63b51a0302
Parent:
14:3e9991fe64e5
Final tidy of code following installation of new sensor, more comments added prior to submission

Who changed what in which revision?

UserRevisionLine numberNew contents of line
legstar85 14:3e9991fe64e5 1 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 2 /* Low level disk I/O module skeleton for FatFs (C)ChaN, 2014 */
legstar85 14:3e9991fe64e5 3 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 4 /* If a working storage control module is available, it should be */
legstar85 14:3e9991fe64e5 5 /* attached to the FatFs via a glue function rather than modifying it. */
legstar85 14:3e9991fe64e5 6 /* This is an example of glue functions to attach various exsisting */
legstar85 14:3e9991fe64e5 7 /* storage control modules to the FatFs module with a defined API. */
legstar85 14:3e9991fe64e5 8 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 9
legstar85 14:3e9991fe64e5 10 #include "diskio.h"
legstar85 14:3e9991fe64e5 11 #include "mbed_debug.h"
legstar85 14:3e9991fe64e5 12 #include "FATFileSystem.h"
legstar85 14:3e9991fe64e5 13
legstar85 14:3e9991fe64e5 14 using namespace mbed;
legstar85 14:3e9991fe64e5 15
legstar85 14:3e9991fe64e5 16 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 17 /* Get Drive Status */
legstar85 14:3e9991fe64e5 18 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 19
legstar85 14:3e9991fe64e5 20 DSTATUS disk_status (
legstar85 14:3e9991fe64e5 21 BYTE pdrv /* Physical drive nmuber to identify the drive */
legstar85 14:3e9991fe64e5 22 )
legstar85 14:3e9991fe64e5 23 {
legstar85 14:3e9991fe64e5 24 debug_if(FFS_DBG, "disk_status on pdrv [%d]\n", pdrv);
legstar85 14:3e9991fe64e5 25 return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_status();
legstar85 14:3e9991fe64e5 26 }
legstar85 14:3e9991fe64e5 27
legstar85 14:3e9991fe64e5 28 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 29 /* Inidialize a Drive */
legstar85 14:3e9991fe64e5 30 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 31
legstar85 14:3e9991fe64e5 32 DSTATUS disk_initialize (
legstar85 14:3e9991fe64e5 33 BYTE pdrv /* Physical drive nmuber to identify the drive */
legstar85 14:3e9991fe64e5 34 )
legstar85 14:3e9991fe64e5 35 {
legstar85 14:3e9991fe64e5 36 debug_if(FFS_DBG, "disk_initialize on pdrv [%d]\n", pdrv);
legstar85 14:3e9991fe64e5 37 return (DSTATUS)FATFileSystem::_ffs[pdrv]->disk_initialize();
legstar85 14:3e9991fe64e5 38 }
legstar85 14:3e9991fe64e5 39
legstar85 14:3e9991fe64e5 40 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 41 /* Read Sector(s) */
legstar85 14:3e9991fe64e5 42 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 43
legstar85 14:3e9991fe64e5 44 DRESULT disk_read (
legstar85 14:3e9991fe64e5 45 BYTE pdrv, /* Physical drive nmuber to identify the drive */
legstar85 14:3e9991fe64e5 46 BYTE* buff, /* Data buffer to store read data */
legstar85 14:3e9991fe64e5 47 DWORD sector, /* Sector address in LBA */
legstar85 14:3e9991fe64e5 48 UINT count /* Number of sectors to read */
legstar85 14:3e9991fe64e5 49 )
legstar85 14:3e9991fe64e5 50 {
legstar85 14:3e9991fe64e5 51 debug_if(FFS_DBG, "disk_read(sector %d, count %d) on pdrv [%d]\n", sector, count, pdrv);
legstar85 14:3e9991fe64e5 52 if (FATFileSystem::_ffs[pdrv]->disk_read((uint8_t*)buff, sector, count))
legstar85 14:3e9991fe64e5 53 return RES_PARERR;
legstar85 14:3e9991fe64e5 54 else
legstar85 14:3e9991fe64e5 55 return RES_OK;
legstar85 14:3e9991fe64e5 56 }
legstar85 14:3e9991fe64e5 57
legstar85 14:3e9991fe64e5 58 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 59 /* Write Sector(s) */
legstar85 14:3e9991fe64e5 60 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 61
legstar85 14:3e9991fe64e5 62 #if _USE_WRITE
legstar85 14:3e9991fe64e5 63 DRESULT disk_write (
legstar85 14:3e9991fe64e5 64 BYTE pdrv, /* Physical drive nmuber to identify the drive */
legstar85 14:3e9991fe64e5 65 const BYTE* buff, /* Data to be written */
legstar85 14:3e9991fe64e5 66 DWORD sector, /* Sector address in LBA */
legstar85 14:3e9991fe64e5 67 UINT count /* Number of sectors to write */
legstar85 14:3e9991fe64e5 68 )
legstar85 14:3e9991fe64e5 69 {
legstar85 14:3e9991fe64e5 70 debug_if(FFS_DBG, "disk_write(sector %d, count %d) on pdrv [%d]\n", sector, count, pdrv);
legstar85 14:3e9991fe64e5 71 if (FATFileSystem::_ffs[pdrv]->disk_write((uint8_t*)buff, sector, count))
legstar85 14:3e9991fe64e5 72 return RES_PARERR;
legstar85 14:3e9991fe64e5 73 else
legstar85 14:3e9991fe64e5 74 return RES_OK;
legstar85 14:3e9991fe64e5 75 }
legstar85 14:3e9991fe64e5 76 #endif
legstar85 14:3e9991fe64e5 77
legstar85 14:3e9991fe64e5 78 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 79 /* Miscellaneous Functions */
legstar85 14:3e9991fe64e5 80 /*-----------------------------------------------------------------------*/
legstar85 14:3e9991fe64e5 81
legstar85 14:3e9991fe64e5 82 #if _USE_IOCTL
legstar85 14:3e9991fe64e5 83 DRESULT disk_ioctl (
legstar85 14:3e9991fe64e5 84 BYTE pdrv, /* Physical drive nmuber (0..) */
legstar85 14:3e9991fe64e5 85 BYTE cmd, /* Control code */
legstar85 14:3e9991fe64e5 86 void* buff /* Buffer to send/receive control data */
legstar85 14:3e9991fe64e5 87 )
legstar85 14:3e9991fe64e5 88 {
legstar85 14:3e9991fe64e5 89 debug_if(FFS_DBG, "disk_ioctl(%d)\n", cmd);
legstar85 14:3e9991fe64e5 90 switch(cmd) {
legstar85 14:3e9991fe64e5 91 case CTRL_SYNC:
legstar85 14:3e9991fe64e5 92 if(FATFileSystem::_ffs[pdrv] == NULL) {
legstar85 14:3e9991fe64e5 93 return RES_NOTRDY;
legstar85 14:3e9991fe64e5 94 } else if(FATFileSystem::_ffs[pdrv]->disk_sync()) {
legstar85 14:3e9991fe64e5 95 return RES_ERROR;
legstar85 14:3e9991fe64e5 96 }
legstar85 14:3e9991fe64e5 97 return RES_OK;
legstar85 14:3e9991fe64e5 98 case GET_SECTOR_COUNT:
legstar85 14:3e9991fe64e5 99 if(FATFileSystem::_ffs[pdrv] == NULL) {
legstar85 14:3e9991fe64e5 100 return RES_NOTRDY;
legstar85 14:3e9991fe64e5 101 } else {
legstar85 14:3e9991fe64e5 102 DWORD res = FATFileSystem::_ffs[pdrv]->disk_sectors();
legstar85 14:3e9991fe64e5 103 if(res > 0) {
legstar85 14:3e9991fe64e5 104 *((DWORD*)buff) = res; // minimum allowed
legstar85 14:3e9991fe64e5 105 return RES_OK;
legstar85 14:3e9991fe64e5 106 } else {
legstar85 14:3e9991fe64e5 107 return RES_ERROR;
legstar85 14:3e9991fe64e5 108 }
legstar85 14:3e9991fe64e5 109 }
legstar85 14:3e9991fe64e5 110 case GET_BLOCK_SIZE:
legstar85 14:3e9991fe64e5 111 *((DWORD*)buff) = 1; // default when not known
legstar85 14:3e9991fe64e5 112 return RES_OK;
legstar85 14:3e9991fe64e5 113
legstar85 14:3e9991fe64e5 114 }
legstar85 14:3e9991fe64e5 115 return RES_PARERR;
legstar85 14:3e9991fe64e5 116 }
legstar85 14:3e9991fe64e5 117 #endif
legstar85 14:3e9991fe64e5 118