FrameBuffer如何让显示反转?

david4383 2014-01-09 02:09:48
我视频使用MMAP映射到FB1上,但是屏的安装是反的,所以想把FB的驱动显示反转,也就是旋转180度,大家有什么办法没有? fb_var_screeninfo中有个rotate,但是我设置了,不管用;在fb.h中,还有FB_ROTATE_UR,FB_ROTATE_CW等几个旋转,也不管用,请教大家有什么办法没有?
...全文
1029 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
inurlcn 2014-03-10
  • 打赏
  • 举报
回复
要么在应用层做内存翻转,要么在驱动里面内存翻转,要么配置寄存器翻转。
炸鸡叔 2014-03-09
  • 打赏
  • 举报
回复
以前做过相关产品就是这个需求,貌似用的DMA。
a13594453569 2014-03-05
  • 打赏
  • 举报
回复
可以用软件算法自己实现反转。
YAVA_2009 2014-02-05
  • 打赏
  • 举报
回复
LCD应该会有寄存器来控制这个rotation的,如果要在上层做的话就用上面的方法。但是在底层做的话肯定效率高,速度快!
吼吼哈哈11 2014-01-26
  • 打赏
  • 举报
回复
驱动翻转是需要硬件支持的,如果底层不支持,只能是在上层将显示数据进行翻转处理
_Frogmarch 2014-01-13
  • 打赏
  • 举报
回复
你是要实现驱动的翻转?还是应用层的翻转? 应用层的翻转比较简单, 直接替换数组顺序, 给你个例子:

void *rotate_180(void *_dst,const void *_src,int len)

{

    int pixelSize = PIXEL_SIZE,size,step = len/pixelSize;//像素个数

    unsigned char *dst = _dst;

    const unsigned char *src = _src + len;

    while(step-- > 0){

       size = pixelSize;

       src -=size;

       while(size-- > 0){

           *dst++ = *src++;

       }

    src -=pixelSize;

    }

Return _dst;

}
天才2012 2014-01-12
  • 打赏
  • 举报
回复
可以深入到内核驱动去看看,具体有的硬件就支持反转

1,324

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧