手把手教您使用ADI DSP进入下一个阶段,高级应用代码解析。第一个是SD卡文件系统,文件系统作为存储的必备技术,在Blackfin上是怎样实现的呢?请看本章讲解!
由于现在博客里暂时放不了视频,大家只能点击一下链接观看视频,讲义仍然放在博客中。
优酷视频链接:http://v.youku.com/v_show/id_XMzI4MzE4NzYw.html
高清下载地址:http://115.com/file/clyhw3v9 如需提取码,则是:clyhw3v9
开发板链接:http://item.taobao.com/item.htm?spm=1103Qmdt.3-3dfNy.h-1Akvus&id=9026190872&
代码实现了通过文件系统读取SD卡上的文件,并对文件和文件夹做读、写、删除、建立、文件列表、文件搜索等功能,代码以将文件系统和SD卡驱动挂载在一起,直接运行代码可对格式化过的SD卡进行文件建立等操作。
编译运行代码,代码会对SD卡根目录下的文件进行文件列表,然后将第一个文件进行复制,并保存为“2.txt”,通过计算机可以查阅复制的文件。
工程下有两个文件夹:bf53x_sd_mmc_lib和fat32_lib 。 这两个文件夹分别是SD卡驱动的库源代码和文件系统的库源代码,直接运行这两个文件夹下的工程,会在各自的DEBUG文件夹下生成*.dlb文件,这个文件就是库文件。在工程文件夹的根目录下,已经有这两个库文件,这两个库文件被BF53x_SD_FS.dpj工程调用,实现文件系统功能。
SD卡速度的配置:
void MMC_HardwareInitial(void)
{
*pFIO_DIR = PF2;
*pFIO_FLAG_S = PF2;
*pSPI_FLG = FLS2;
*pSPI_BAUD = 4;
*pSPI_CTL = 0x0000;
*pSPI_CTL = 0x0001 | MSTR ;
*pSPI_CTL = (*pSPI_CTL | SPE);
}
修改*pSPI_BAUD的值进行配置,当为2时,速度最快,配置值不能小于2。
当使用SD卡时,需通过CPLD打通SD卡链路,配置如下:
*pDEVICE_OE = ~SD_SEL;
文件列表函数:将“/”目录下所有文件和文件夹进行列表,并将文件和文件夹的名称和数量存入指定数组。
scan_files("/",file_name,file_count,dir_name,dir_count);
3. 待代码运行完成后,将SD卡插入计算机,查看建立的2.txt文件。
在SD卡根目录下将文件列表的第一个文件行复制并将文件名改为2.txt。
文章评论(0条评论)
登录后参与讨论