主题 : Linux中的显示缓冲数据如何获取 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
楼主  发表于: 2010-06-02 16:52

 Linux中的显示缓冲数据如何获取

请问Linux中的显示缓冲数据如何获取?我想直接提取出Linux中buffer出来,送到另一个屏上,请问如何实现?就像用同一个数组发到不同的地方去。谢谢答复!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2010-06-02 17:30
在内核里做还是在user space的应用程序里做?不同的地方方法不同
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
2楼  发表于: 2010-06-03 09:10
我是在内核里做的
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-06-03 10:06
framebuffer的虚拟地址保存在framebuffer驱动(drivers/video/s3c2410fb.c)里的fb_info结构的screen_base成员变量中,物理地址在这个结构的fix.smem_start成员变量中。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
4楼  发表于: 2010-06-03 11:09
那请问kasim 是怎样把显示数据发送个下面的硬件的呢?具体调用了那个下面的函数呢?因为我想在发送到当前屏的同时,也把数据发送到另外的设备上,谢谢您的回答!
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2010-06-03 12:27
对于S3C2440A的LCD Controller来说,frambuffer驱动把framebuffer的物理地址(fix.smem_start)和长度写入LCDSADDR1/2/3这三个寄存器中(参考drivers/video/s3c2410fb.c中的s3c2410fb_set_lcdaddr()函数),这样硬件自动会将SDRAM中的framebuffer中的数据(由user space的应用程序通过frambuffer驱动的mmap接口把framebuffer映射到应用程序的地址空间中,再将显示数据填入)通过DMA搬到LCD Controller中再从那里送到LCD屏上。
如果你想在内核里用frambuffer的数据,直接memcpy fb_info中的screen_base地址上的数据就可以了。内核中所有的程序都是在同一地址空间的。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
6楼  发表于: 2010-06-03 13:22
如果我想在drivers/video/s3c2410fb.c提取出图像缓冲数据,进行处理,请问有没有什么好的办法啊?谢谢答复!
级别: 骑士
UID: 9169
精华: 0
发帖: 249
金钱: 1330 两
威望: 299 点
综合积分: 498 分
注册时间: 2009-09-19
最后登录: 2017-08-14
7楼  发表于: 2010-06-04 12:44
怎么没有人问津啊?万分火急!谢谢