- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种在嵌入式内核中测试exfat文件系统性能方法
一种在嵌入式内核中测试exfat文件系统性能的方法
摘 要 在嵌入式内核下添加或完善exfat文件系统的功能,是嵌入式系统开发中的重要工作。如何测试添加后的exfat文件系统的性能更显得尤为重要。由于嵌入式内核软件的特殊性,利用一般的测试软件很难测试,因此一般需要内核开发者自行编写测试用例来测试性能。在此背景下本文提出了一种在嵌入式内核中测试exfat文件系统性能的方法,实验证明,该方法简单可行,能快速地测试exfat文件系统的性能。并且该方法拓展性强,能延伸到其他内核文件系统的测试。
关键词 嵌入式;exfat文件系统;性能
中图分类号 TP3 文献标识码 A 文章编号 2095-6363(2016)02-0036-02
随着嵌入式技术的发展,利用各种开源的嵌入式平台来开发电子产品,已经成为大部分公司的首选。要使运行嵌入式系统的电子产品实现音频、视频、图片等多媒体信息的存储及处理,几乎离不开文件系统的支持,那么在嵌入式平台下开发各种文件系统也是必然。其中具备优越性能的exfat文件系统由于微软的不开源性,也常常需要在内核中自主开发。
在嵌入式系统中,如linux、ucos,实现exfat文件系统的功能已经不难。嵌入式开发者在具备嵌入式开发经验及exfat文件系统的知识基础上,即可完成。但是在实现了exfat文件系统的功能后,要如何验证其性能却不是那么容易。
1 测试工具的局限性
嵌入式软件由于内存有限、实时性、开发工具昂贵等特点,测试非常困难。嵌入式软件从下到上,分为硬件层、驱动层、内核层、应用层,而内核层由于结构复杂、代码庞大,是嵌入式软件中最难测试的部分,本文中待测的exfat文件系统正处于内核层。虽然嵌入式软件有一些集成的测试软件,但是一般的测试软件只能用于标准的嵌入式内核,只能测试规定的功能,不能进行二次开发,而对于很多嵌入式产品来说,嵌入式内核源码需要修改,也需要测试更多特定的功能,这就需要特定的测试方式。
因此本文要探索的是在内核层的文件系统的测试方式。按照测试方式来分类,该测试属于白盒测试的
范畴。
2 测试体系
文件系统是一种存储系统,对于存储系统来说,需要关注的性能有访问接口性能、数据读写性能、聚合带宽、最大并发数、任务数、最大吞吐率、可扩展能力等,本文中的测试任务是测试嵌入式系统内核层文件系统的性能,因此需要测试的性能也相对单一,着重测试访问接口性能和数据读写性能。其中访问接口性能是指各个操作元数据和数据的API返回速度,单位为API操作数/s。以Open函数为例,在应用层新建文件,调用Open函数,就可以通过内核文件函数FS_Open函数调用驱动层函数,从而调用硬件,完成具体的功能。那么该API的返回速度指发送Open命令到返回成功所花的时间;数据读写性能是指测定不同文件大小,数据块大小和读写比例的数据读写性能,单位为MB/s,以Read函数为例,预先在系统中插入存储设备,调用Read函数来读取该存储设备中的特定大小的文件,通过文件的大小除以读取的时间即可获得读取的速度;当然也可以用time命令来测试时间,手动去计算速度,测试代码如下:
#define size 1024*1024*200
#define LEN 1024
#include
int main()
{
FILE *fp1;
char *buf=new char[LEN];
int i,j;
fp1=fopen(“data.in”,”rb”);
for(j=0;j1024*500;j++)
{
fread(buf,1024,1,fp1);
}
printf(“ok!/n”);
fclose(fp1);
}
综上所述,测试体系的框图如下所示:
其中应用层的测试代码作用是调用相关的APP函数,内核层对应函数指的是exfat文件系统的功能函数,驱动层函数指的是与硬件相连的操作函数。
Exfat文件系统的接口函数有:
unsigned int fsapitbl[]={
(unsigned int)FOpen,
(unsigned int)FClose,
(unsigned int)FRead,
(unsigned int)FWrite,
(unsigned int)GetLength,
(unsigned int)GetTime,
(unsigned int)ConvertName,
......
};
针对所有的APP都需要完成接口性能测试,测试其响应时间以及功能的正确性;针对包含Read和Write
文档评论(0)