(1) 进入内核源码目录中,make menuconfig -> Device Drivers -> Graphics support -> [M]Support for frame buffer devices

重新编译内核 make uImage ,然后make modules,将driver/video/下的 fb.ko、cfbfillrect.ko、cfbimgblt.ko、cfbcopyarea.ko拷贝到210的根文件中,分别 insmod 安装到内核中。

(2) 安装lcd.ko驱动模块

(3) 应用层读写 frame buffer 测试程序框架

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <linux/fb.h>
#include <sys/mman.h>
int main()
{
int fbfd = ;
struct fb_var_screeninfo vinfo;
struct fb_fix_screeninfo finfo;
long int screensize = ;
char *fbp = NULL;
int x,y,r = ,g = , b = ;
unsigned int rgb; /*打开设备文件*/
fbfd = open("/dev/fb0", O_RDWR); /*取得屏幕相关参数*/
ioctl(fbfd, FBIOGET_FSCREENINFO, &finfo);
ioctl(fbfd, FBIOGET_VSCREENINFO, &vinfo); /*计算屏幕缓冲区大小*/
screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / ; /*映射屏幕缓冲区到用户地址空间*/
fbp=(char*)mmap(,screensize,PROT_READ | PROT_WRITE,MAP_SHARED, fbfd, );
if((int)fbp == -)
{
printf("Error: failed to map framebuffer device to memory .\n");
return -;
}
/*下面可通过fbp指针操作缓冲区:显示红 */
for(y = ;y<(vinfo.yres);y++)//vinfo.yres = 272
{
for(x = ;x < vinfo.xres;x++)//vinfo.xres=480
{
long location = x* + y * vinfo.xres * ;//用户缓冲区地址移动,一个像素3字节(24位真彩色)
r = ;
g = ;
b = ;
rgb = (r << ) | (g << ) | b; //分别获得相应颜色
*((unsigned short *)(fbp + location)) = rgb;
}
}
/*释放缓冲区,关闭设备*/
munmap(fbp, screensize);
close(fbfd);
}

或者直接使用:cat xxxfile > /dev/fb0 现象:出现花屏。

最新文章

  1. JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题
  2. 20155217-杨笛-c与java
  3. cookie的session_id解释
  4. Android Studio 自定义debug签名文件keystore
  5. linux 内核 RCU机制详解
  6. 有return的情况下try catch finally的执行顺序
  7. HSDB
  8. 通过词法分析实现的指出C程序中包含的头文件
  9. JS初学之-循环生成坐标
  10. Linux操作系统安全(一)
  11. akoj-1369 贪吃蛇
  12. python字符串与数字类型转化
  13. 学习笔记—CSS基础
  14. java -jar参数携带问题
  15. JS中dataTransfer对象在拖曳操作中的妙用。
  16. 【BZOJ2127】happiness 最小割
  17. rails 启动测试环境出现 &quot;Rack::Cors&quot; =&gt; Rack::Cors,解决方法
  18. github项目切换远程https到ssh通道
  19. C#窗口文件双击打开时出错
  20. 3d旋转动画焦点图

热门文章

  1. c语言学生信息管理系统-学习结构体
  2. (匹配 最小路径覆盖)Air Raid --hdu --1151
  3. ZOJ2418 Matrix 2017-04-18 21:05 73人阅读 评论(0) 收藏
  4. nodejs+express+mysql+handsontable
  5. MYC编译器源码之语法分析
  6. TempDB--临时表的缓存
  7. .Net应用程序 参照的组合没有安装在您的系统中。 HRESULT: 0x800736B3
  8. [ASP.NET]NTKO插件使用常见问题
  9. python http post json
  10. jQuery基础笔记(5)