以下内容源于朱有鹏《物联网大讲堂》课程的学习,如有侵权,请告知删除。

主要在填充fbdev这个结构体。

二、framebuffer驱动分析2

1、probe函数分析

(1)struct s3c_platform_fb

  • 这个结构体是fb的platform_data结构体;
  • 这个结构体变量就是platform设备的私有数据,这个数据在(结构体platform_device中的)(成员元素结构体device中)platform_data中存储。
  • 在mach-x210文件填充着这些数据;
  • 在probe函数中,通过传参的platform_device指针取出来。

(2)struct s3cfb_global

  • 这个结构体主要作用是在驱动部分的2个文件(s3cfb.c和s3cfb_fimd6x.c)的函数中做数据传递用的。

(3)struct resource

(4)regulator:整流器,负责供电管理。

2、platform_data的传递过程

(1)to_fb_plat

(2)platform_data定义在s3cfb_set_platdata函数中

  • 之前我们一般提前就已经定义好了(因为简单固定),不用再使用函数来设置。
  • 而这里因为lcd情况复杂,因此使用函数来设置。

(3)mdkc110_machine_init


三、framebuffer驱动分析3

1、struct s3cfb_lcd(fbdev->lcd = (struct s3cfb_lcd *)pdata->lcd;)

  • pdata->lcd是lcd的一些硬件参数信息。
  • 换屏幕时,修改的就是这些参数。

2、pdata->cfg_gpio:初始化lcd用到的一些GPIO;

3、pdata->clk_on:打开lcd有关的时钟;

4、resource的处理

(1)platform_device中提供resource结构体数组

(2)probe中platform_get_resource取出resource并且按FLAG分头处理

四、framebuffer驱动分析4

1、硬件操作函数集合文件:s3cfb_fimd6x.c文件

(1)s3cfb_set_vsync_interrupt0

(2)s3cfb_set_global_interrupt

2、s3cfb_init_global

以上内容主要是填充fbdev这个结构体。

3、向框架注册该fb设备

(1)s3cfb_alloc_framebuffer

(2)s3cfb_register_framebuffer

五、framebuffer驱动分析5

1、一些硬件操作

(1)s3cfb_set_clock:设置像素时钟

(2)s3cfb_set_window

(3)s3cfb_display_on

2、驱动中处理中断

(1)platform_get_irq

(2)request_irq

3、logo显示

  • s3cfb_probe
  • fb_prepare_logo
  • fb_find_logo真正查找logo文件
  • fb_show_logo
  • fb_show_logo_line真正显示logo
  • fb_do_show_logoinfo->fbops->fb_imageblit实际操作硬件fb进行显示工作的函数

framebuffer驱动详解4——framebuffer驱动分析2(probe函数讲解)相关推荐

  1. linux摄像头V4L2 subdev,linux 摄像头驱动 详解linux 摄像头驱动编写

    想了解详解linux 摄像头驱动编写的相关内容吗,feixiaoxing在本文为您仔细讲解linux 摄像头驱动的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:linux,摄像头驱动,下面 ...

  2. framebuffer驱动详解2——framebuffer驱动框架分析

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.framebuffer驱动框架总览 1.驱动框架部分 (1)drivers/video/fbmem.c(主要的文件) 创建graphic ...

  3. framebuffer驱动详解3——framebuffer驱动分析(driver和device的配套查找)

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.framebuffer驱动分析1 1.s3cfb.c (1)实现为平台总线,因为使用SoC内部的LCD控制器,属于内部外设,可以借用平台 ...

  4. framebuffer驱动详解0——framebuffer介绍

    以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. (1)裸机中如何操作LCD?http://blog.csdn.net/oqqhutu12345678/article/ ...

  5. linux usb ga驱动详解,Linux设备驱动之内存映射

    1. 内存映射 所谓的内存映射就是把物理内存映射到进程的地址空间之内,这些应用程序就可以直接使用输入输出的地址空间,从而提高读写的效率.Linux提供了mmap()函数,用来映射物理内存. 在驱动程序 ...

  6. spi总线 上层调用_spi总线驱动详解

    spi总线驱动详解 spi总线驱动详解 Spi总线在实际应用得比较多,所以这篇为文章讲解以实际应用为主,bus总线类型细节不做讲解,感兴趣的读者可以分析源码,研究内核源码我觉得是一件非常有趣的事情,同 ...

  7. LCD的framebuffer驱动详解

    5.7.framebuffer驱动详解 5.7.1.framebuffer介绍 5.7.1.1.什么是framebuffer (1)裸机中如何操作LCD (2)OS下操作LCD的难点 显存就是一段内存 ...

  8. LCD液晶屏驱动详解

    开发环境: 开发板:JZ2440V3 CPU:samsunS3C2440 内核:Linux3.4.2 编译工具:arm-linux-gcc 4.3.2 LCD:4.3存液晶屏AT043TN24 参考文 ...

  9. LCD 液晶屏驱动详解

    LCD液晶屏驱动详解 开发环境 开发板:JZ2440V3 CPU:samsunS3C2440 内核:Linux3.4.2 编译工具:arm-linux-gcc 4.3.2 LCD:4.3存液晶屏AT0 ...

最新文章

  1. 紫书 习题 10-44 UVa 11246 ( 容斥原理)
  2. MySQL安装时MySQL server一直安装失败日志显示This application requires Visual Studio 2013 Redistributable...
  3. 【系统平台】大四区部署
  4. 七牛上传图片html,使用七牛云上传图片
  5. 准确率、召回率、F1、mAP、ROC、AUC
  6. 微博队列memcacheq 服务安装与原理
  7. java实现excel、word在线预览
  8. IIC,RS485,RS232各种协议手册更新中
  9. Android进阶之路(快速进阶第二天)RxAndroid使用
  10. linux视频播放器安装程序,新手求助自带视频播放器安装问题
  11. Vue隐藏技能:运行时渲染用户写入的组件代码!
  12. PHP网页设计实现增删改查,包含报告实训内容
  13. 使用python完成知乎模拟登陆
  14. B-样条曲线:重要性质
  15. UiPath之数据透视表
  16. 机器学习算法之聚类算法拓展:K-Means和Mini Batch K-Means算法效果评估
  17. forward 和 redirect
  18. jQuery 初学者入门教程
  19. Android APP杀不死(最大存活方法)
  20. 毕业设计 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

热门文章

  1. 【linux】使用swap文件恢复非正常关闭的文件
  2. 【BZOJ 3326】[Scoi2013]数数 数位dp+矩阵乘法优化
  3. iOS-关于cell的重叠问题
  4. 易写易库(EXEK)玩“花”儿之三:命令有图标支持库,附图
  5. 使用python做最简单的爬虫
  6. 苹果依旧强大 物联网领域举足轻重
  7. POJ2190 HDU2714 ISBN
  8. Java对数组的操作(二)——集合与数组的切换
  9. android webservice 简单应用
  10. AIX errdemon 命令