4482|4

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

6410 2d加速的BitBLt运行不正常。弄过的兄弟给点建议 [复制链接]

在linux 2.6.33上弄的,只想实现最简单的从一块区域拷贝到另外一块区域显示的功能。
将(linux 2.6.28的)中g2d部分的代码移植到了video s3c-fb中,通过io_ctrl实现的。但移植的代码更本不能使用。
然后自己按照手册,配置的寄存器。
从FIFO state和中断(已经产生了当前命令完成的中断)来看,已经执行了。但是屏幕上看不到任何东西!

怀疑过几个问题:
1、SRC_BASE和DST_BASE的地址。因为虚拟内存、内核空间和用户空间的问题,不知道到底应该填什么地址?试过On-Screen的copy,都内存空间的地址和通过__pa()转换后的地址,都不行。
2、因为Line Drawing的功能不涉及地址,就实验此功能。结果还是看不到显示!

看开发板带来的内核的代码的初始化部分和手册中,初始化的时候也没看到有什么寄存器需要初始化的啊?

现在都不知道该怀疑哪了。

还望弄过的兄弟多多赐教。

最新回复

楼主你是高手 我能告诉我联系方式吗 我拜你为师啊  详情 回复 发表于 2010-3-31 16:29
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
问题已搞定。
手册写的寄存器配置不全。
参考wince的驱动修改的,现在可以正常使用bitblt的透明功能。搬800*600的图片的时间大约是5~6ms。
当时配置寄存器错误的几个地方如下:
    1、DST_BASE_ADDR和SRC_BASE_ADDR要设置物理地址。不能是内核的虚拟地址或者应用程序中的地址。对于FB,要使用 dma_alloc_writecombine 第三个参数返回的物理地址 fbi->fix.smem_start。
    2、在手册里bitblt没说要设置 clip 的寄存器,但是clip不设是不行的,感觉是使用默认值的0话就把图像全部剪掉了!我直接设为屏幕的分辨率了。
    3、使用透明模式要设置的是 BS_COLOR,而不是BG_COLOR。开始我还以为是代码写错了。后来试了一下,感觉是手册写错了。Blue Screen Mode咋设置我就没有试了。
    4、使用2D的画线和画点功能,也要设置DST_BASE_ADDR和clip的!手册里面都没说!
    5、设置COORDn_X_REG+COORDn_Y_REG和设置COORDn_REG好像是一样的,都能跑。



代码详见 http://blog.chinaunix.net/u3/111323/showart.php?id=2200014
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 wangyun183 的回复:
问题已搞定。
手册写的寄存器配置不全。
参考wince的驱动修改的,现在可以正常使用bitblt的透明功能。搬800*600的图片的时间大约是5~6ms。
当时配置寄存器错误的几个地方如下:
1、DST_BASE_ADDR和SRC_BASE_ADDR要设置物理地址。不能是内核的虚拟地址或者应用程序中的地址。对于FB,要使用 dma_alloc_writecombine 第三个参数返回的物理……


感谢楼主的分享!!
MARK,学习学习。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
哈哈,自己就解决了
 
 
 

回复

85

帖子

1

TA的资源

一粒金砂(初级)

5
 
楼主你是高手 我能告诉我联系方式吗 我拜你为师啊
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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