linux lcd驱动调试 echo dev/fb0,LCD驱动程序 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...
LCD驱动程序
假设 app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0
kernel: fb_open int fbidx = iminor(inode); struct fb_info *info = = registered_fb[0];
app: read()
kernel: fb_read int fbidx = iminor(inode); struct fb_info *info = registered_fb[fbidx]; if (info->fbops->fb_read) return info->fbops->fb_read(info, buf, count, ppos);
src = (u32 __iomem *) (info->screen_base + p);
dst = buffer;
*dst++ = fb_readl(src++);
copy_to_user(buf, buffer, c)
问1. registered_fb在哪里被设置? 答1. register_framebuffer
怎么写LCD驱动程序?
分配一个fb_info结构体: framebuffer_alloc
设置
注册: register_framebuffer
硬件相关的操作
测试:
make menuconfig去掉原来的驱动程序 -> Device Drivers -> Graphics support S3C2410 LCD framebuffer support
make uImage make modules
cp arch/arm/boot/uImage /work/nfs_root/uImage_nolcd
使用新的uImage启动开发板: nfs 30000000 192.168.31.202:/work/nfs_root/uImage_nolcd bootm 30000000
insmod cfbcopyarea.ko insmod cfbfillrect.ko insmod cfbimgblt.ko insmod lcd.ko
echo hello > /dev/tty1 // 可以在LCD上看见hello cat lcd.ko > /dev/fb0 // 花屏
修改vi /etc/inittab tty1::askfirst:-/bin/sh 用新内核重启开发板 nfs 30000000 192.168.31.202:/work/nfs_root/uImage_nolcd bootm 30000000
mount -t nfs -o nolock,vers=2 192.168.31.202:/work/nfs_root/first_fs /mnt cd /mnt/
insmod cfbcopyarea.ko insmod cfbfillrect.ko insmod cfbimgblt.ko insmod lcd.ko insmod buttons.ko
在开发板上按ls 回车,液晶屏则列出所在目录的文件
linux lcd驱动调试 echo dev/fb0,LCD驱动程序 - osc_msmij2gf的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐
- a33 linux内核启动网卡,a33核心板启动问题 - nevermore1981的个人空间 - OSCHINA - 中文开源技术交流社区...
测试发现a33核心板有时无法正常启动,通过串口信息显示判断是uboot 对mmc初始化有时会出现问题: [ 0.770][mmc]: ************Try MMC card 2** ...
- linux内核等价多路径路由,高级路由 - 我是*李世民*的个人空间 - OSCHINA - 中文开源技术交流社区...
策略路由背后的概念 Linux内核在默认情况下使用两张路由表:一张表用于本地路由,另一张可以由管理员来配置.如果内核编译支持策略路由,那么可以有多大255张不同的.相互独立的路由表.策略路由背后的主要 ...
- linux 劫持广告技术,屏蔽运营商广告劫持 - gcudwork的个人空间 - OSCHINA - 中文开源技术交流社区...
在今天早上我查找知乎时再次遇到了恶心的运营商广告劫持,右下角硕大的广告直接让知乎挂掉了,我刷了五次知乎才好,之前休息的时候逛知乎也是多次加载错误,估计也是这劫持的锅,相信各位也遇到过不少的运营商劫持插 ...
- linux卸载apk命令,apk的安装和卸载 - Jenly的个人空间 - OSCHINA - 中文开源技术交流社区...
之前写了一篇关于静默安装apk的.那个其实是在获取root权限的条件下来通过执行命令完成的.其功能本身已经很强大了.只是前提条件是需要root权限.然后什么静默安装卸载就都是浮云了.对于以下刚刚学an ...
- linux c 数组拷贝,C++对数组进行复制 - osc_8iux0cyz的个人空间 - OSCHINA - 中文开源技术交流社区...
C++ 风格的复制操作 使用STL中的copy算法 int a[] = {1,2,3,4,5}; int b[5]; std::copy(std::begin(a),std::end(a),std:: ...
- linux使用wdm设备驱动模型,驱动开发(WDM) - thomas_more的个人空间 - OSCHINA - 中文开源技术交流社区...
windows 设备对象名称(内核对象必须命名才能被用户层访问产生句柄) \Driver\ 内核模式下访问 \.\ 用户模式下访问 winObj(symbollink设备名称的别名,各个节点查看)和d ...
- linux i2c子系统入口,I2C子系统1 - ARM_Linuxx的个人空间 - OSCHINA - 中文开源技术交流社区...
I2C子系统 核心 i2c_driver 结构体 分配.设置.注册一个i2c_driver结构体 static struct i2c_driver i2c_example_driver = { .dr ...
- linux恢复安卓数据,安卓数据恢复2 - ranfs的个人空间 - OSCHINA - 中文开源技术交流社区...
安卓数据恢复2 之前提供一种没有使用adb的方式,进行镜像的方法,存在两个问题,Quicksshd在有些手机上出现兼容性问题,在电脑上安装软件和操作还是有些麻烦. 本文用华为P7-L05手机为例,使用 ...
- Linux环境变量隔代,python基础题 - osc_vwtuqll7的个人空间 - OSCHINA - 中文开源技术交流社区...
47.metaclass作用?以及应用场景? metaclass,直译为元类,简单的解释就是:当我们定义了类以后,就可以根据这个类创建出实例, 所以:先定义类,然后创建实例.但是如果我们想创建出类呢? ...
最新文章
- 数据库索引的作用和长处缺点
- 【CHM】.chm文件无法正常显示的解决方案
- mysql group by 两列_MySQL GROUP BY两列
- Linux安装Nvidia显卡驱动
- 怎样理解时间序列的“平稳性”?
- 复制粘贴神器allow copy
- mysql 视频教程下载_最全138节Mysql数据库+PHP零基础到精通视频教程【云盘下载】...
- 跨境电商竞品分析报告
- 100条人生哲理语句
- MaskRCNN使用tf-gpu环境搭建实战
- axure原型怎么让文字自动换行_Axure动态面板教程(快速入门+轮播图案例)
- python爬虫(爬取王者荣耀英雄图片)
- 贪婪算法————背包问题
- C++11之防止类型收窄(列表初始化)
- 车载wince升级改造_想在低配车内蹦迪?改造车机还不如装个接收器,也就一顿饭钱...
- cjson构建_cJSON对象的构建
- 俞军产品方法论精华总结(2)
- linux bcm43142无线网卡驱动安装,Centos7.7安装bcm43142(博通)无线网卡驱动(示例代码)...
- Android dev tips(update at 2015-11-26)
- Face++头部姿势headpose参数解析
热门文章
- java jedis sadd_Java实现Redis的集合(set)命令操作
- android 仿微信选取相册_Android 仿微信 相册多图选择器
- matlab全域基函数,多项式函数插值:全域多项式插值(一)单项式基插值、拉格朗日插值、牛顿插值 [MATLAB]...
- 折纸机器人的步骤图解_折纸图解走路的人
- dijkstra算法原理_这 10 大基础算法,程序员必知必会!
- 安卓设置菊花动画_Android仿ios加载loading菊花图效果
- 七夕了!!聊聊《最受欢迎的男友职业排行榜Top10》
- 肝!使用OpenCV为视频中美女加上眼线
- 一顿骚操作!我将 SQL 耗时从 30248.271s 优化到 0.001s
- 关于Python异常处理,你需要了解的知识点