1). disk_initialize函数 要使用一个外设首先要对它进行初始化,所以先看sd卡的初始化函数,其声明如下: DSTATUS disk_initialize ( BYTE pdrv) 函数描述:初始化指定编号的磁盘,磁盘所指定的存储区。使用每个磁盘前进行初始化,那在代码中直接根据编号调用硬件的初始化接口即可,这样也能保证代码的扩展性,硬件的顺序...
disk_initialize 函数返回一个磁盘状态作为结果。磁盘状态的详情,参考 disk_status 函数。 说明 disk_initialize 函数初始化一个物理驱动器。函数成功后,返回值中的 STA_NOINIT 标志被清除。 disk_initialize 函数被 FatFs 模块在卷挂载过程中调用,去管理存储介质的改变。 当FatFs 模块起作用时,或卷上的 FAT 结构可...
disk_initialize函数也是有一个参数pdrv,用来指定设备物理编号。对于SPI Flash芯片我们调用SPI_FLASH_Init()函数实现对SPI Flash芯片引脚GPIO初始化配置以及SPI通信参数配置。 SPI_Flash_WAKEUP()函数唤醒SPI Flash芯片,当SPIFlash芯片处于睡眠模式时需要唤醒芯片才可以进行读写操作。 最后调用disk_status函数获取SPI Flash...
ffconf.h配置 diskio.c 需要实现函数如下: disk_initialize:初始化磁盘驱动器 disk_status:获取磁盘状态 disk_read:从磁盘驱动器读扇区 disk_write:从磁盘驱动器写扇区 disk_ioctl:控制设备实现指定功能,用于辅助FATFS中其他API get_fattime:获取当前时间 disk_initialize disk_status disk_read disk_write disk_ioctl...
DSTATUS disk_initialize ( BYTE pdrv /* 物理驱动识别 */ ) { DSTATUS stat; int result; switch (pdrv) { case SD : //选择SD卡 stat=SD_Init(); //初始化SD卡-用户自己提供 } if(stat)return STA_NOINIT; //磁盘未初始化 return 0; //初始化成功 } 修改disk_read函数...
底层设备驱动函数是存放在diskio.c文件,我们的目的就是把diskio.c中的函数接口与SPI Flash芯片驱动连接起来。总共有五个函数,分别为设备状态获取(disk_status)、设备初始化(disk_initialize)、扇区读取(disk_read)、扇区写入(disk_write)、其他控制(disk_ioctl)。
至此我们已经完成FatFs文件管理系统的移植,不过功能还没有实现,需要在disk_status、disk_initialize、disk_read、disk_writ、disk_ioctl函数中加入执行代码: 设备状态获取 DSTATUS disk_status ( BYTE pdrv /* Physical drive number to identify the drive */ ...
FATFS初始化函数: DSTATUS disk_initialize ( BYTE drv /* Physical drive nmuber (0..) */ ) { switch (drv) { case 0 : return RES_OK; case 1 : return RES_OK; case 2 : return RES_OK; case 3 : return RES_OK; default: return STA_NOINIT; ...
3)disk_initialize 初始化函数 DSTATUS disk_initialize ( BYTE pdrv /* Physical drive nmuber to identify the drive */ ) { if(pdrv == SPI_FLASH) { drv_sflash_init(); return RES_OK; } else { printf("!!!disk_initialize ERR\r\n"); ...
存储媒介初始化函数disk_initialize。用于对磁盘设备进行初始化,在ff.c文件中会被调用。其函数原型如下: DSTATUS disk_initialize(BYTE drv); 根据其原型定义以及我们USB大容量存储设备的要求,我们可以实现磁盘驱动器初始化函数,但这里我们其实不需要,因为在USB HOST库中已经完成...