Linux驱动:LCD驱动测试
2024-09-14 17:52:39
(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 现象:出现花屏。
最新文章
- JS判断鼠标进入容器方向的方法和分析window.open新窗口被拦截的问题
- 20155217-杨笛-c与java
- cookie的session_id解释
- Android Studio 自定义debug签名文件keystore
- linux 内核 RCU机制详解
- 有return的情况下try catch finally的执行顺序
- HSDB
- 通过词法分析实现的指出C程序中包含的头文件
- JS初学之-循环生成坐标
- Linux操作系统安全(一)
- akoj-1369 贪吃蛇
- python字符串与数字类型转化
- 学习笔记—CSS基础
- java -jar参数携带问题
- JS中dataTransfer对象在拖曳操作中的妙用。
- 【BZOJ2127】happiness 最小割
- rails 启动测试环境出现 ";Rack::Cors"; =>; Rack::Cors,解决方法
- github项目切换远程https到ssh通道
- C#窗口文件双击打开时出错
- 3d旋转动画焦点图
热门文章
- c语言学生信息管理系统-学习结构体
- (匹配 最小路径覆盖)Air Raid --hdu --1151
- ZOJ2418 Matrix 2017-04-18 21:05 73人阅读 评论(0) 收藏
- nodejs+express+mysql+handsontable
- MYC编译器源码之语法分析
- TempDB--临时表的缓存
- .Net应用程序 参照的组合没有安装在您的系统中。 HRESULT: 0x800736B3
- [ASP.NET]NTKO插件使用常见问题
- python http post json
- jQuery基础笔记(5)