6373|10

5979

帖子

8

TA的资源

版主

楼主
 

BeagleBone IO速率测试 [复制链接]

作者:chenzhufly QQ:36886052 ( 转载请注明出处)
BeagleBone的IO控制可以见我发的这个帖子:
Linux下AM335X的GPIO控制

测试代码:
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <linux/input.h>
#include <unistd.h>
#include <sys/ioctl.h>

int main(int argc, char * argv)
{
int i, n, fd;

fd = open(\"/dev/leds\", O_RDWR);
if (fd < 0)
{
printf(\"can't open /dev/leds!\n\");
exit(1);
}

while (1) {
ioctl(fd, 1, 1);
//sleep(1);

ioctl(fd, 0, 1);
//sleep(1);
}

close(fd);

return 0;
} 
}[/quote]


有图有真相:




从图上可以看出,维持一个高电平1为10us,这速度也太慢了吧,有待深究。欢迎高手指点。


精益求精,继续改进:
测试代码:
[quote] #include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/ioctl.h>
#include <fcntl.h>  
#define LED1 \"/sys/class/leds/beaglebone::usr1/brightness\" // usr1 led
int main(void)
{
int f_led1 = open(LED1, O_RDWR);
unsigned char dat1, dat2;
unsigned char i = 0;

if (f_led1 < 0)
{
printf(\"error in open %s\",LED1);
return -1;
}

dat1 = '1';
dat2 = '0';
while(1)
{
write(f_led1, &dat1, sizeof(dat1));
write(f_led1, &dat2, sizeof(dat2));
}

}


有图有真相:




比上面的测试结果好多了吧,呵呵

[ 本帖最后由 chenzhufly 于 2012-5-8 13:31 编辑 ]

最新回复

这样写没意思啊,要是两次IOCTL之间换到别的任务,几十ms都可以有啊。  详情 回复 发表于 2013-11-18 14:54
点赞 关注(1)
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 

回复
举报

473

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
这正常吧,ioctl的代价是很大的,用户态内核态的切换折腾下是很费时间的
个人签名Nicrosystem专业提供freescale、TI和STM32高性价比开发板、解决方案
http://nicrosystem.taobao.com
 
 

回复

5979

帖子

8

TA的资源

版主

板凳
 
应该也不至于这么慢哦,
看看6410的测试结果,GPIO操作速率大约为 750KHz  X  2  = 1.5MHz


个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 
 

回复

1027

帖子

0

TA的资源

五彩晶圆(中级)

4
 
还是用write块啊!
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(中级)

5
 

写个驱动发方波的话更确定一些,我测过可以100M的

 
 
 

回复

5979

帖子

8

TA的资源

版主

6
 
能分享一下心得吗
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(高级)

7
 
你测过一个ioctl操作的时间嘛??

我测的有点久哦,对实时性要求比较高的地方很难满足。
 
 
 

回复

102

帖子

0

TA的资源

一粒金砂(中级)

8
 
io的速度和处理器的速度没有必然的关系
 
 
 

回复

54

帖子

1

TA的资源

一粒金砂(中级)

9
 
感谢分享!
 
 
 

回复

4

帖子

0

TA的资源

一粒金砂(中级)

10
 
这样写没意思啊,要是两次IOCTL之间换到别的任务,几十ms都可以有啊。
 
 
 

回复

5979

帖子

8

TA的资源

版主

11
 
其实挺有意思的 只是你不关注而已
个人签名生活就是油盐酱醋再加一点糖,快活就是一天到晚乐呵呵的忙
===================================
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表