折腾了2天LCD驱动程序才发现系统其实已经移植了LCD驱动。设备名为/dev/fb0. 白折腾。

不过也有好处,搞了一遍基本了解LCD驱动的实现方法。

这里涉及到一个问题是如何把ARM寄存器地址空间映射到linux内核虚拟地址空间的问题。是通过更新map_desc对象来实现的:

static struct map_desc at91sam9g45_io_desc[] __initdata = {

{

.virtual = AT91_VA_BASE_SYS,

.pfn = __phys_to_pfn(AT91_BASE_SYS),

.length = SZ_16K,

.type = MT_DEVICE,

}, {

.virtual = AT91_IO_VIRT_BASE - AT91SAM9G45_SRAM_SIZE,

.pfn = __phys_to_pfn(AT91SAM9G45_SRAM_BASE),

.length = AT91SAM9G45_SRAM_SIZE,

.type = MT_DEVICE,

}, {

.virtual = AT91_IO_VIRT_BASE - AT91SAM9G45_SRAM_SIZE - SZ_8K,

.pfn = __phys_to_pfn(AT91SAM9G45_LCDC_BASE),

.length = SZ_8K,

.type = MT_DEVICE,

}

};

最后声明了一个8K空间的LCD寄存器地址。

重新编译内核以后,驱动程序就可以通过LCD寄存器的内核虚拟起始地址通过虚拟地址来访问LCD寄存器了。

linux设备寄存器映射,linux LCD驱动 及 ARM 寄存器映射相关推荐

  1. linux 设备驱动程序 过滤,Linux驱动发开,usb设备的probe全过程

    本文将详细讲述2.6.22 下的一个USB 设备插上linux 系统的PC 后是如何一步一步调到我们的usb 设备驱动的probe 函数的,我们知道我们的USB 驱动的probe 函数中的一个参数是i ...

  2. Linux 设备树下的 platform 驱动实验基于正点原子IMX6ULL开发板

    1 设备树下的 platform 驱动简介 platform 驱动框架分为总线.设备和驱动,其中总线不需要我们这些驱动程序员去管理,这个是 Linux 内核提供的,我们在编写驱动的时候只要关注于设备和 ...

  3. Linux 设备树下的 platform 驱动示例

    1.简介 基于总线.设备和驱动这样的驱动框架,Linux 内核提出来 platform 这个虚拟总线,相应的也有 platform 设备和 platform 驱动. Linux 总线设备和驱动模式 2 ...

  4. 嵌入式实践教程--设备树下的LCD驱动开发

    先来回顾一下裸机的时候 LCD 驱动是怎么编写的,裸机 LCD 驱动编写流程如下: ①.初始化 I.MX6U 的 eLCDIF 控制器,重点是 LCD 屏幕宽(width).高(height).hsp ...

  5. linux设备资源分配,基于Linux 简化 AMP 配置使其更方便更动态地分配资源

    描述 嵌入式系统一般分为两大类:需要硬实时性能的:和不需要硬实时性能的.过去,我们不得不做出艰难抉择: 选择实时操作系统的性能还是我们钟爱的 Linux 系统的丰富特性,然后努力弥补不足之处? 如今, ...

  6. Linux设备驱动程序学习-Linux设备模型(总线、设备、驱动程序和类)

    文章的例子和实验使用<LDD3>所配的lddbus模块(稍作修改). 总线 总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟" ...

  7. linux 设备树 otg,linux下充电IC OTG设备供电控制

    linux下充电IC OTG设备供电控制 备注:下面提到的充电IC 用charger表示 1.     OTG VBUS 5V供电 接入OTG设备,比如U盘,具体是怎么通过charger驱动来给U盘供 ...

  8. Linux设备树led,linux设备树下LED灯控制

    linux设备树下LED灯控制 linux设备树下LED灯控制 原理图: 所以在设备树下子节点下插入gpioled节点: gpioled { #address-cells = <1>; # ...

  9. 《linux设备驱动程序》——Linux设备模型

    一.概论 1.2.6版内核对系统结构的一般性抽象描述.现在内核使用了该抽象支持了多种不同的任务,其中包括: 1).电源管理和系统关机. 2).与用户控件通信. 3).热插拔设备. 4).设备类型. 5 ...

最新文章

  1. 3年工作必备 装饰器模式
  2. LeetCode 55. 跳跃游戏 中等难度
  3. PHP解决网站大流量与高并发
  4. 使用ASP生成HTML文件
  5. 机房漏电产生的危害及安全隐患解决方案
  6. python if写在return 后面_python中return如何写
  7. Linux——安装FTP服务器
  8. jvm(12)-java内存模型与线程
  9. Sonatype Nexus高级配置
  10. java web框架 django_django——web框架简介
  11. java linkedlist 更新_Java填坑系列之LinkedList
  12. c语言 取随机字符串,C语言之获取32字节随机数的字符串
  13. Okhttp3 使用和原理(DEMO)
  14. 阮一峰ES6入门读书笔记(九):Set 和 Map
  15. curl error while loading shared libraries libcrypto.so.1.0.0 解决方案
  16. 优雅写代码的45个小技巧
  17. android自动隐藏虚拟键,Android 隐藏底部虚拟键的两种方法
  18. [C++教程①]--了解c语言以及第一行代码
  19. linux修改blacklist.conf的权限不够怎么办,跪求 /etc/modprobe.d/blacklist.conf
  20. 燕麦冬食补益脾肾、降脂降压

热门文章

  1. 【读写内部Flsah】
  2. 腾讯地图转换成百度地图坐标
  3. Python 线性回归计算r-squared方法
  4. 银行利率bp是什么意思,bp是什么意思贷款利率
  5. 云顶之弈法机器人_云顶之弈里面出现了一个雷电法王,机器人一个勾自己没了!...
  6. 双城记:云和恩墨三场精彩活动已就绪
  7. 信阳新闻网:《观察+思考+努力=创新——访南京大数据研究院院长刘鹏》
  8. PSA极化注意力机制:Polarized Self-Attention: Towards High-quality Pixel-wise Regression
  9. 自动刷帖机器人 python_虎牙自动发弹幕机器人 python+airtest实现
  10. android程序自动卸载软件,Android应用静默安装和卸载