(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驱动模块
#include #include #include #include #include <linux/fb.h> #include int main() { int fbfd = 0; struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; long int screensize = 0; char *fbp = NULL; int x,y,r = 0,g = 0, b = 0; 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 / 8; /*映射屏幕缓冲区到用户地址空间*/ fbp=(char*)mmap(0,screensize,PROT_READ | PROT_WRITE,MAP_SHARED, fbfd, 0); if((int)fbp == -1) { printf('Error: failed to map framebuffer device to memory .n'); return -1; } /*下面可通过fbp指针操作缓冲区:显示红 */ for(y = 0;y<(vinfo.yres);y++)//vinfo.yres = 272 { for(x = 0;x < vinfo.xres;x++)//vinfo.xres=480 { long location = x*3 + y * vinfo.xres * 3;//用户缓冲区地址移动,一个像素3字节(24位真彩色) r = 256; g = 0; b = 0; rgb = (r << 16) | (g << 8) | b; //分别获得相应颜色 *((unsigned short *)(fbp + location)) = rgb; } } /*释放缓冲区,关闭设备*/ munmap(fbp, screensize); close(fbfd); } 或者直接使用:cat xxxfile > /dev/fb0 现象:出现花屏。
上一篇:Linux驱动:内核等待队列
下一篇:字符设备驱动(1)驱动代码完整源码:charButtons.c
推荐阅读最新更新时间:2026-03-20 15:15
- ADR435B 5 Vout 超低噪声 XFET 电压基准的典型应用,具有灌电流和拉电流能力
- 使用 Analog Devices 的 ADP8140 的参考设计
- NCP699SN30T1G 150mA、3 路输出电压 CMOS 低 Iq LDO 的典型应用,在 TSOP-5 中启用
- ZTL431过压/欠压保护电路典型应用
- 使用 Microchip Technology 的 DVR2802B3 的参考设计
- 开源的浮游生物监测分析设备PlanktoScope
- STK503,旨在评估 AT90USB AVR MCU 的入门套件,通过 AVR Studio 支持 JTAGICE mkII 和 AVRISP mkII
- 使用 BittWare 的 XCVU190 的参考设计
- 远程声控参考设计
- NCP4354AADAPGEVB,用于 NCP4354、65W 适配器关闭模式控制器的评估板

stm32驱动屏IC rm68042
现代雷达系统的信号设计
LTC6102HVHMS8
BFR340T






京公网安备 11010802033920号