mtk Android 当中如何取出framebuffer的每个像素
时间:10-02
整理:3721RD
点击:
各位大侠们,
我现在需要调试一款OLED 单色的8位串口的屏,我的思路是拿到framebuffer的首地址,
根据首地址取出128x32个像素,然后转换成黑白的,再一个一个刷的oled的屏上面。
现在我有framebuffer的首地址了,但是我不清楚如何取出每个像素,各位大侠们能否
给点建议。
小弟非常感谢。
我现在需要调试一款OLED 单色的8位串口的屏,我的思路是拿到framebuffer的首地址,
根据首地址取出128x32个像素,然后转换成黑白的,再一个一个刷的oled的屏上面。
现在我有framebuffer的首地址了,但是我不清楚如何取出每个像素,各位大侠们能否
给点建议。
小弟非常感谢。
现个像素是3*8=24位
哪么你要做的话,一次只读1BYTE的话,哪么要话三次才读一个像素
你总共要读128*32*3个字节。
口否提供下例子,小弟对底层不是太熟悉哦,或者我可以参考哪些现有的例子呢?
就直接开一个BUF
然后将这么一块东西都COPY到这个BUF中去
然后将BUF中的数据转为单色。
然后在刷到屏上去。
具体代码,我没有写过。你自己参考一下别的代码写吧。
framebuffer的首地址你找到的是什么?
发上来我看看。
类似 这样的 “fb_addr=0xbf700000”
知道首地址了,就看你数据的格式了.按数据格式来,把首地址加上数据格式的大小来自加吧!不知道是不是这样的.
可是我现在打出来的时候报错了
printk("----------aaaaaaaaaaa------------------------stephen******fb_addr=0x%x\n",*( (u32*) FB_START) );
错误如下:
[ 0.766667] Unable to handle kernel paging request at virtual address 1ff00000
virtual address
说你的是虚拟地址。
你要将虚拟地址可能要转为物理地址才可以打印。
也可以不打印。直接做转换。