注册
登录
会员
标签
鲜花鸡蛋
插件
帮助
Linux伊甸园论坛
»
Linux嵌入式应用
» [求助]请教一个FrameBuffer速度的问题
‹‹ 上一主题
|
下一主题 ››
12
1
2
››
发新话题
发布投票
发布商品
发布悬赏
发布活动
发布辩论
发布视频
打印
[求助]请教一个FrameBuffer速度的问题
alldying
初来乍到
注册用户
帖子
21
精华
0
积分
7
在线时间
4 小时
发短消息
加为好友
当前离线
楼主贴
大
中
小
发表于 2006-10-24 17:57
只看该作者
[求助]请教一个FrameBuffer速度的问题
我正用一块基于at91rm9200的板子开发,用的是Epson的S1D13506显示芯片,因为产品特性,我需要图形,但是不需要图形界面,只要把要显示的内容(汉字、图片等)显示出来就行,不需要窗口、按钮等交互界面,所以我选择了用FrameBuffer。
今天我写了个小程序测试,在一个100*640的矩形了,以逐行上滚的方式显示一些汉字时,发现滚动速度很慢,中间没有任何的认为延时。我的过程大概是这样:
定义两个char *指针fbp和fbp1,再定义一个数组TextBuffer[100][640],fbp是显存在内存中的映射,fbp1是显存缓存,TextBuffer是汉字对比字模转换后的点阵内容,循环100次,每次把TextBuffer写到fbp1后再用memcpy到fbp1,结果是可以逐行向上滚动直到写满整个100*640的矩形,只是速度很慢,达不到我的要求。
请问各位兄,是我的程序算法有问题,还是FrameBuffer本身就达不到这种要求呢?不过好象也有一些比较大的GUI图形库也以FrameBuffer为基础,还是我对FameBuffer用法有问题呢,是不是要直接操作显卡S1D13506的寄存器,进行硬件加速呢,请各位有经验,比较熟悉这方面的兄弟介绍一下吧,谢谢!
UID
165994
帖子
21
精华
0
积分
7
贡献积分
0
论坛活跃
16
公关推广
10
鲜花
0
鸡蛋
0
在线时间
4 小时
注册时间
2006-8-31
最后登录
2008-1-11
查看详细资料
TOP
AIKO_sex
认证会员
伊甸园杰出贡献会员
帖子
11693
精华
20
积分
159
在线时间
306 小时
发短消息
加为好友
当前离线
呵呵抢到沙发了
大
中
小
发表于 2006-10-25 14:34
只看该作者
是循环一次就写一次?
象一阵风 拂过我身边 忽然间 想要去很远 和你去看繁华世界
UID
12054
帖子
11693
精华
20
积分
159
贡献积分
53
论坛活跃
503
公关推广
15
鲜花
1
鸡蛋
0
在线时间
306 小时
注册时间
2002-3-20
最后登录
2008-9-6
查看详细资料
TOP
jojolin
初来乍到
注册用户
帖子
11
精华
0
积分
6
在线时间
0 小时
发短消息
加为好友
当前离线
板凳位置
大
中
小
发表于 2006-10-27 09:52
只看该作者
你用的是什么内核哦
我原来用2.6的,也是用你类似的双缓冲方法绘制位图,速度也是相当的慢
现在我用2.4的,应用程序没有做任何改变就跑的很快...
我也很郁闷哦...
UID
161834
帖子
11
精华
0
积分
6
贡献积分
0
论坛活跃
11
公关推广
10
鲜花
0
鸡蛋
0
在线时间
0 小时
注册时间
2006-6-29
最后登录
2007-4-4
查看详细资料
TOP
alldying
初来乍到
注册用户
帖子
21
精华
0
积分
7
在线时间
4 小时
发短消息
加为好友
当前离线
委屈了,只有地板
大
中
小
发表于 2006-11-7 09:42
只看该作者
谢谢AIKO_sex,是循环一次就写一次,因为我是要内容慢慢从下往上走,所以每循环一次显示内容都要更新。
谢谢jojolin,我用的就是2.4的内核啊,你的问题解决了吗?方便的话能把你的这部分的代码给我参考一下吗?frewasdf@163.com,谢谢!
UID
165994
帖子
21
精华
0
积分
7
贡献积分
0
论坛活跃
16
公关推广
10
鲜花
0
鸡蛋
0
在线时间
4 小时
注册时间
2006-8-31
最后登录
2008-1-11
查看详细资料
TOP
风雪狂客
版主
版主
帖子
621
精华
1
积分
37
在线时间
13 小时
发短消息
加为好友
当前离线
5楼
大
中
小
发表于 2006-11-7 09:59
只看该作者
您需要测试一下您的程序循环一次多长时间?
如果循环时间长,每次就多移动一个位置!
千日风雪,万里独行。 真痴假狂,亦侠亦客。
UID
7956
帖子
621
精华
1
积分
37
贡献积分
7
论坛活跃
133
公关推广
11
鲜花
0
鸡蛋
0
来自
北京
在线时间
13 小时
注册时间
2001-12-17
最后登录
2008-7-9
查看详细资料
TOP
alldying
初来乍到
注册用户
帖子
21
精华
0
积分
7
在线时间
4 小时
发短消息
加为好友
当前离线
6楼
大
中
小
发表于 2006-11-8 09:11
只看该作者
谢谢风雪狂客。
你的意思是没次往上走2行或者3行?我试过了,这样显得更不连贯,突然往上走一段,停住,我想要的是很连续的往上走,就象我现在做到的这样,但是速度要比现在快很多。
我也用过MINIGUI,不过它也不支持S1D13506的硬件加速,不知道有哪个图形库可以支持S1D13506的硬件加速,低级点没关系,只要速度快,因为我只是显示一些文字或图片内容,以不同方式进出屏而已(进出屏方式类似常见的广告的效果,也类似PowerPoint里的 进出方式),不需要传统的图形用户界面的窗口、对话框、按纽等,请这方面熟悉的兄弟们指点一下,推荐一个图形库吧,谢谢!!!
UID
165994
帖子
21
精华
0
积分
7
贡献积分
0
论坛活跃
16
公关推广
10
鲜花
0
鸡蛋
0
在线时间
4 小时
注册时间
2006-8-31
最后登录
2008-1-11
查看详细资料
TOP
风雪狂客
版主
版主
帖子
621
精华
1
积分
37
在线时间
13 小时
发短消息
加为好友
当前离线
7楼
大
中
小
发表于 2006-11-8 10:31
只看该作者
我的判断是您的系统一次循环太长,所以很慢!硬件加速可以自己写!就是对指定的寄存器设置参数,由软件做的工作由图形处理器完成!比如点线,矩形填充拷贝等等。目前的图形库,很少能够达到您的要求!您看看现在有一个EGUI的库,或许有帮助!另外OPENGUI,DirectFB只是支持X86平台。
千日风雪,万里独行。 真痴假狂,亦侠亦客。
UID
7956
帖子
621
精华
1
积分
37
贡献积分
7
论坛活跃
133
公关推广
11
鲜花
0
鸡蛋
0
来自
北京
在线时间
13 小时
注册时间
2001-12-17
最后登录
2008-7-9
查看详细资料
TOP
alldying
初来乍到
注册用户
帖子
21
精华
0
积分
7
在线时间
4 小时
发短消息
加为好友
当前离线
8楼
大
中
小
发表于 2006-11-8 14:44
只看该作者
再次谢谢风雪狂客。
没办法,这种进出屏方式是我们产品的基本显示功能,如果显示区域有100个pixel高的话,就只能循环100次,每次整体往上移1个pixel,暂时我也没想到别的方法。
如果实在没有能使用s1d13506的硬件加速功能的图形库的话,那我只能自己写了。不过我没搞过这个,只知道通过FrameBuffer可以把显卡的控制寄存器映射到物理内存空间,然后就可以访问这些寄存器了,具体怎么映射,怎么设置寄存器达到加速的目的还是不清楚,风雪狂客能不能详细些指点一下,或者给点资料,网址什么的,谢谢!!!
UID
165994
帖子
21
精华
0
积分
7
贡献积分
0
论坛活跃
16
公关推广
10
鲜花
0
鸡蛋
0
在线时间
4 小时
注册时间
2006-8-31
最后登录
2008-1-11
查看详细资料
TOP
AIKO_sex
认证会员
伊甸园杰出贡献会员
帖子
11693
精华
20
积分
159
在线时间
306 小时
发短消息
加为好友
当前离线
9楼
大
中
小
发表于 2006-11-8 19:41
只看该作者
bitblit软件做太频繁的话,cpu占用太高
要么是批量处理
windows都不建议刷新太频繁,严重消耗cpu
象一阵风 拂过我身边 忽然间 想要去很远 和你去看繁华世界
UID
12054
帖子
11693
精华
20
积分
159
贡献积分
53
论坛活跃
503
公关推广
15
鲜花
1
鸡蛋
0
在线时间
306 小时
注册时间
2002-3-20
最后登录
2008-9-6
查看详细资料
TOP
alldying
初来乍到
注册用户
帖子
21
精华
0
积分
7
在线时间
4 小时
发短消息
加为好友
当前离线
10楼
大
中
小
发表于 2006-11-9 09:27
只看该作者
谢谢AIKO_sex。
我在windows下用bitlbt挺顺的啊,如果Linux下不用bitblt,有什么好办法呢,跟你回的我的另外一个贴子“请指点一下嵌入式系统上图形库的选择”一样,我考虑自己写硬件加速部分,不过还没什么头绪,能不能详细指点下呢,谢谢!
UID
165994
帖子
21
精华
0
积分
7
贡献积分
0
论坛活跃
16
公关推广
10
鲜花
0
鸡蛋
0
在线时间
4 小时
注册时间
2006-8-31
最后登录
2008-1-11
查看详细资料
TOP
‹‹ 上一主题
|
下一主题 ››
12
1
2
››
控制面板首页
编辑个人资料
积分记录
公众用户组
勋章
访问推广
宣传中心
领取红包
基本概况
版块排行
主题排行
发帖排行
积分排行
交易排行
在线时间
管理团队
管理统计
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
向朋友推广Linuxeden,得网站积分换礼品
best dvd copy software
多串口卡,kvm切换器